lgrDisSimOutput.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00009 
00010 #ifndef lgrDisSimOutput_H_
00011 #define lgrDisSimOutput_H_
00012 
00013 #if DtDIS
00014 
00015 #include "lgrSim.h"
00016 #include "lgrSimOutput.h"
00017 #include <map>
00018 #include "virtualConstructor.h"
00019 
00020 #include <vl/objectId.h>
00021 
00022 class DtEntityPublisher;
00023 class DtAggregatePublisher;
00024 
00025 namespace MAKLogger
00026 {
00027 
00028    class DtLgrDisSimulationManager;
00029    class DtLgrDisMessageIOInfo;
00030    class DtMessageIOInfo;
00031    class DtConstLgrDisMessage;
00032    class DtLgrPublisherInterface;
00033 
00036    class DT_DLL_LGRSIM DtLgrDisSimOutput : public DtLgrSimOutput
00037    {
00038    public:
00039 
00040       DT_VIRTUAL_CTR(DtLgrDisSimOutput,(DtLgrDisSimulationManager* manager))
00041       DT_VIRTUAL_BASE_CTR(DtLgrSimOutput,(DtLgrDisSimulationManager* manager))
00042 
00043       virtual ~DtLgrDisSimOutput();
00044 
00045    private:
00047       DtLgrDisSimOutput(const DtLgrDisSimOutput&);
00049       DtLgrDisSimOutput& operator=(const DtLgrDisSimOutput&);
00050    public:
00051 
00052 
00053       virtual DtLgrSimOutput::PacketSenderType packetSenderType(const DtPacket&) const;
00054 
00056       virtual void disconnecting();
00057 
00060       virtual void activateImplementation();
00061 
00064       virtual void deactivateImplementation();
00065 
00066       virtual const DtMessageIOInfo* info() const;
00067 
00068       virtual void flush();
00069 
00070       virtual void setOutputScaling(double scaling, bool enableStatic);
00071 
00073       virtual void filterMessage(DtPacket* packet);
00074 
00075       virtual void removeEntity(const DtString& name);
00076       virtual void removeEntity(DtPduKind kind, DtObjectId id);
00077       virtual void removeEntity(DtConstLgrDisMessage&);
00078 
00079    protected:
00080       virtual void sendPacket(const DtPacket& packet);
00081 
00082       virtual void parsePacket(const DtPacket& packet);
00083 
00084       virtual void immediateSend(const DtPacket&) const;
00085       virtual void retainedSend(const DtPacket&);
00086 
00087       virtual void updateEntity(DtConstLgrDisMessage&);
00088 
00089       virtual void rescalePublishers(double oldScale,double newScale,
00090          bool wasStatic, bool isStatic);
00091 
00092       typedef std::pair<DtPduKind,DtObjectId> UniqueObjectId;
00093 
00094       typedef std::map<UniqueObjectId,DtLgrPublisherInterface*> ObjectPublisherMap;
00095 
00096       DtLgrDisSimulationManager* myManager;
00097 
00098       ObjectPublisherMap myObjectPublisherMap;
00099 
00101       DtLgrDisMessageIOInfo*     myMessageInfo;
00102 
00104       double myOutputScaling;
00105 
00107       bool myOutputStatic;
00108 
00110       mutable int mySendCount;
00111    };
00112 
00113 }
00114 
00115 #endif
00116 #endif

Document ID: Generated on Tue Oct 11 19:41:03 EDT 2011 from SVN revision 107422
Copyright © 2005-2011 VT MÄK Inc. All Rights Reserved (www.mak.com)