Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef ProtocolProbeSessionAccept_H_
00025 #define ProtocolProbeSessionAccept_H_
00026
00027 #include "I_SessionAccept.h"
00028
00029 struct ProtocolProbeSessionAcceptEnums
00030 {
00031
00032
00033
00034 enum ProtoGroupKey {
00035 PROTO_HTTP,
00036 PROTO_HTTP2,
00037 PROTO_SPDY,
00038 N_PROTO_GROUPS
00039 };
00040 };
00041
00042 class ProtocolProbeSessionAccept: public SessionAccept, public ProtocolProbeSessionAcceptEnums
00043 {
00044 public:
00045 ProtocolProbeSessionAccept(): SessionAccept(NULL)
00046 {
00047 memset(endpoint, 0, sizeof(endpoint));
00048 SET_HANDLER(&ProtocolProbeSessionAccept::mainEvent);
00049 }
00050 ~ProtocolProbeSessionAccept() {}
00051
00052 void registerEndpoint(ProtoGroupKey key, SessionAccept * ap);
00053
00054 void accept(NetVConnection *, MIOBuffer *, IOBufferReader*);
00055
00056 private:
00057 int mainEvent(int event, void * netvc);
00058 ProtocolProbeSessionAccept(const ProtocolProbeSessionAccept &);
00059 ProtocolProbeSessionAccept& operator =(const ProtocolProbeSessionAccept&);
00060
00061
00062
00063
00064
00065
00066
00067 SessionAccept * endpoint[N_PROTO_GROUPS+1];
00068
00069 friend struct ProtocolProbeTrampoline;
00070 };
00071
00072 #endif