MAK Data Logger API Documentation for HLA
 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-2016 VT MAK
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 
148 
151 
154 
157 
160 
163 
166 
167  protected:
168 
171 
172  };
173 }

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)