ResponseHandler.h 806 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef RPC_RESPONSEHANDLER_H
  2. #define RPC_RESPONSEHANDLER_H
  3. #include <google/protobuf/service.h>
  4. #include <google/protobuf/message.h>
  5. #include "Base/Typedef.h"
  6. #include "Rpc/Typedef.h"
  7. namespace Egametang {
  8. class ResponseHandler
  9. {
  10. private:
  11. const google::protobuf::MethodDescriptor& method;
  12. google::protobuf::Message* request;
  13. google::protobuf::Message* response;
  14. std::size_t id;
  15. MessageHandler messageHandler;
  16. public:
  17. ResponseHandler(const RpcMetaPtr meta, const StringPtr message,
  18. MethodInfoPtr& methodInfo, MessageHandler& messageHandler);
  19. ~ResponseHandler();
  20. const google::protobuf::MethodDescriptor& Method() const;
  21. const google::protobuf::Message* Request() const;
  22. google::protobuf::Message* Response();
  23. void Run();
  24. };
  25. } // namespace Egametang
  26. #endif // RPC_RESPONSEHANDLER_H