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-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 
34 
37 
39  virtual ~DtLgrMarkingFilter();
40 
41  protected:
42 
46  DtLgrMarkingFilter& operator=(const DtLgrMarkingFilter&);
47 
48  public:
49 
51  virtual const DtString& type() const;
52 
54  virtual void activate(const DtMessageIOInfo* info);
55 
57  virtual void deactivate();
58 
60  virtual char* serialize(int& size) const;
61 
64  virtual int setFromSerialization(const char* data,int size);
65 
67  virtual bool filterPacket(DtPacket* packet);
68 
70  virtual bool isMarkingFiltered(const DtString& marking) const;
71 
73  virtual void filterMarking(const DtString& marking);
74 
76  virtual void filterMarkingList(const std::vector<DtString>& markingList);
77 
79  virtual void setMarkingFiltered(const DtString& marking, bool filtered);
80 
82  virtual void setMarkingsFiltered(const std::vector<DtString>& markings, bool enableFilter);
83 
85  virtual void clearObjectFilterStatus();
86 
88  virtual void unfilterAll();
89 
90  public:
91 
93  static const DtString& theType();
94 
95  protected:
96 
97  typedef std::map<DtLgrEntityTracker::EntryHandle, DtString> TrackerHandleEntityMarkingMap;
98  typedef std::map<DtString, DtString> EntityNameMarkingMap;
99  typedef std::set<DtString> MarkingSet;
100  typedef std::map<DtU64, bool> IdFilterMap;
101 
102  protected:
103 
105  virtual bool hasMarking(const DtPacket* packet) const = 0;
106 
108  virtual DtU64 uniqueId(const DtPacket* packet) const = 0;
109 
111  virtual DtString entityName(const DtPacket* packet) = 0;
112 
115  virtual bool getEntityName(const DtPacket* packet, DtString& name) = 0;
116 
118  virtual DtLgrEntityTracker::EntryHandle trackerHandle(const DtString& name) const;
119 
122  virtual bool isFiltered(DtU64 uid, bool& isFiltered) const;
123 
124  virtual void updateHandleMarkingMap(DtLgrEntityTracker::EntryHandle handle, DtString& marking);
125 
127  virtual void updateMarkings();
128 
129  protected:
130 
133 
136 
139 
142 
145 
148 
149  protected:
150 
152  static DtString theFilterType;
153 
154  };
155 }

Document ID: Generated on Thu Apr 7 20:50:59 EDT 2016 from SVN revision 163818
Copyright © 2005-2012 VT MÄK. All Rights Reserved (www.mak.com)