VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtBaseConnection.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2009 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 /******************************************************************************
6 ** $RCSfile: DtBaseConnection.h,v $ $Revision: 1.43 $ $State: Exp $
7 ******************************************************************************/
8 
12 
13 #pragma once
14 #include <vrvCore/vrvCore.h>
15 #include <vrvCore/DtUniqueID.h>
18 #include <vrvUtil/templateUtil.h>
19 #include <vrvUtil/DtUnicode.h>
20 
21 #include <boost/unordered_map.hpp>
22 
23 #include <string>
24 #include <map>
25 
26 namespace makVrv
27 {
28  class DtSharedSettingsManager;
29  class DtAgentManagerInterface;
30  class DtElementChanges;
31  class DtElementAttribute;
32  class DtBlinkingObjectManager;
33  class DtTemporaryAgentManager;
34 
38  {
39 
40  public:
43 
46  virtual ~DtBaseConnection();
47 
50  virtual void clearInstances();
51 
53  DtSharedSettingsManager& settingsManager();
54 
56  virtual DtAgentManagerInterface& sceneInterface();
57 
59  const DtSharedSettingsManager& settingsManager() const;
60 
62  void reportElementCreated(DtElementID id, DtElementID parentId, unsigned int type);
63 
64  //The attribute passed in should not be used again.
65  void reportElementAttribute(DtElementID id, DtElementAttribute* attribute);
66 
68  void reportElementDestroyed(DtElementID id);
69 
71  const DtElementChanges& currentElementChanges() const;
72 
74  DtElementChanges* takeElementChanges();
75 
77  DtTemporaryAgentManager& temporaryEffects();
78 
80  DtBlinkingObjectManager& blinkManager();
81 
83  DtRandomNumberGenerator& randomNumberGenerator();
84 
86  virtual const std::string& tag()
87  {
88  const static std::string tagStr = "";
89  return tagStr;
90  }
91 
93  const DtUnicode& emptyString() const;
94 
100  virtual DtVirtualBaseClass* findInstance(const std::string& instanceName);
101 
115  inline bool destroyingInstances() const
116  {
117  return myDestroyingInstanceFlag;
118  }
119 
122  virtual void registerInstance(const std::string& instanceName,
123  DtVirtualBaseClass* instance);
124 
125 
126  protected:
127 
128  //Hold on to the shared simulation manager.
130 
131  //The random number generator for the local simulation.
133 
134  //Thread specific Variables. This variables are used by the second thread.
135  //They should not be used in any functions in the main thread while the
136  //secondary thread is running.
138 
139  //Internal working element changes
141 
142  //Manager for temporary global effects.
144 
147 
149 
150  typedef boost::unordered_map<std::string,DtVirtualBaseClass*> InstanceMap;
151 
152  //Stores a pointer to simulation specific instances.
154 
155  //Flag to store if the connection is destroying the instances in it's
156  //DTOR
158  };
159 }
Virtual base class.
Definition: DtVirtualBaseClass.h:22
A unicode string.
Definition: DtUnicode.h:33
Implementation independent random number generator.
Definition: DtRandomNumberGenerator.h:23
virtual const std::string & tag()
Get the tag identifying which type of connection this is.
Definition: DtBaseConnection.h:86
Contains utility macros and methods for templates.
DtRandomNumberGenerator myRandomNumberGenerator
Definition: DtBaseConnection.h:132
DtAgentManagerInterface & mySceneInterface
Definition: DtBaseConnection.h:137
The shared settings manager, is the global object responsible for managing any shared settings object...
Definition: DtSharedSettingsManager.h:45
DtUniqueID DtElementID
The ElementID is a specific type of unique ID used to represent VR-Vantage uniquely defined elements...
Definition: DtUniqueID.h:26
boost::unordered_map< std::string, DtVirtualBaseClass * > InstanceMap
Definition: DtBaseConnection.h:150
DtElementChanges is used to communicate changes in element data between drivers and the main applicat...
Definition: DtElementChanges.h:28
The blinking object manager.
Definition: DtBlinkingObjectManager.h:29
The DtBaseConnection is an abstract class.
Definition: DtBaseConnection.h:37
The temporary agent manager.
Definition: DtTemporaryAgentManager.h:35
Contains makVrv::DtVirtualBaseClass class.
Contains makVrv::DtRandomNumberGenerator class.
DtElementChanges * myWorkingElementChanges
Definition: DtBaseConnection.h:140
bool myDestroyingInstanceFlag
Definition: DtBaseConnection.h:157
#define DT_DLL_VRVCORE
Definition: vrvCore.h:20
bool destroyingInstances() const
Check to see if the simulation is destroying instances.
Definition: DtBaseConnection.h:115
InstanceMap myInstances
Definition: DtBaseConnection.h:153
DtUnicode myEmptyString
Definition: DtBaseConnection.h:148
DtBlinkingObjectManager * myBlinkManager
Manager for blinking objects.
Definition: DtBaseConnection.h:146
Contains makVrv::DtUniqueID type.
The abstract interface necessary for agents.
Definition: DtAgentManagerInterface.h:36
DtSharedSettingsManager & mySettingsManagerCache
Definition: DtBaseConnection.h:129
DtElementAttribute is a common base class used for all element attributes, such as those found in a D...
Definition: DtElementAttribute.h:23
DtTemporaryAgentManager * myTemporaryEffects
Definition: DtBaseConnection.h:143
Contains DLL export macros.

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)