Go to the documentation of this file.00001
00002
00003
00004
00005
00008
00009 #ifndef lgrPacketFilter_H_
00010 #define lgrPacketFilter_H_
00011
00012 #include "lgrCore.h"
00013
00014 class DtString;
00015
00016 namespace MAKLogger
00017 {
00018 class DtPacket;
00019 class DtMessageIOInfo;
00020
00024 class DT_DLL_LGRCORE DtLgrPacketFilter
00025 {
00026 public:
00027
00028 enum FilterCombinationOperator
00029 {
00031 Filter_And,
00033 Filter_Nand,
00035 Filter_Or,
00037 Filter_Nor,
00039 Filter_Xor
00040
00041 };
00042
00043 protected:
00044 DtLgrPacketFilter(FilterCombinationOperator operation = Filter_Or);
00045
00046 private:
00048 DtLgrPacketFilter(const DtLgrPacketFilter&);
00050 DtLgrPacketFilter& operator=(const DtLgrPacketFilter&);
00051
00052 public:
00053
00054 virtual ~DtLgrPacketFilter();
00055
00057
00058
00060 virtual bool filterPacket(DtPacket* packet) = 0;
00061
00063 virtual DtString type() const = 0;
00064
00066 virtual void activate(const DtMessageIOInfo* info) = 0;
00067
00069 virtual void deactivate() = 0;
00070
00072 virtual char* serialize(int& size) const = 0;
00073
00075 virtual void setFromSerialization(const char* data,int size) = 0;
00076
00078
00080 FilterCombinationOperator filterOperation() const;
00081
00082 protected:
00083
00084 void setFilterOperation(FilterCombinationOperator filterOperator);
00085
00086 FilterCombinationOperator myOperation;
00087
00088 };
00089 }
00090
00091 #endif