messageOutput.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 1992-2010 VT MAK
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 
00008 
00009 #ifndef messageOutput_H_
00010 #define messageOutput_H_
00011 
00012 #include "lgrCore.h"
00013 
00014 #include "observeEvent.h"
00015 #include "absoluteTime.h"
00016 
00017 #include <set>
00018 
00019 namespace MAKLogger
00020 {
00021    template<typename T> class DtCollector;
00022    class DtMessageBuffer;
00023    class DtMessageFilter;
00024    class DtMessageIOInfo;
00025    class DtPacket;
00026    class DtMessageInput;
00027 
00030    class DT_DLL_LGRCORE DtMessageOutput
00031    {
00032    public:
00034       DtMessageOutput();
00035 
00037       virtual ~DtMessageOutput();
00038 
00039    private:
00041       DtMessageOutput(const DtMessageOutput&);
00043       DtMessageOutput& operator=(const DtMessageOutput&);
00044    public:
00045 
00047       virtual void activate(const DtMessageInput* fileInput) = 0;
00048 
00050       virtual bool isActivated() const = 0;
00051 
00053       virtual void deactivate() = 0;
00054 
00057 
00058       virtual void setSourceTime(const DtAbsoluteTime& sourceTime, bool inclusive);
00059       virtual DtAbsoluteTime sourceTime() const;
00061 
00063       virtual bool sourceTimeInclusive() const;
00064 
00068       virtual void outputMessages(const DtMessageBuffer& buffer);
00069 
00071       virtual void outputMessage(const DtPacket* packet);
00072 
00076       virtual bool outputPacket(const DtPacket& packet) = 0;
00077 
00080       virtual void filterMessages(DtMessageBuffer& buffer);
00081 
00083       virtual void filterMessage(DtPacket* packet) = 0;
00085       virtual void filterMessageAllowingCheckpoints(DtPacket* packet);
00086 
00088       virtual const DtMessageIOInfo* info() const = 0;
00089 
00091       virtual void flush() = 0;
00092 
00094       virtual void setOutputScaling(double scaling, bool enableStatic) = 0;
00095 
00097       virtual void setSendImmediate(bool enable);
00098 
00100       virtual void setSendRetained(bool enable);
00101 
00103       void attachFilter(DtMessageFilter*);
00104 
00106       void detachFilter(DtMessageFilter*);
00107 
00109       void filters(DtCollector<DtMessageFilter*> filterCollection) const;
00110 
00112       DtObserveEvent<DtPacket>* preOutputPacketEvent();
00113 
00115       DtObserveEvent<DtPacket>* postOutputPacketEvent();
00116 
00118       DtObserveEvent<DtPacket>* packetFilteredEvent();
00119 
00120    protected:
00121       std::set<DtMessageFilter*> myFilters;
00122 
00124       DtObserveEvent<DtPacket> myPreOutputPacketEvent;
00125 
00127       DtObserveEvent<DtPacket> myPostOutputPacketEvent;
00128 
00130       DtObserveEvent<DtPacket> myFilteredPacketEvent;
00131 
00133       bool mySendImmediateFlag;
00134 
00136       bool mySendRetainedFlag;
00137 
00139       DtAbsoluteTime mySourceTime;
00140 
00142       bool mySourceTimeBoundary;
00143 
00144    };
00145 
00146 }
00147 
00148 #endif
00149 

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)