00001 #ifndef DISTBOSS_WRITER_RPC_H 00002 #define DISTBOSS_WRITER_RPC_H 00003 00004 #include "DistBossUtil/PthrWriterBufPool.h" 00005 #include "DistBossServer/RpcInterface.h" 00006 #include "dis.hxx" 00007 #include <map> 00008 #include <string> 00009 00010 template<class Writer> 00011 class WriterRpc : virtual public DimRpc, virtual public RpcInterface 00012 { 00013 public : 00014 00015 WriterRpc(const std::string& svrName, const std::string& fname); 00016 virtual ~WriterRpc(); 00017 00018 int wait_to_end(); 00019 00020 00021 private : 00022 00023 void rpcHandler(); 00024 00025 void clearBak(int clientId); 00026 00027 WriterRpc(); //stop default 00028 00029 00030 private : 00031 00032 int m_evtDone; 00033 00034 int m_inCode; 00035 int m_outCode; 00036 00037 int m_size; 00038 void* m_pEvt; 00039 00040 PthrWriterBufPool<Writer>* m_writer; 00041 00042 std::string m_svrName; 00043 00044 std::map<int, AutoEnlargeBuffer*> m_evtBak; 00045 }; 00046 00047 #include "DistBossServer/template/WriterRpc.cc" 00048 00049 #endif