MACE
1.0.0
|
00001 #ifndef _MACE_RPC_RAW_MESSAGE_HPP_ 00002 #define _MACE_RPC_RAW_MESSAGE_HPP_ 00003 #include <mace/rpc/varint.hpp> 00004 #include <mace/rpc/message.hpp> 00005 #include <mace/reflect/reflect.hpp> 00006 00007 namespace mace { namespace rpc { namespace raw { 00008 typedef std::vector<char> datavec; 00009 struct message { 00010 message(){}; 00011 message( mace::rpc::message&& m ) 00012 :id( m.id ? *m.id : 0 ),method(std::move(m.meth)),error_code(m.err),data(std::move(m.data)) 00013 {} 00014 00015 operator mace::rpc::message() { 00016 return mace::rpc::message( 00017 std::move(method), 00018 std::move(data), 00019 id.value, 00020 mace::rpc::message::error_type(error_code.value) 00021 ); 00022 } 00023 00024 signed_int id; 00025 std::string method; 00026 signed_int error_code; 00027 datavec data; 00028 }; 00029 00030 } } } 00031 00032 MACE_REFLECT( mace::rpc::raw::message, (id)(method)(error_code)(data) ) 00033 00034 #endif