MAK Data Logger API Documentation for DIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
lgrMarkingFilter.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>
15 
16 #include <set>
17 #include <map>
18 
19 namespace MAKLogger
20 {
21 
22  class DtPacket;
23  class DtLgrSimDriver;
24  class DtLgrSimManager;
25 
29  {
30  public:
31 
32  typedef std::set<DtString> MarkingSet;
33 
34  public:
35 
38 
41 
43  virtual ~DtLgrMarkingFilter();
44 
45  protected:
46 
50  DtLgrMarkingFilter& operator=(const DtLgrMarkingFilter&);
51 
52  public:
53 
55  virtual const DtString& type() const;
56 
58  virtual void activate(const DtMessageIOInfo* info);
59 
61  virtual void deactivate();
62 
64  virtual char* serialize(int& size) const;
65 
68  virtual int setFromSerialization(const char* data,int size);
69 
71  virtual bool filterPacket(DtPacket* packet);
72 
74  virtual bool isMarkingFiltered(const DtString& marking) const;
75 
77  virtual void filterMarking(const DtString& marking);
78 
80  virtual void addConfiguredMarkings(const std::vector<DtString>& markingList, bool filtered);
81 
83  virtual void filterMarkingList(const std::vector<DtString>& markingList);
84 
86  virtual void setMarkingFiltered(const DtString& marking, bool filtered);
87 
89  virtual void setMarkingsFiltered(const std::vector<DtString>& markings, bool enableFilter);
90 
92  virtual void clearObjectFilterStatus();
93 
95  virtual void clearMarkings();
96 
98  virtual void unfilterAll();
99 
101  virtual const MarkingSet& filteredMarkings() const;
102 
104  virtual const MarkingSet& configuredMarkings() const;
105 
106  public:
107 
109  static const DtString& theType();
110 
111  protected:
112 
113  typedef std::map<DtLgrEntityTracker::EntryHandle, DtString> TrackerHandleEntityMarkingMap;
114  typedef std::map<DtString, DtString> EntityNameMarkingMap;
115  typedef std::map<DtU64, bool> IdFilterMap;
116 
117  protected:
118 
120  virtual bool hasMarking(const DtPacket* packet) const = 0;
121 
123  virtual DtU64 uniqueId(const DtPacket* packet) const = 0;
124 
126  virtual DtString entityName(const DtPacket* packet) = 0;
127 
130  virtual bool getEntityName(const DtPacket* packet, DtString& name) = 0;
131 
133  virtual DtLgrEntityTracker::EntryHandle trackerHandle(const DtString& name) const;
134 
137  virtual bool isFiltered(DtU64 uid, bool& isFiltered) const;
138 
139  virtual void updateHandleMarkingMap(DtLgrEntityTracker::EntryHandle handle, DtString& marking);
140 
142  virtual void updateMarkings();
143 
144  protected:
145 
147 
150 
153 
156 
159 
162 
165 
166  protected:
167 
169  static DtString theFilterType;
170 
171  };
172 }
MarkingSet myConfiguredMarkings
Set of markings that are configured for filtering.
Definition: lgrMarkingFilter.h:161
DtLgrSimManager * mySimManager
Definition: lgrMarkingFilter.h:146
std::set< DtString > MarkingSet
Definition: lgrMarkingFilter.h:32
Entity type filter.
Definition: lgrMarkingFilter.h:28
EntityNameMarkingMap myEntityNameMarkingMap
Map from entity name to marking string.
Definition: lgrMarkingFilter.h:152
Contains MAKLogger::DtLgrPacketFilter class.
static DtString theFilterType
The filter type name.
Definition: lgrMarkingFilter.h:169
The abstract interface for the class responsible for controlling the simulation.
Definition: lgrSimDriver.h:37
TrackerHandleEntityMarkingMap myTrackerHandleEntityMarkingMap
Map from entry handle to marking string.
Definition: lgrMarkingFilter.h:149
Contains DT_VIRTUAL_CTR DT_VIRTUAL_CTR_DEFAULTS DT_VIRTUAL_COPY_ASSIGN DT_VIRTUAL_BASE_CTR DT_PURE_VI...
std::set< DtLgrEntityTracker::EntryHandle > EntryHandleSet
Definition: lgrEntityTracker.h:38
MarkingSet myFilteredMarkings
Set of markings that are being filtered.
Definition: lgrMarkingFilter.h:158
DtLgrEntityTracker::EntryHandleSet myFilteredTrackerHandles
Set of entry handles that are being filtered.
Definition: lgrMarkingFilter.h:155
IdFilterMap myObjectFilterStatus
Map from entity unique ID to its filter status.
Definition: lgrMarkingFilter.h:164
Base interface class for packet filters.
Definition: lgrPacketFilter.h:25
Implements a protocol independent Simulation manager.
Definition: lgrSimManager.h:40
Contains MAKLogger::DtLgrEntityTracker class.
std::map< DtString, DtString > EntityNameMarkingMap
Definition: lgrMarkingFilter.h:114
A message IO info object stores information about a specific message input or output stage...
Definition: messageIoInfo.h:21
A generic packed of typed binary data.
Definition: packet.h:41
#define DT_DLL_LGRCORE
Definition: lgrCore.h:19
std::map< DtU64, bool > IdFilterMap
Definition: lgrMarkingFilter.h:115
int EntryHandle
Definition: lgrEntityTracker.h:37
Contains lgrCore library definitions.
std::map< DtLgrEntityTracker::EntryHandle, DtString > TrackerHandleEntityMarkingMap
Definition: lgrMarkingFilter.h:113

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)