#pragma interface #ifndef TLMPTCPDUMP_H #define TLMPTCPDUMP_H #include struct TCPDUMP_STATS_DIR{ unsigned nbpk; unsigned long long size; struct timeval stamp; unsigned long seq; // TCP sequence number used to track out of // order packet and missing packet. // Currently, we only print error when this happen }; struct TCPDUMP_STATS { TCPDUMP_STATS_DIR from,to; bool synfrom,synto,synack; bool finfrom,finto,finack; /*~PROTOBEG~ TCPDUMP_STATS */ public: TCPDUMP_STATS (void); /*~PROTOEND~ TCPDUMP_STATS */ }; struct TCPSESSION{ unsigned long saddr,daddr; unsigned short sport,dport; /*~PROTOBEG~ TCPSESSION */ public: bool operator < (const TCPSESSION&c)const; /*~PROTOEND~ TCPSESSION */ }; class ARRAY_OBJ; #define _TLMP_tcpdump struct _F_tcpdump{ class _F_tcpdump_private *priv; int getnbsession(); #define _F_tcpdump_newsession(nom) void nom newsession(int no, const TCPSESSION &session, ARRAY_OBJ *&data, bool &end, bool &discard, bool &reverse) virtual _F_tcpdump_newsession( )=0; #define _F_tcpdump_endsession(nom) void nom endsession(int no, const TCPSESSION &session, ARRAY_OBJ *&data, bool &end, bool clientending) virtual _F_tcpdump_endsession( )=0; #define _F_tcpdump_packet(nom) void nom packet(int no, const TCPSESSION &session, ARRAY_OBJ *&data, bool &end, bool from, TCPDUMP_STATS &stats, const void *packet, int len) virtual _F_tcpdump_packet( )=0; #define _F_tcpdump_idle(nom) void nom idle(bool &end) virtual _F_tcpdump_idle( ); #define _F_tcpdump_missing(nom) void nom missing(int no, const TCPSESSION &session, bool from, ARRAY_OBJ *data, bool &end, bool &discard, unsigned long expect, unsigned long got) virtual _F_tcpdump_missing( ); }; #include "tlmptcpdump.p" #endif