![]() |
VR-Link API Documentation for HLA 1.3
|
00001 /********************************************************************* 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 *********************************************************************/ 00005 00006 00007 #ifndef hAttChgResInt_H_ 00008 #define hAttChgResInt_H_ 00009 00010 #if DtHLA 00011 00012 #include "hIntWEncDec.h" 00013 #include "hostStructs.h" 00014 #include <matrix/vlMath.h> 00015 #include "datumRecSet.h" 00016 00017 00018 00022 00023 class DT_DLL_VL DtAttributeChangeResInter; 00024 class DT_DLL_VL DtExerciseConn; 00025 00026 00028 typedef void (*DtAttributeChangeResInterCb)(DtAttributeChangeResInter* inter, 00029 void* usr); 00030 00031 00035 class DT_DLL_VL DtAttributeChangeResInter : public DtInteractionWithEncDec 00036 { 00037 public: 00038 00040 DtAttributeChangeResInter(); 00041 00043 virtual ~DtAttributeChangeResInter(); 00044 00046 DtAttributeChangeResInter(const DtAttributeChangeResInter& orig); 00047 00049 DtAttributeChangeResInter& operator=(const DtAttributeChangeResInter& orig); 00050 00052 virtual void printData() const; 00053 00055 virtual void printDataToStream(std::ostream& stream) const; 00056 00058 virtual void setObjectId(const DtGlobalObjectDesignator &id); 00059 virtual const DtGlobalObjectDesignator &objectId() const; 00060 00062 virtual void setNumPairs(DtU32 pairs); 00063 virtual DtU32 numPairs() const; 00064 00065 #if DtHLA_1516 00066 virtual void setAvMap( const RTI::AttributeHandleValueMap& atts); 00067 00068 virtual const RTI::AttributeHandleValueMap& avMap() const; 00069 #else 00070 virtual void setAvPairSet( 00071 const RTI::AttributeHandleValuePairSet& atts); 00072 00073 virtual const RTI::AttributeHandleValuePairSet& avPairSet() const; 00074 #endif 00075 00077 #if DtHLA_1516 00078 virtual void setAttributeHandle(DtU32 index, RTI::AttributeHandle handle); 00079 virtual RTI::AttributeHandle attributeHandle(DtU32 index) const; 00080 #else 00081 virtual void setAttributeHandle(DtU32 index, DtU32 handle); 00082 virtual DtU32 attributeHandle(DtU32 index) const; 00083 #endif 00084 00086 virtual void setAttributeValueLength(DtU32 index, DtU32 length); 00087 virtual DtU32 attributeValueLength(DtU32 index) const; 00088 00089 virtual void setAttributeValue(DtU32 index, const char* usr); 00090 virtual const char* attributeValue(DtU32 index) const; 00091 00097 virtual DtDatumRecordSet* datumRecSet(); 00098 virtual const DtDatumRecordSet* datumRecSet() const; 00099 00101 virtual void setAttributeChangeResult(DtAttributeChangeResult result); 00102 virtual DtAttributeChangeResult attributeChangeResult() const; 00103 00105 virtual const char* name() const; 00106 00107 public: 00108 00111 static DtInteraction* create(); 00112 00115 static void addCallback(DtExerciseConn* conn, 00116 DtAttributeChangeResInterCb cb, void* usr, 00117 DtDDMRegionSP region = DtDDMRegionSP()); 00118 static void removeCallback(DtExerciseConn* conn, 00119 DtAttributeChangeResInterCb cb, void* usr, 00120 DtDDMRegionSP region = DtDDMRegionSP()); 00121 00122 protected: 00123 DtGlobalObjectDesignator myObjectId; 00124 DtDatumRecordSet myRecordSet; 00125 DtAttributeChangeResult myAttributeChangeResult; 00126 #if DtHLA_1516 00127 mutable RTI::AttributeHandleValueMap myMap; 00128 #endif 00129 }; 00130 00131 inline const char* DtAttributeChangeResInter::name() const 00132 { 00133 return "DtAttributeChangeResInter"; 00134 } 00135 00136 #endif 00137 #endif 00138