19 #ifndef MIR_CLIENT_RPC_MIR_BASIC_RPC_CHANNEL_H_ 20 #define MIR_CLIENT_RPC_MIR_BASIC_RPC_CHANNEL_H_ 64 void save_completion_details(
65 mir::protobuf::wire::Invocation
const&
invoke,
66 google::protobuf::MessageLite* response,
67 google::protobuf::Closure* complete);
70 void populate_message_for_result(
71 mir::protobuf::wire::Result& result,
72 std::function<
void(google::protobuf::MessageLite*)>
const& populator);
76 void force_completion();
85 google::protobuf::MessageLite* response,
86 google::protobuf::Closure* target)
87 : response(response), complete(target) {}
90 : response(0), complete() {}
92 google::protobuf::MessageLite* response;
93 google::protobuf::Closure* complete;
96 std::mutex
mutable mutex;
97 std::map<int, PendingCall> pending_calls;
98 std::shared_ptr<RpcReport>
const rpc_report;
107 virtual void call_method(
108 std::string
const& method_name,
109 google::protobuf::MessageLite
const* parameters,
110 google::protobuf::MessageLite* response,
111 google::protobuf::Closure* complete) = 0;
115 mir::protobuf::wire::Invocation invocation_for(
116 std::string
const& method_name,
117 google::protobuf::MessageLite
const* request,
118 size_t num_side_channel_fds);
122 std::atomic<int> next_message_id;
123 int const protocol_version;
All things Mir.
Definition: atomic_callback.h:25
void invoke(Self *self, Server *server, void(ServerX::*function)(ParameterMessage const *request, ResultMessage *response,::google::protobuf::Closure *done), Invocation const &invocation)
Definition: template_protobuf_message_processor.h:51
Definition: mir_basic_rpc_channel.h:59
Definition: mir_basic_rpc_channel.h:102
complete_response
Definition: rpc_report_tp.h:71
std::vector< uint8_t > SendBuffer
Definition: mir_basic_rpc_channel.h:57
Definition: buffer_stream.h:37