messagePipeline.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 messagePipeline_H_
00010 #define messagePipeline_H_
00011 
00012 #include "lgrCore.h"
00013 #include <list>
00014 #include <vlutil/vlTime.h>
00015 
00016 namespace MAKLogger
00017 {
00018    class DtAbsoluteTime;
00019    class DtMessageState;
00020    class DtMessageOutput;
00021    class DtMessageInput;
00022    class DtLgrMessageOutputListener;
00023 
00027    class DT_DLL_LGRCORE DtMessagePipeline
00028    {
00029    public:
00031       DtMessagePipeline();
00032 
00034       virtual ~DtMessagePipeline();
00035 
00037       virtual void tick();
00038 
00044       virtual void bufferInputAndDiff(const DtAbsoluteTime& time, bool inclusive);
00045 
00048       virtual void reset();
00049 
00051       virtual void activate();
00053       virtual void deactivate();
00054 
00055 
00057       virtual bool inputFlag()  const;
00059       virtual bool outputFlag() const;
00061       virtual bool stateFlag()  const;
00062 
00064       virtual void setInputFlag(bool onOff);
00066       virtual void setOutputFlag(bool onOff);
00068       virtual void setStateFlag(bool onOff);
00069 
00071       virtual const DtMessageInput*  input() const;
00073       virtual DtMessageInput*  input();
00074 
00076       virtual const DtMessageOutput* output() const;
00078       virtual DtMessageOutput* output();
00079 
00081       virtual const DtMessageState*  state() const;
00083       virtual DtMessageState*  state();
00084 
00086       virtual void setInput(DtMessageInput *input);
00088       virtual void setOutput(DtMessageOutput *output);
00090       virtual void setState(DtMessageState *state);
00091 
00094       virtual void addOutputListener(DtLgrMessageOutputListener* listener);
00095 
00098       virtual void removeOutputListener(DtLgrMessageOutputListener* listener);
00099 
00102       virtual void setPlaybackReadTimeLimit(double limit);
00103 
00106       virtual double playbackReadTimeLimit() const;
00107 
00108    protected:
00109 
00111       DtMessagePipeline(const DtMessagePipeline&);
00112 
00114       DtMessagePipeline& operator=(const DtMessagePipeline&);
00115 
00117       bool myInputFlag;
00119       bool myOutputFlag;
00121       bool myStateFlag;
00123       bool myModifierFlag;
00125       bool myFilterFlag;
00126 
00128       DtMessageInput* myInput;
00129 
00131       DtMessageOutput* myOutput;
00132 
00134       DtMessageState* myState;
00135 
00136       typedef std::list<DtLgrMessageOutputListener*> OutputListeners;
00137       OutputListeners myListeners;
00138 
00139       double myPlaybackReadTimeLimit;
00140       DtClock myLimitClock;
00141    };
00142 }
00143 
00144 #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)