VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
vrfVrlinkGuiOrbatManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2017 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
14 #include <vrfutil/rwUUID.h>
15 #include <vrfutil/rwOrbatData.h>
16 #include <vlpi/entityIdentifier.h>
17 #include <vl/globalObjectDesignator.h>
19 
20 #include <boost/unordered_map.hpp>
21 #include <boost/smart_ptr/shared_ptr.hpp>
22 
24 class DtSimMessage;
25 
26 namespace makVrv
27 {
28  class DtStateListener;
29 
30  namespace DT_PROTOCOL_NAMESPACE
31  {
32  class DtVrlinkConnection;
33  }
34 }
35 
36 namespace makVrf
37 {
38  namespace VRF_PROTOCOL_NAMESPACE
39  {
40  class DtOrbatStateListenerInterface;
41 
46  {
47  public:
48  struct OrbatRecord;
49 
50  typedef boost::shared_ptr<OrbatRecord> OrbatRecordHandle;
51  typedef std::map<makVrv::DtElementID, OrbatRecordHandle> OrbatMapByUniqueID;
52  typedef std::map<DtUUID, OrbatRecordHandle> OrbatMapByUUID;
53  typedef std::map<DtUUID, std::set<DtUUID> > ParentToChildrenMap;
54 
55  struct OrbatRecord : public DtRwOrbatData
56  {
58  OrbatRecord(const OrbatRecord& orig) : DtRwOrbatData(orig), myListener(orig.myListener), mySimulation(orig.mySimulation) {};
59 
60  virtual ~OrbatRecord();
61 
62  void signalStateUpdated();
63 
64  virtual void setMarkingText(const DtString&);
65  virtual void setEntityType(const DtEntityType&);
66  virtual void setForceType(int);
67  virtual void setParent(const DtUUID&);
68  virtual void setOrbatOrder(int);
69 
72  };
73 
76 
79 
82 
84  virtual ~DtVrfVrlinkGuiOrbatManager();
85 
87  virtual void requestOrbatList();
88 
90  virtual DtEntityIdentifier nextEntityIdentifier();
91 
92 #if DtHLA
93  virtual DtGlobalObjectDesignator nextGlobalObjectDesignator();
95 #endif
96 
98  virtual std::set<std::string> subordinatesFor(const DtUUID&, bool includeCreatedNodes = true) const;
99 
100  virtual void orbatNodeCreated(makVrv::DtUniqueID orbatNode, makVrv::DtUniqueID createdNode);
101  virtual void orbatNodeUncreated(makVrv::DtUniqueID);
102  virtual void nodeUncreated(makVrv::DtUniqueID);
103 
105  virtual bool isCreated(makVrv::DtUniqueID) const;
106 
108  virtual bool isOrbatNode(makVrv::DtUniqueID) const;
109 
111  virtual void clearOrbatList();
112 
114  virtual void connectionCleanup();
115 
116  boost::signals2::signal<void (const DtUUID&, const DtUUID&)> signal_subordinateAdded;
117  boost::signals2::signal<void (const DtUUID&, const DtUUID&)> signal_subordinateRemoved;
118 
119  protected:
121  static void receivedOrbatReponseMessage(DtSimMessage*, void* usr);
122  virtual void processReceivedOrbatResponse(DtSimMessage*);
123 
126  virtual void addToOrbat(const DtRwOrbatData&);
127 
129  virtual void removeFromOrbat(const DtUUID&);
130 
132  virtual void modifyInOrbat(const DtRwOrbatData&);
133 
134  protected:
139 
142  std::set<DtUUID> myQueuedSubordinateChanges;
143 
146 
147  typedef std::map<makVrv::DtUniqueID, makVrv::DtUniqueID> PublishedObjectsMap;
148 
151  };
152 
154  {
155  public:
158 
160 
163  static void registerInstance(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& conn,
165 
167  };
168  }
169 }
UUID is a unique ID wrapper class.
Definition: uuid.h:59
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
#define VRF_PROTOCOL_EXPORT
Definition: vrfProtocol.h:24
Contains the DtUUID class declaration.
The main class for the remote control interface to VR-Forces. Instantiating this class allows the sen...
Definition: vrfRemoteController.h:201
#define DT_PROTOCOL_NAMESPACE
Contains DLL export macros.
Definition: vrfDis.h:17
Contains makVrv::DtVirtualBaseClass class.
#define VRF_PROTOCOL_NAMESPACE
Definition: vrfDis.h:18
Definition: rwOrbatData.h:20
File: simMsg.h.
Definition: simMessage.h:35
unsigned long long DtUniqueID
Definition: DtUniqueID.h:19
This listener will implement orbat specific listener code for allowing an entity state listener to be...
Definition: orbatStateListenerInterface.h:28

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)