00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __JackRequestDecoder__
00021 #define __JackRequestDecoder__
00022
00023 #include "JackChannel.h"
00024
00025 namespace Jack
00026 {
00027
00028 class JackServer;
00029 struct JackClientOpenRequest;
00030 struct JackClientOpenResult;
00031
00032 struct JackClientHandlerInterface {
00033
00034 virtual void ClientAdd(detail::JackChannelTransactionInterface* socket, JackClientOpenRequest* req, JackClientOpenResult* res) = 0;
00035 virtual void ClientRemove(detail::JackChannelTransactionInterface* socket, int refnum) = 0;
00036
00037 virtual ~JackClientHandlerInterface()
00038 {}
00039
00040 };
00041
00046 class JackRequestDecoder
00047 {
00048 private:
00049
00050 JackServer* fServer;
00051 JackClientHandlerInterface* fHandler;
00052
00053 public:
00054
00055 JackRequestDecoder(JackServer* server, JackClientHandlerInterface* handler);
00056 virtual ~JackRequestDecoder();
00057
00058 int HandleRequest(detail::JackChannelTransactionInterface* socket, int type);
00059 };
00060
00061 }
00062
00063 #endif