![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtVrfEmbarkationProcessor.h,v $ $Revision: 1.1 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #pragma once 00014 00015 #include <vrfVrlSharedSource/DtVrfDriver.h> 00016 00017 #include <vrvUtil/DtSignalConnectionManager.h> 00018 #include <vrvVrl/DtVrlinkConnection.h> 00019 #include <vrvCore/DtVisualizerCreationSettings.h> 00020 00021 namespace makVrv 00022 { 00023 class DtElementIDHierarchyNode; 00024 00025 namespace DT_PROTOCOL_NAMESPACE 00026 { 00027 class DtVrlinkEntityStateListener; 00028 class DtEntityElement; 00029 class DtVrlinkAggregateStateListener; 00030 class DtAggregateElement; 00031 class DtVrlinkEnvironmentalStateListenerInterface; 00032 class DtTacticalGraphicElement; 00033 } 00034 } 00035 00036 namespace makVrf 00037 { 00038 namespace VRF_PROTOCOL_NAMESPACE 00039 { 00040 class DtVrfEmbarkationHierarchy; 00041 00043 class VRF_PROTOCOL_EXPORT DtVrfEmbarkationProcessor 00044 { 00045 public: 00047 DtVrfEmbarkationProcessor(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& sim); 00048 00050 virtual ~DtVrfEmbarkationProcessor(); 00051 00052 protected: 00053 virtual void slot_hierarchyItemModified(makVrv::DtElementIDHierarchyNode* node); 00054 00055 protected: 00056 virtual void slot_entityElementCreated(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener&, 00057 makVrv::DT_PROTOCOL_NAMESPACE::DtEntityElement*); 00058 virtual void slot_entityElementAboutToBeDestroyed(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener&, 00059 makVrv::DT_PROTOCOL_NAMESPACE::DtEntityElement*); 00060 virtual void setEntityHostGlobalId(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEntityStateListener*, const std::string& hostGlobalId); 00061 00062 protected: 00063 virtual void slot_aggregateElementCreated(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener&, 00064 makVrv::DT_PROTOCOL_NAMESPACE::DtAggregateElement*); 00065 virtual void slot_aggregateElementAboutToBeDestroyed(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener&, 00066 makVrv::DT_PROTOCOL_NAMESPACE::DtAggregateElement*); 00067 virtual void setAggregateHostGlobalId(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkAggregateStateListener*, const std::string& hostGlobalId); 00068 00069 protected: 00070 virtual void slot_tacticalGraphicElementCreated(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface&, 00071 makVrv::DT_PROTOCOL_NAMESPACE::DtTacticalGraphicElement*); 00072 virtual void slot_tacticalGraphicElementAboutToBeDestroyed(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface&, 00073 makVrv::DT_PROTOCOL_NAMESPACE::DtTacticalGraphicElement*); 00074 virtual void setTacticalGraphicHostGlobalId(makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkEnvironmentalStateListenerInterface*, 00075 const std::string& hostGlobalId); 00076 00077 protected: 00080 virtual void embark(makVrv::DtElementID, const std::string& hostGlobalId, int flags = 0); 00081 00083 virtual void disembark(makVrv::DtElementID, int flags = 0); 00084 00087 virtual makVrv::DtElementID mapHostGlobalIdToElementId(makVrv::DtElementID id, const std::string& hostGlobalId, int flags = 0); 00088 00090 virtual void checkWaitingFor(const std::string& globalId, makVrv::DtElementID id); 00091 00093 virtual void removeFromWatchList(makVrv::DtElementID id); 00094 00095 protected: 00096 makVrv::DtSignalConnectionManager myConnections; 00097 00098 makVrv::DT_PROTOCOL_NAMESPACE::DtVrlinkConnection& mySimulation; 00099 00100 DtVrfEmbarkationHierarchy& myEmbarkationHierarchy; 00101 00102 typedef std::pair<makVrv::DtElementID, int> WatchPair; 00103 typedef std::map<std::string, WatchPair> WatchList; 00104 00105 WatchList myWatchList; 00106 }; 00107 } 00108 }