![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 1999 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: setDataReq.h,v $ $Revision: 1.23 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00017 00018 00019 #ifndef DtSetDataRequest_H_ 00020 #define DtSetDataRequest_H_ 00021 00022 #include "vrfutil/rdrWritr.h" 00023 #include "vrftasks/setReqFact.h" 00024 #include "tdbutil/translation.h" 00025 #include "tdbutil/tdbUnits.h" 00026 00027 class DtRwString; 00028 class DtSetDataRequestFactory; 00029 00043 00044 #include "vrftasks/vrftasksDefines.h" 00045 class DT_DLL_vrftasks DtSetDataRequest : public DtReaderWriter 00046 { 00047 protected: 00050 00052 DtSetDataRequest(); 00053 00056 DtSetDataRequest(const DtString & writeName, 00057 DtReaderWriterRegistry * parentRegistry = 0); 00058 00060 DtSetDataRequest(const DtString & writeName, const DtSetDataRequest & orig, 00061 DtReaderWriterRegistry * parentRegistry = 0); 00062 00064 const DtSetDataRequest & operator=(const DtSetDataRequest & orig); 00065 00066 public: 00067 00069 virtual ~DtSetDataRequest(); 00070 00073 virtual bool init(); 00074 00079 virtual int type() const = 0; 00080 00085 virtual DtSetDataRequest * clone(const DtString & name, 00086 DtReaderWriterRegistry * parentRegistry = 0) const = 0; 00087 00094 virtual DtString stringRep() const = 0; 00095 00098 virtual void putData(FILE *fp, int indentLevel = 0); 00099 00102 virtual DtlObjPtr getData(DtlObjPtr args, const DtFilename& searchPath, 00103 const DtVariableBindingsList& variableBindings); 00104 00105 virtual char* netRep(); 00106 00111 00112 00113 00114 virtual int netRepSize() const; 00115 00118 virtual bool setFromNet(const char* contentBuffer, 00119 unsigned contentSize); 00120 00123 virtual bool setToNet(); 00125 00129 static DtSetDataRequest * createSetDataRequest(DtlObjPtr mtlStream); 00130 static DtSetDataRequest * createSetDataRequest(int requestType); 00131 00132 static void addSetDataRequestCreatorFcn(const DtString & setDataName, 00133 int setDataType, DtSetDataRequestCreatorFcn fcn); 00134 00135 static void setFactory(DtSetDataRequestFactory * factory); 00136 static DtSetDataRequestFactory * factory(); 00137 00138 static bool getSetDataNameFromSetDataType(int setDataType, 00139 DtString& setDataName); 00140 static bool getSetDataTypeFromSetDataName(const DtString& setDataName, 00141 int& setDataType); 00142 00143 //static bool addSetDataTypeMapping(const DtString& setDataName, int setDataType); 00144 //static bool removeSetDataTypeMapping(const DtString& setDataName, 00146 00147 protected: 00148 virtual char* createNetworkBuffer(); 00149 00150 protected: 00151 char* myNetRep; 00152 00153 protected: 00154 00155 static DtSetDataRequestFactory * myFactory; 00156 }; 00157 00158 namespace DtBufferSerialize 00159 { 00162 DT_DLL_vrftasks int getSize(const DtSetDataRequest* const& setDataPtr); 00163 00168 DT_DLL_vrftasks char *encode(const DtSetDataRequest* const& setDataPtr, char *buffer); 00169 00178 DT_DLL_vrftasks const char *decode(DtSetDataRequest*& setDataPtr, const char *buffer); 00179 } 00180 00181 #endif 00182 00183 00184