![]() |
VR-Link API Documentation for HLA 1516
|
00001 /****************************************************************************** 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00006 00010 00011 #ifndef envObject_H__ 00012 #define envObject_H__ 00013 00014 #include "envNamedList.h" 00015 #include "envObjectSync.h" 00016 #include <map> 00017 00018 #ifdef DtUSE_UTILITIES_NAMESPACE 00019 namespace DtUSE_UTILITIES_NAMESPACE 00020 { 00021 #endif 00022 00023 00026 class DT_DLL_MTL DtEnvObject : public DtEnvNamedList 00027 { 00028 public: 00029 friend class DtEnvironment; 00030 friend class DtEnvObjectSync; 00031 00032 virtual DtString type() const; 00033 virtual DtString name() const; 00034 00035 virtual DtEnvValueSP first() const; 00036 00037 virtual void setType(const DtString& type); 00038 virtual void setName(const DtString& type); 00039 00040 DtEnvValueSP attribute(const DtString& name) const; 00041 DtString attributeValue(const DtString& name) const; 00042 00043 static bool isObject(DtEnvValueSP); 00044 static bool isObject(DtEnvValueSP,const DtString& type); 00045 static bool isObject(DtEnvValueSP,const DtString& name,const DtString& type); 00046 00047 static DtEnvObject* castToObject(DtEnvValueSP); 00048 00050 virtual DtEnvObjectSync* sync() const; 00051 00052 protected: 00053 DtEnvObject(const DtString& objName,const DtString& objType,const DtString& objValue); 00054 00056 virtual DtEnvValue* clone() const; 00057 00059 virtual void valueChanged(); 00060 00062 virtual void childChanged(DtEnvValue*); 00063 00065 virtual void append(DtEnvValueSP); 00066 00068 virtual void remove(DtEnvValueSP); 00069 00071 virtual void setSync(DtEnvObjectSync* sync); 00072 00073 typedef std::map<DtString,DtEnvValueWP> DtEnvAttributeMap; 00074 DtEnvAttributeMap myAttributes; 00075 DtEnvObjectSync* mySyncObject; 00076 00077 }; 00078 00079 #ifdef DtUSE_UTILITIES_NAMESPACE 00080 } 00081 #endif 00082 00083 #endif