MAK Data Logger API Documentation for HLA
 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-2025 MAK Technologies, Inc
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 
DtObserveEvent< DtPacket > myPostOutputPacketEvent
Event called after a packet is output.
Definition: messageOutput.h:129
bool mySendRetainedFlag
Whether to send retained messages.
Definition: messageOutput.h:138
std::set< DtMessageFilter * > myFilters
Definition: messageOutput.h:123
Class defines interface for outputs for messages.
Definition: messageOutput.h:29
Necessary Predefinitions.
Definition: observeConnection.h:23
The message input is the interface for objects that provide messages into the pipeline.
Definition: messageInput.h:22
DtObserveEvent< DtPacket > myPreOutputPacketEvent
Event called before a packet is output.
Definition: messageOutput.h:126
Message buffer class responsible for storing a list of messages and iterating through that list...
Definition: messageBuffer.h:23
bool mySourceTimeBoundary
Whether the input time was inclusive or exclusive.
Definition: messageOutput.h:147
Contains MAKLogger::DtAbsoluteTime and MAKLogger::DtRelativeTime classes.
A message IO info object stores information about a specific message input or output stage...
Definition: messageIoInfo.h:21
DtAbsoluteTime mySourceTime
The time used for collecting input.
Definition: messageOutput.h:144
A generic packed of typed binary data.
Definition: packet.h:41
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
Contains MAKLogger::DtObserveEvent class.
DtObserveEvent< DtPacket > myFilteredPacketEvent
Event called if a packet is filtered.
Definition: messageOutput.h:132
bool mySendInitialFlag
Whether to send initial state messages.
Definition: messageOutput.h:141
Absolute Time, a particular measured instance in time, could be thought of as a set of relative times...
Definition: absoluteTime.h:82
Contains classes used for abstract collection of data Contails DtCollector interface and implementati...
Definition: lgrConfigLoader.h:22
bool mySendImmediateFlag
Whether to send immediate messages.
Definition: messageOutput.h:135
Contains lgrCore library definitions.

Document ID: Generated on Thu Dec 18 15:35:09 EST 2025 from SVN revision 282494
Copyright © 2024 MAK Technologies. All Rights Reserved (www.mak.com)