VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtAgentDefinition.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2010 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #ifndef DtSceneObjectDefinition_H_
11 #define DtSceneObjectDefinition_H_
12 
13 #include <vrvCore/vrvCore.h>
15 
16 #include <map>
17 #include <string>
18 
19 namespace makVrv
20 {
21 
22  class DtDe;
23 
31  template <typename ObjectClass>
33  {
34  public:
35 
36  typedef std::map<unsigned int,DtMessageMemberCall<ObjectClass>*> CallMap;
37 
39  DtAgentDefinition(const std::string& className)
40  : myClassName(className)
41  {
42  }
43 
45  {
47  }
48 
50  virtual bool doCall(DtDe& de,unsigned int function,ObjectClass* o, DtMessage& message);
51 
53  virtual void handle(DtDe& de, ObjectClass* o,DtMessage& msg);
54 
56  virtual void bindFunction(unsigned int function,DtMessageMemberCall<ObjectClass>* member);
57 
58  virtual const std::string& className() const
59  {
60  return myClassName;
61  }
62 
63  virtual bool containsClassName(const std::string& className)
64  {
65  return myClassName == className;
66  }
67 
68  protected:
69  std::string myClassName;
71  };
72 
82  template <typename BaseClassDefinition, typename ObjectClass>
84  : public DtAgentDefinition<ObjectClass>
85  , public BaseClassDefinition
86  {
87  public:
88 
90  : DtAgentDefinition<ObjectClass>(className)
91  , BaseClassDefinition(className)
92  , myClassName(className)
93  {
94  }
95 
97  {
99  }
100 
101  typedef std::map<unsigned int,DtMessageMemberCall<ObjectClass>*> CallMap;
102 
105  virtual bool doCall(DtDe& de,unsigned int function,ObjectClass* o, DtMessage& message);
106 
110  virtual void handle(DtDe& de,ObjectClass* o,DtMessage& msg);
111 
113  virtual void bindFunction(unsigned int function,DtMessageMemberCall<ObjectClass>* member);
114 
116  virtual const std::string& className() const
117  {
118  return myClassName;
119  }
120 
121  virtual bool containsClassName(const std::string& className)
122  {
123  return myClassName == className ||
125  BaseClassDefinition::containsClassName(className);
126  }
127 
128  protected:
129  std::string myClassName;
131  };
132 }
133 
134 #define DtAgentDefinition_INL_
135 #include "DtAgentDefinition.inl"
136 #undef DtAgentDefinition_INL_
137 
138 #endif
139 
CallMap myCallMap
Definition: DtAgentDefinition.h:130
virtual ~DtAgentDefinition()
Definition: DtAgentDefinition.h:44
virtual void handle(DtDe &de, ObjectClass *o, DtMessage &msg)
Handle an update message.
The IGI Message. Is easily encoded and decoding using stream operators. It also provides validation d...
Definition: DtMessage.h:30
Use this class as the base class for definition where ObjectClass is the class whose definition defin...
Definition: DtAgentDefinition.h:32
virtual void handle(DtDe &de, ObjectClass *o, DtMessage &msg)
Handle updates for the particular object class. This version will attempt to call the base class defi...
virtual bool doCall(DtDe &de, unsigned int function, ObjectClass *o, DtMessage &message)
Execute a call. This version will attempt to call the base class definition handle if the ObjectClass...
std::map< unsigned int, DtMessageMemberCall< ObjectClass > * > CallMap
Definition: DtAgentDefinition.h:101
DtInheritedAgentDefinition(const std::string &className)
Definition: DtAgentDefinition.h:89
virtual bool containsClassName(const std::string &className)
Definition: DtAgentDefinition.h:121
void DtClearAndDeletePointersInMap(M &map)
Deletes all pointers in a map then clears it.
Definition: templateUtil.h:198
std::map< unsigned int, DtMessageMemberCall< ObjectClass > * > CallMap
Definition: DtAgentDefinition.h:36
std::string myClassName
Definition: DtAgentDefinition.h:129
virtual const std::string & className() const
Definition: DtAgentDefinition.h:58
DtAgentDefinition(const std::string &className)
CTOR.
Definition: DtAgentDefinition.h:39
Contains makVrv::DtMessageMemberCall class.
virtual void bindFunction(unsigned int function, DtMessageMemberCall< ObjectClass > *member)
Bind a function.
virtual bool containsClassName(const std::string &className)
Definition: DtAgentDefinition.h:63
virtual const std::string & className() const
Override base function.
Definition: DtAgentDefinition.h:116
std::string myClassName
Definition: DtAgentDefinition.h:69
CallMap myCallMap
Definition: DtAgentDefinition.h:70
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
virtual void bindFunction(unsigned int function, DtMessageMemberCall< ObjectClass > *member)
Bind a ObjectClass Member.
virtual ~DtInheritedAgentDefinition()
Definition: DtAgentDefinition.h:96
virtual bool doCall(DtDe &de, unsigned int function, ObjectClass *o, DtMessage &message)
Execute a call.
Definition: DtAgentDefinition.h:83
Contains DLL export macros.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)