![]() |
VR-Link API Documentation for HLA Evolved
|
00001 /***************************************************************************** 00002 ** Copyright (c) 1992-2010 VT MAK 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 00006 00010 00011 #ifndef envList_H__ 00012 #define envList_H__ 00013 00014 #if DT_ENV_THREAD_SAFE 00015 #include <vlutil/vlMutex.h> 00016 #endif 00017 00018 #include "envValue.h" 00019 #include <list> 00020 00021 #ifdef DtUSE_UTILITIES_NAMESPACE 00022 namespace DtUSE_UTILITIES_NAMESPACE 00023 { 00024 #endif 00025 00026 00027 00031 class DT_DLL_MTL DtEnvList : public DtEnvValue 00032 { 00033 public: 00034 friend class DtEnvironment; 00035 00037 virtual DtEnvValueSP first() const; 00038 00040 virtual DtEnvValueSP last() const; 00041 00050 virtual DtEnvValueSP next(DtEnvValueSP) const; 00051 00053 static bool isList(const DtEnvValueSP&); 00054 00057 static DtEnvList* castToList(const DtEnvValueSP& value); 00058 00059 protected: 00060 00062 explicit DtEnvList(const DtString& value); 00063 00065 virtual DtEnvValue* clone() const; 00066 00068 virtual void cloneChildren(DtEnvList* list) const; 00069 00071 virtual void append(DtEnvValueSP); 00072 00074 virtual void remove(DtEnvValueSP); 00075 00077 DtEnvValueList myValues; 00078 00079 #if DT_ENV_THREAD_SAFE 00080 00081 mutable DtMutex myChildrenMutex; 00082 #endif 00083 }; 00084 00085 #ifdef DtUSE_UTILITIES_NAMESPACE 00086 } 00087 #endif 00088 00089 00090 #endif