VR-Link API Documentation for HLA 1516
tRefObjList.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00007 #ifndef tRefObjList_H_
00008 #define tRefObjList_H_
00009 
00010 #if DtTENA 
00011 
00012 
00013 #include <vlutil/vlMachineTypes.h>
00014 #include <vlutil/vlTime.h>
00015 #include <vlutil/vlString.h>
00016 #include <vlutil/vlList.h>
00017 #include "refObjCbInfo.h"
00018 #include <vlutil/vlHashlist.h>
00019 
00020 #include <vector>
00021 
00025 
00026 class DT_DLL_VL DtExerciseConn;
00027 class DT_DLL_VL DtHlaObject;
00028 class DT_DLL_VL DtStateMsg;
00029 class DT_DLL_VL DtReflectedObject;
00030 class DT_DLL_VL DtBaseHashKey;
00031 
00033 typedef bool (*DtDiscoveryCondition)(DtReflectedObject* refObj, void* usr);
00034 
00036 typedef DtReflectedObject* (*DtCreateReflectedObjFn)(DtExerciseConn*);
00037 
00044 class DT_DLL_VL DtReflectedObjectList
00045 {
00046 
00047 public:
00048 
00050    DtReflectedObjectList(DtExerciseConn* exConn);
00051 
00053    virtual ~DtReflectedObjectList();
00054 
00055 private:
00056 
00058    DtReflectedObjectList(const DtReflectedObjectList& orig);
00059 
00061    DtReflectedObjectList& operator=(const DtReflectedObjectList& orig);
00062 
00063 public:
00064 
00066    virtual DtExerciseConn* exerciseConn() const;
00067 
00069    virtual void print();
00070 
00073    virtual void setTimeoutProcessing(bool on);
00074 
00076    virtual DtReflectedObject* firstObj() const;
00077    virtual DtReflectedObject* lastObj() const;
00078 
00080    virtual void setTimeoutInterval(DtTime time);
00081    virtual DtTime timeoutInterval();
00082 
00084    virtual int count() const;
00085 
00088    virtual void setDiscoveryCondition(DtDiscoveryCondition fn, void* usr);
00089 
00092    virtual void clearDiscoveryCondition();
00093 
00095    virtual void setReflectedObjectCreationFunction(
00096       DtCreateReflectedObjFn fn);
00097 
00100    virtual void setUseTenaTimeForSets(bool yesNo);
00101 
00102    virtual void addObjectAdditionCallback(DtReflectedObjectCallbackFunction cb, void* userData);
00103 
00104    virtual void addObjectRemovalCallback(DtReflectedObjectCallbackFunction cb, void* userData);
00105 
00106    virtual void removeObjectAdditionCallback( DtReflectedObjectCallbackFunction cb, void* userData);
00107 
00108    virtual void removeObjectRemovalCallback( DtReflectedObjectCallbackFunction cb, void* userData);
00109 
00110 protected:
00111 
00114    virtual void processObjectAddition(DtReflectedObject *);
00115 
00118    virtual void processObjectRemoval(DtReflectedObject *);
00119 
00120    virtual void objectAdded(DtReflectedObject* object);
00121 
00122    void init(const std::vector<DtString>& interfaceNames);
00123 
00124 protected:
00125 
00128    static void objectAdditionCallback(DtReflectedObject *obj, void *userData);
00129 
00132    static void objectRemovalCallback(DtReflectedObject *obj, void *userData);
00133 
00134 protected:
00135 
00136    std::vector<DtString> myInterfaceNames;
00137    DtExerciseConn* myExConn;
00138    DtTime myTimeoutInterval;
00139    bool myTimeoutProcessingFlag;
00140    DtIntrusiveList myObjectList;
00141 };
00142 
00143 #endif   //! DtTENA
00144 #endif   //! DtReflectedObjectList_H_
00145 

Document ID: Generated on Mon May 14 08:06:18 EDT 2012 from SVN revision 114750
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)