![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /***************************************************************************** 00002 * Copyright (c) 2012 MAK Technologies, Inc. 00003 * All rights reserved. 00004 *****************************************************************************/ 00005 00009 00010 #pragma once 00011 00012 #ifndef DT_PROTOCOL_NAMESPACE 00013 #error Namespace Protocol Macro DT_PROTOCOL_NAMESPACE not defined. 00014 #endif 00015 00016 #include <vrvVrl/DtVrlinkEmitterStateListener.h> 00017 00018 #include <vl/emitterSysSR.h> 00019 00020 namespace makVrv 00021 { 00022 00023 namespace DT_PROTOCOL_NAMESPACE 00024 { 00025 00026 class DtVrlinkConnection; 00027 class DtVrlinkEmitterStateListener; 00028 00033 class DL_DLL_IGCONVRLINK DtVrlinkEmitterStateInterceptor 00034 : public DtEmitterSystemRepository 00035 { 00036 public: 00037 00039 virtual ~DtVrlinkEmitterStateInterceptor(); 00040 00042 virtual DtVrlinkEmitterStateListener* emitterStateListener(); 00043 00044 // @name DtEmitterSystemRepository functions 00045 // @{ 00046 00048 virtual void setEmitterFunction( DtEmissionFunc function ); 00049 00051 virtual void setEmitterName( DtEmitterSysName name ); 00052 00054 virtual void setEmitterNumber( DtU8 number ); 00055 00057 virtual void setEventId( const DtEventId& id ); 00058 00060 virtual DtEmitterBeamRepository* addBeam( DtU8 beamId, DtBeamType type, DtEmitterSysRetCode *retcode ); 00061 00063 virtual DtEmitterSysRetCode removeBeam( DtU8 beamId ); 00064 00065 #if DtHLA 00066 00067 virtual DtEmitterSysRetCode removeBeam( const DtGlobalObjectDesignator& id ); 00068 #endif 00069 00070 // @} 00071 00072 // @name DtEmbeddedSystemRepository functions 00073 // @{ 00074 00076 virtual void setEntityId( const DtEntityIdentifier& id ); 00077 00079 virtual void setHostId( const DtGlobalObjectDesignator& id ); 00080 00082 virtual void setRelativePosition( const DtVector& position ); 00083 00084 // @} 00085 00086 protected: 00087 00089 virtual void beamRemovedByDelete( DtEmitterBeamRepository* ); 00090 00091 private: 00092 00094 DtVrlinkEmitterStateInterceptor( const DtVrlinkEmitterStateInterceptor& orig ); 00095 00097 DtVrlinkEmitterStateInterceptor& operator = ( const DtVrlinkEmitterStateInterceptor& orig ); 00098 00101 virtual DtStateRepository* clone( bool copy = false ) const; 00102 00103 protected: 00104 00105 friend class DtVrlinkEmitterStateInterceptorCreator; 00106 00109 DtVrlinkEmitterStateInterceptor( DtVrlinkEmitterStateListener* listener ); 00110 00111 protected: 00112 00113 DtVrlinkEmitterStateListener* myEmitterStateListener; 00114 00115 }; 00116 00117 00120 class DL_DLL_IGCONVRLINK DtVrlinkEmitterStateInterceptorCreator : public DtVirtualBaseClass 00121 { 00122 public: 00123 00125 static DtVrlinkEmitterStateInterceptorCreator& instance( DtVrlinkConnection& sim ); 00126 00128 virtual ~DtVrlinkEmitterStateInterceptorCreator(); 00129 00131 virtual DtVrlinkEmitterStateInterceptor* create( DtVrlinkEmitterStateListener* listener ); 00132 00133 protected: 00134 00135 DtVrlinkEmitterStateInterceptorCreator(); 00136 00137 }; 00138 00139 } 00140 }