MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
messageOutput.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 1992-2016 VT MAK
3 ** All rights reserved.
4 ******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include <lgrCore/lgrCore.h>
12 
13 #include <lgrUtil/observeEvent.h>
14 #include <lgrUtil/absoluteTime.h>
15 
16 #include <set>
17 
18 namespace MAKLogger
19 {
20  template<typename T> class DtCollector;
21  class DtMessageBuffer;
22  class DtMessageFilter;
23  class DtMessageIOInfo;
24  class DtPacket;
25  class DtMessageInput;
26 
30  {
31  public:
34 
36  virtual ~DtMessageOutput();
37 
38  private:
42  DtMessageOutput& operator=(const DtMessageOutput&);
43  public:
44 
46  virtual void activate(const DtMessageInput* fileInput) = 0;
47 
49  virtual bool isActivated() const = 0;
50 
52  virtual void deactivate() = 0;
53 
56 
57  virtual void setSourceTime(const DtAbsoluteTime& sourceTime, bool inclusive);
58  virtual DtAbsoluteTime sourceTime() const;
60 
62  virtual bool sourceTimeInclusive() const;
63 
67  virtual void outputMessages(const DtMessageBuffer& buffer);
68 
70  virtual void outputMessage(const DtPacket* packet);
71 
75  virtual bool outputPacket(const DtPacket& packet) = 0;
76 
79  virtual void filterMessages(DtMessageBuffer& buffer);
80 
82  virtual void filterMessage(DtPacket* packet) = 0;
84  virtual void filterMessageAllowingCheckpoints(DtPacket* packet);
85 
87  virtual const DtMessageIOInfo* info() const = 0;
88 
90  virtual void flush() = 0;
91 
93  virtual void setOutputScaling(double scaling, bool enableStatic, bool isPaused=false) = 0;
94 
96  virtual void setSendImmediate(bool enable);
97 
99  virtual void setSendRetained(bool enable);
100 
102  virtual void setSendInitial(bool enable);
103 
105  void attachFilter(DtMessageFilter*);
106 
108  void detachFilter(DtMessageFilter*);
109 
111  void filters(DtCollector<DtMessageFilter*> filterCollection) const;
112 
114  DtObserveEvent<DtPacket>* preOutputPacketEvent();
115 
117  DtObserveEvent<DtPacket>* postOutputPacketEvent();
118 
120  DtObserveEvent<DtPacket>* packetFilteredEvent();
121 
122  protected:
123  std::set<DtMessageFilter*> myFilters;
124 
127 
130 
133 
136 
139 
142 
145 
148 
149  };
150 
151 }
152 

Document ID: Generated on Thu Jul 23 15:05:27 EDT 2020 from SVN revision 215371
Copyright © 2020 MAK Technologies. All Rights Reserved (www.mak.com)