VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
embeddedEntityInfoManager.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
9 
10 #pragma once
11 
14 
16 #include "vrfmsgs/messageTypes.h"
17 
18 #include <list>
19 #include <map>
20 
21 class DtObjectType;
22 class DtPrintInfoCacheCommand;
23 class DtSimManager;
24 class DtSimMessage;
25 class DtVrfObject;
26 
27 struct DtEmbeddedEntity;
28 
33 {
34 public:
37 
38  virtual bool init();
39 
41  virtual bool hasCachedDataFor(const DtObjectType& objType) const;
42 
45  virtual bool typeIsQueuedForUpdate(const DtObjectType& objType) const;
46 
50  virtual const std::vector<DtEmbeddedEntity> embeddedEntityListFor(const DtObjectType& objType)const;
51  virtual const std::vector<DtSetMessageType> availableSetsFor(const DtObjectType& objType)const;
52  virtual const std::vector<DtSimTaskMessageType> availableTasksFor(const DtObjectType& objType) const;
54 
56  virtual const DtSimManager* simManager() const;
58  virtual DtSimManager* simManager();
59 
62  virtual void performCacheUpdates();
63 
65  virtual void suspend();
66 
68  virtual void resume();
69 
72  virtual void resetCache();
73 
77  static void eeInfoCacheRequestCallback(DtSimMessage* msg, void* usrData);
78  virtual void processEeInfoCacheRequest(DtSimMessage* msg);
80 
82  virtual std::string toString();
83 
84 protected:
85 
87  virtual bool isCachableType(const DtObjectType&) const;
88 
90  virtual void queueCacheUpdateFor(const std::vector<DtEmbeddedEntity>& entities, const DtVector& position);
91 
94  virtual DtVrfObject* createPrototypeObject(const DtObjectType& objType, const DtVector& position);
95 
99  virtual std::vector<DtEmbeddedEntity> retrieveEmbeddedEntityList(const DtVrfObject* const obj);
100  virtual std::vector<DtSetMessageType> retrieveAvailableSets(const DtVrfObject* const obj);
101  virtual std::vector<DtSimTaskMessageType> retrieveAvailableTasks(const DtVrfObject* const obj);
103 
105  virtual void populateCacheUsing(const DtVrfObject* const obj, bool suppressRecursion);
106 
109  static void objectAddedCallback(const DtVrfObject* obj, void* usrData);
110  virtual void processObjectAdded(const DtVrfObject& obj);
112 
115  static void scriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info, void* usrData);
116  virtual void processScriptUpdatedCallback(const DtScriptedTaskManagerCallbackInfo& info);
118 
121  virtual void sendCacheResponseFor(const DtObjectType& requestedType);
122 
125  virtual void addTaskBinding(const DtObjectType& objType, const DtSimTaskMessageType& taskType);
126  virtual void removeTaskBinding(const DtObjectType& objType, const DtSimTaskMessageType& taskType);
128 
129 private:
132 
135 
136 protected:
137 
139 
140  std::map<DtObjectType, std::vector<DtEmbeddedEntity> > myEmbeddedEntityListCache;
141  std::map<DtObjectType, std::vector<DtSetMessageType> > myAvailableSetsCache;
142  std::map<DtObjectType, std::vector<DtSimTaskMessageType> > myAvailableTasksCache;
143 
144  std::map<DtObjectType, DtVector> myTypesToCache;
145 
146  DtPrintInfoCacheCommand* myPrintInfoCacheCommand;
147 
149 };
DtVrfObject is used to represent any type of simulated object (entities, aggregate, control objects) in a VR-Forces application.
Definition: vrfObject.h:215
Name &lt;-&gt; type pair representing the API-exposed portion of an Embedded Entity configuration.
Definition: ifEmbeddedEntityInfoCacheResponse.h:22
std::map< DtObjectType, DtVector > myTypesToCache
Definition: embeddedEntityInfoManager.h:144
std::map< DtObjectType, std::vector< DtSetMessageType > > myAvailableSetsCache
Definition: embeddedEntityInfoManager.h:141
Definition: objectType.h:27
bool mySuspended
Definition: embeddedEntityInfoManager.h:148
DtEmbeddedEntityInfoManager is the central point for type-keyed data caching in the backend...
Definition: embeddedEntityInfoManager.h:32
#define DT_DLL_vrfobjcore
This file is used to determine how to build.
Definition: vrfobjcoreDefines.h:24
File: simMsg.h.
Definition: simMessage.h:35
Define constants for types of tasks, sets, admin messages, reports, and sim commands (all sent via ra...
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Definition: scriptedTaskManager.h:44
The simulation engine is controlled by a single,top-level class called the Simulation Manager...
Definition: simManager.h:103
std::map< DtObjectType, std::vector< DtEmbeddedEntity > > myEmbeddedEntityListCache
Definition: embeddedEntityInfoManager.h:140
DtSimManager * mySimManager
Definition: embeddedEntityInfoManager.h:138
std::map< DtObjectType, std::vector< DtSimTaskMessageType > > myAvailableTasksCache
Definition: embeddedEntityInfoManager.h:142
DtPrintInfoCacheCommand * myPrintInfoCacheCommand
Definition: embeddedEntityInfoManager.h:146

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)