MCPcopy Create free account
hub / github.com/4paradigm/OpenMLDB / SyncRpcResponse

Method SyncRpcResponse

src/catalog/client_manager.cc:106–149  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104 return nullptr;
105}
106void AsyncTableHandler::SyncRpcResponse() {
107 auto cntl = callback_->GetController();
108 auto response = callback_->GetResponse();
109 if (!cntl || !response) {
110 status_.code = hybridse::common::kRpcError;
111 status_.msg = "rpc controller or response is null";
112 LOG(WARNING) << status_.msg;
113 return;
114 }
115 brpc::Join(cntl->call_id());
116 if (cntl->Failed()) {
117 status_ = ::hybridse::base::Status(::hybridse::common::kRpcError, "request error. " + cntl->ErrorText());
118 LOG(WARNING) << status_.msg;
119 return;
120 }
121 if (response->code() != 0) {
122 status_ = ::hybridse::base::Status(::hybridse::common::kResponseError, "request error. " + response->msg());
123 LOG(WARNING) << status_.msg;
124 return;
125 }
126
127 if (response->row_sizes_size() == 0) {
128 status_.code = hybridse::common::kResponseError;
129 status_.msg = "response error: rows empty";
130 LOG(WARNING) << status_.msg;
131 return;
132 }
133 size_t buf_offset = 0;
134 for (int i = 0; i < response->row_sizes_size(); ++i) {
135 size_t row_size = response->row_sizes(i);
136 hybridse::codec::Row row;
137 if (0 != row_size && !codec::DecodeRpcRow(cntl->response_attachment(), buf_offset, row_size,
138 response->non_common_slices(), &row)) {
139 status_.code = hybridse::common::kResponseError;
140 status_.msg = "response error: content decode fail";
141 LOG(WARNING) << status_.msg;
142 return;
143 }
144 AddRow(row);
145 buf_offset += row_size;
146 }
147 status_ = hybridse::base::Status::OK();
148 return;
149}
150
151AsyncTablesHandler::AsyncTablesHandler()
152 : hybridse::vm::MemTableHandler("", "", nullptr),

Callers

nothing calls this directly

Calls 4

DecodeRpcRowFunction · 0.85
codeMethod · 0.80
msgMethod · 0.80
StatusClass · 0.50

Tested by

no test coverage detected