VR-Forces 4.7 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(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 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)