MAK RTIspy API Documentation for HLA 1.3
retractList.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2001 MaK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 /*********************************************************************
00006 ** $RCSfile: retractList.h,v $ $Revision: 1.17 $ $State: Exp $
00007 *********************************************************************/
00008 
00011 
00012 #ifndef DtRetractInfoList_H_
00013 #define DtRetractInfoList_H_
00014 
00015 #include "rtiMsConfig.h"
00016 #include <memory>
00017 #include <vlutil/vlHashlist.h>
00018 #include "sortedList.h"
00019 
00020 #if defined(DtIFSPEC1516) || defined(DtIFSPEC1516E)
00021 #include <RTI/RTI1516.h>
00022 #else
00023 #ifdef DtIFSPEC13DLC
00024 #include "RTI13.h"
00025 #define RTI rti13
00026 #else
00027 #include "RTI.hh"
00028 #endif
00029 #endif
00030 
00032 
00033 class DtRtiMsg;
00034 class DtLogicalTimeFactory;
00035 
00038 class DT_DLL_LRC DtRetractInfo
00039 {
00040 public:
00041 
00043 #ifdef DtIFSPEC1516
00044    DtRetractInfo(unsigned long value,
00045       std::auto_ptr <rti1516::LogicalTime> timePtr);
00046 #elif defined(DtIFSPEC1516E)
00047     DtRetractInfo(unsigned long value,
00048         std::auto_ptr <rti1516e::LogicalTime> timePtr);
00049 #else
00050    DtRetractInfo(unsigned long value, std::auto_ptr <RTI::FedTime> timePtr);
00051 #endif
00052 
00054    virtual ~DtRetractInfo();
00055 
00057 #ifdef DtIFSPEC1516
00058    virtual void setTime(rti1516::LogicalTime const & timeVal);
00059    virtual rti1516::LogicalTime const & time() const;
00060 #elif defined(DtIFSPEC1516E)
00061    virtual void setTime(rti1516e::LogicalTime const & timeVal);
00062    virtual rti1516e::LogicalTime const & time() const;
00063 #else
00064    virtual void setTime(RTI::FedTime const & timeVal);
00065    virtual RTI::FedTime const & time() const;
00066 #endif
00067 
00069    unsigned long serialNumber();
00070    void setSerialNumber(unsigned long value);
00071 
00072 protected:
00073    explicit DtRetractInfo();
00074 
00075 protected:
00076 #ifdef DtIFSPEC1516
00077    std::auto_ptr <rti1516::LogicalTime> myTime;
00078 #elif defined(DtIFSPEC1516E)
00079    std::auto_ptr <rti1516e::LogicalTime> myTime;
00080 #else
00081    std::auto_ptr <RTI::FedTime> myTime;
00082 #endif
00083    unsigned long mySerialNumber;
00084 };
00085 
00086 #ifdef DtIFSPEC1516
00087 inline rti1516::LogicalTime const & DtRetractInfo::time() const
00088 {return *myTime;}
00089 inline void DtRetractInfo::setTime(rti1516::LogicalTime const & timeVal)
00090 {*myTime = timeVal;}
00091 #elif defined(DtIFSPEC1516E)
00092 inline rti1516e::LogicalTime const & DtRetractInfo::time() const
00093 {return *myTime;}
00094 inline void DtRetractInfo::setTime(rti1516e::LogicalTime const & timeVal)
00095 {*myTime = timeVal;}
00096 #else
00097 inline RTI::FedTime const & DtRetractInfo::time() const
00098 {return *myTime;}
00099 inline void DtRetractInfo::setTime(RTI::FedTime const & timeVal)
00100 {*myTime = timeVal;}
00101 #endif
00102 inline unsigned long DtRetractInfo::serialNumber()
00103 {return mySerialNumber;}
00104 inline void DtRetractInfo::setSerialNumber(unsigned long value)
00105 {mySerialNumber = value;}
00106 
00107 
00110 class DT_DLL_LRC DtRetractInfoItem : public DtSortedListItem
00111 {
00112 public:
00113 
00114    friend class DtRetractInfoList;
00115 
00116 public:
00117 
00119    virtual ~DtRetractInfoItem();
00120 
00122    virtual bool operator<= (const DtSortedListItem& item) const;
00123    virtual bool operator<  (const DtSortedListItem& item) const;
00124    virtual bool operator>= (const DtSortedListItem& item) const;
00125    virtual bool operator>  (const DtSortedListItem& item) const;
00126    virtual bool operator== (const DtSortedListItem& item) const;
00127 
00129    virtual DtRetractInfo* retractInfo();
00130 
00132    virtual void printData();
00133 
00134 protected:
00135 
00137    DtRetractInfoItem(void* data);
00138 
00139 protected:
00140    DtRetractInfo* myInfo;
00141 };
00142 
00143 inline DtRetractInfo* DtRetractInfoItem::retractInfo()
00144 {
00145    return myInfo;
00146 }
00147 
00148 class DT_DLL_LRC DtRetractInfoList : public DtSortedList
00149 {
00150 
00151 public:
00152    DtRetractInfoList(DtLogicalTimeFactory* logicalTimeFactory);
00153 
00154    virtual ~DtRetractInfoList();
00155 
00157    virtual DtRetractInfoItem* add(DtRetractInfo* info);
00158 
00160    virtual DtRetractInfoItem* add(const DtRtiMsg& msg);
00161 
00164    virtual void removeAll();
00165 
00167 #ifdef DtIFSPEC1516
00168    virtual void deleteAll(rti1516::LogicalTime const & time);
00169 #elif defined(DtIFSPEC1516E)
00170    virtual void deleteAll(rti1516e::LogicalTime const & time);
00171 #else
00172    virtual void deleteAll(RTI::FedTime const & time);
00173 #endif
00174 
00176    virtual DtRetractInfo* removeByNumber(unsigned long serialNumber);
00177 
00179    virtual void deleteByNumber(unsigned long serialNumber);
00180 
00182    virtual DtRetractInfo* lookupByNumber(unsigned long serialNumber);
00183 
00187    virtual DtRetractInfoItem* firstRetractItem() const;
00188    virtual DtRetractInfoItem* lastRetractItem() const;
00189 
00193 #ifdef DtIFSPEC1516
00194    virtual DtRetractInfo* minRetraction(rti1516::LogicalTime const & lower,
00195       rti1516::LogicalTime const & upper, bool includeLower) const;
00196 #elif defined(DtIFSPEC1516E)
00197    virtual DtRetractInfo* minRetraction(rti1516e::LogicalTime const & lower,
00198        rti1516e::LogicalTime const & upper, bool includeLower) const;
00199 #else
00200    virtual DtRetractInfo* minRetraction(RTI::FedTime const & lower,
00201       RTI::FedTime const & upper, bool includeLower) const;
00202 #endif
00203 
00204 protected:
00205 
00207    virtual DtSortedListItem* add(void* data);
00208 
00216    virtual void* remove(DtSortedListItem* item);
00217 
00220    virtual DtSortedListItem* newItem(void* data);
00221 
00223    virtual DtRetractInfoItem* lookupItem(unsigned long serialNumber);
00224 
00226    DtRetractInfoList(const DtRetractInfoList& orig);
00227    DtRetractInfoList& operator=(DtRetractInfoList const& orig);
00228 protected:
00229 
00230    MAKRti::DtHashlist mySerialIndexList;
00231    DtLogicalTimeFactory* myLogicalTimeFactory;
00232 };
00233 
00234 inline DtRetractInfoItem* DtRetractInfoList::firstRetractItem() const
00235 {
00236    return (DtRetractInfoItem*)first();
00237 }
00238 
00239 inline DtRetractInfoItem* DtRetractInfoList::lastRetractItem() const
00240 {
00241    return (DtRetractInfoItem*)last();
00242 }
00243 
00244 #endif

Document ID: Generated on Thu Jun 14 14:15:04 EDT 2012 from SVN revision 116116
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)