VR-Link API Documentation for DIS
emitterSysSR.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 
00007 
00010 
00011 #ifndef DtEmitterSystemRepository_H_
00012 #define DtEmitterSystemRepository_H_
00013 
00014 #include "embedSystemSR.h"
00015 #include "emittrBeamSR.h"
00016 #include <vlutil/vlList.h>
00017 
00019 enum DtEmitterSysRetCode
00020 {
00021    DtEmitterSuccess,
00022    DtBadBeamId,
00023    DtDuplicateBeamId
00024 };
00025 
00029 class DT_DLL_VL DtEmitterSystemRepository : public DtEmbeddedSystemRepository
00030 {
00031 public:
00032 
00034    typedef DtEmitterBeamRepository* (*DtBeamStateRepCreator)();
00035 
00036 public:
00037 
00039    DtEmitterSystemRepository();
00040 
00042    virtual ~DtEmitterSystemRepository();
00043 
00045    DtEmitterSystemRepository(const DtEmitterSystemRepository& orig);
00046 
00048    DtEmitterSystemRepository& operator=(const DtEmitterSystemRepository& orig);
00049 
00051    virtual DtStateRepository* clone(bool copy = false) const; 
00052 
00053 
00055    virtual void setEmitterFunction(DtEmissionFunc function);
00056    virtual DtEmissionFunc emitterFunction() const;
00057 
00059    virtual void setEmitterName(DtEmitterSysName name);
00060    virtual DtEmitterSysName emitterName() const;
00061 
00063    virtual void setEmitterNumber(DtU8 number);
00064    virtual DtU8 emitterNumber() const;
00065 
00067    virtual void setEventId(const DtEventId& id);
00068    virtual const DtEventId& eventId() const;
00069 
00071    virtual void printData() const;
00072 
00074    virtual void printDataToStream(std::ostream& stream) const;
00075 
00077    virtual DtEmitterBeamRepository* beamSRById(
00078       DtU8 beamId, 
00079       DtEmitterSysRetCode* retcode = NULL);
00080 
00085    virtual DtEmitterBeamRepository* addBeam(
00086       DtU8 beamId = 0, DtBeamType type = DtRegularBeam, 
00087       DtEmitterSysRetCode *retcode = NULL);
00088 
00094    virtual DtEmitterSysRetCode removeBeam(DtU8 beamId);
00095 #if DtHLA
00096    virtual DtEmitterSysRetCode removeBeam(const DtGlobalObjectDesignator& id);
00097 #endif
00098 
00100    virtual int numBeams() const;  
00101 
00103    virtual const DtList* beamList() const;
00104    virtual DtList* beamList();
00105 
00107    bool isMember(DtEmitterBeamRepository* bsr) const;
00108   
00109 public:
00110 
00111    static DtEmitterSystemRepository* create();
00112 
00114    static DtBeamStateRepCreator setStateRepCreator(DtBeamStateRepCreator creator);
00115 
00116 
00117 protected:
00118    virtual void purgeBeamList();
00119 
00120 protected:
00121    DtEventId                  myEventId;
00122    DtEmissionFunc             myEmitterFunction;
00123    DtEmitterSysName           myEmitterName;
00124    DtU8                       myEmitterNumber;
00125 
00127    DtList                     myBeamList;
00128 
00129 protected:
00130 
00131    static DtBeamStateRepCreator theBeamStateRepCreator;
00132 };
00133 
00134 #endif   //DtEmitterSystemRepository_H_
00135 

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)