Back to index

natlog  0.91.0
conntrackrecord.h
Go to the documentation of this file.
00001 #ifndef INCLUDED_CONNTRACKRECORD_
00002 #define INCLUDED_CONNTRACKRECORD_
00003 
00004 #include <vector>
00005 #include <string>
00006 
00007 namespace FBB
00008 {
00009     class Pattern;
00010 }
00011 
00012 struct ConntrackRecord
00013 {
00014     struct Record
00015     {
00016         std::string key;
00017 
00018         std::string seconds;
00019         std::string musecs;
00020         std::string sourceIP;
00021         std::string destIP;
00022         std::string sourcePort;
00023         std::string destPort;
00024         std::string viaIP;
00025         std::string viaPort;
00026     };
00027 
00028     private:
00029         std::vector<Record *> d_connections;
00030             
00031     public:
00032         ~ConntrackRecord();
00033 
00034         size_t find(std::string const &key) const;
00035         void add(std::string const &key, FBB::Pattern const &pat);
00036         void erase(size_t idx);
00037         Record const *operator[](size_t idx);
00038         size_t size() const;
00039 
00040         std::vector<Record *>::const_iterator begin() const;
00041         std::vector<Record *>::const_iterator end() const;
00042 
00043     private:
00044         Record **firstFree();
00045 
00046 };
00047 
00048 inline size_t ConntrackRecord::size() const
00049 {
00050     return d_connections.size();
00051 }
00052 
00053 inline ConntrackRecord::Record const *ConntrackRecord::operator[](size_t idx)
00054 {
00055     return d_connections[idx];
00056 }
00057 
00058 
00059 inline std::vector<ConntrackRecord::Record *>::const_iterator 
00060                                             ConntrackRecord::begin() const
00061 {
00062     return d_connections.begin();
00063 }
00064 
00065 inline std::vector<ConntrackRecord::Record *>::const_iterator 
00066                                             ConntrackRecord::end() const
00067 {
00068     return d_connections.end();
00069 }
00070 
00071 #endif
00072 
00073 
00074