![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2000 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: netIface.h,v $ $Revision: 1.13 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00017 00018 00019 #ifndef DtSimObjectNetInterface_H_ 00020 #define DtSimObjectNetInterface_H_ 00021 00022 #include "vrfutil/rwBoolean.h" 00023 #include "vrfobjcore/netIfaceFact.h" 00024 00025 00026 class DtVrfObject; 00027 class DtStateRepository; 00028 class DtSimObjectNetInterfaceFactory; 00029 00037 #include "vrfobjcore/vrfobjcoreDefines.h" 00038 class DT_DLL_vrfobjcore DtSimObjectNetInterface : public DtReaderWriter 00039 { 00040 protected: 00042 DtSimObjectNetInterface(); 00043 00044 public: 00045 00050 DtSimObjectNetInterface(const DtString & name, DtVrfObject * simObject, 00051 DtReaderWriterRegistry * parentRegistry = 0, 00052 bool publishObject = true); 00053 00055 DtSimObjectNetInterface(const DtSimObjectNetInterface & orig, 00056 DtReaderWriterRegistry * parentRegistry = 0); 00057 00059 const DtSimObjectNetInterface & operator=(const DtSimObjectNetInterface & 00060 orig); 00061 00063 virtual ~DtSimObjectNetInterface(); 00064 00067 virtual bool init() { return true; } 00068 00074 virtual void tick(); 00075 00079 virtual void onTick() = 0; 00080 00083 virtual DtVrfObject * simObject() const; 00084 00087 virtual DtStateRepository * networkState() const; 00088 00092 virtual bool isEntity() const = 0; 00093 virtual bool isEnvironmental() const = 0; 00094 00098 virtual bool isLocal() const = 0; 00099 00102 virtual DtString type() const = 0; 00103 00106 virtual int maxNameLength() const; 00107 00110 static void addSimObjectNetInterfaceCreatorFcn(const DtString & type, 00111 DtSimObjectNetIfaceCreatorFcn fcn); 00112 00113 static void setFactory(DtSimObjectNetInterfaceFactory * factory); 00114 static DtSimObjectNetInterfaceFactory * factory(); 00115 00117 static DtSimObjectNetInterface * createNetInterface( 00118 const DtString & name, const DtString & type, DtVrfObject * simObject, 00119 DtReaderWriterRegistry * parentRegistry = 0, 00120 bool publishObject = true); 00121 00125 static int maxNameLengthForInterfaceType(const DtString& interfaceTypeString); 00126 00127 protected: 00128 00129 DtVrfObject * mySimObject; 00130 DtStateRepository * myNetworkState; 00131 00132 static DtSimObjectNetInterfaceFactory* theFactory; 00133 }; 00134 00135 #endif 00136 00137