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