@@ -682,13 +682,16 @@ ProtoServer::handle_request(
682682 req_env.ParseFromString (data);
683683 std::vector<ProtoServerResp<std::string>> serialized_responses;
684684 std::vector<proto::Response> responses;
685+
686+ auto msg_id = req_env.msg_id ();
687+ auto entity_id = req_env.entity_id ();
685688 try {
686- auto resp_msg = _handle_request (client_id, req_env);
689+ auto resp_msg = _handle_request (client_id, std::move ( req_env) );
687690 for (auto & resp : resp_msg) {
688691 ProtoServerResp<std::string> str_resp;
689692 str_resp.data = resp.data .SerializeAsString ();
690693 str_resp.client_id = resp.client_id ;
691- serialized_responses.emplace_back (str_resp);
694+ serialized_responses.emplace_back (std::move ( str_resp) );
692695 }
693696 } catch (const PerspectiveException& e) {
694697 proto::Response resp;
@@ -718,13 +721,13 @@ ProtoServer::handle_request(
718721 // proto::Response resp_env;
719722 serialized_responses.reserve (responses.size ());
720723 for (auto & resp : responses) {
721- resp.set_msg_id (req_env. msg_id () );
722- resp.set_entity_id (req_env. entity_id () );
724+ resp.set_msg_id (msg_id);
725+ resp.set_entity_id (entity_id);
723726
724727 ProtoServerResp<std::string> str_resp;
725728 str_resp.data = resp.SerializeAsString ();
726729 str_resp.client_id = client_id;
727- serialized_responses.emplace_back (str_resp);
730+ serialized_responses.emplace_back (std::move ( str_resp) );
728731 }
729732
730733 return serialized_responses;
@@ -1148,7 +1151,7 @@ coerce_to(const t_dtype dtype, const A& val) {
11481151}
11491152
11501153std::vector<ProtoServerResp<ProtoServer::Response>>
1151- ProtoServer::_handle_request (std::uint32_t client_id, const Request& req) {
1154+ ProtoServer::_handle_request (std::uint32_t client_id, Request& & req) {
11521155 static bool is_init_expr = false ;
11531156 if (!is_init_expr) {
11541157 t_computed_expression_parser::init ();
@@ -1157,9 +1160,13 @@ ProtoServer::_handle_request(std::uint32_t client_id, const Request& req) {
11571160
11581161 std::vector<ProtoServerResp<ProtoServer::Response>> proto_resp;
11591162 // proto::Response resp_env;
1163+
1164+ auto msg_id = req.msg_id ();
1165+ auto entity_id = req.entity_id ();
1166+
11601167 auto push_resp = [&](Response&& resp) {
1161- resp.set_msg_id (req. msg_id () );
1162- resp.set_entity_id (req. entity_id () );
1168+ resp.set_msg_id (msg_id);
1169+ resp.set_entity_id (entity_id);
11631170 ProtoServerResp<ProtoServer::Response> resp2;
11641171 resp2.data = std::move (resp);
11651172 resp2.client_id = client_id;
@@ -1280,32 +1287,42 @@ ProtoServer::_handle_request(std::uint32_t client_id, const Request& req) {
12801287 dims.end_col
12811288 );
12821289
1283- table = Table::from_arrow (index, *arrow, limit);
1290+ table = Table::from_arrow (index, std::move ( *arrow) , limit);
12841291 break ;
12851292 }
12861293 case proto::MakeTableData::kFromArrow : {
1287- table =
1288- Table::from_arrow (index, r.data ().from_arrow (), limit);
1294+ std::string data = r.data ().from_arrow ();
1295+ { auto _ = std::move (req); }
1296+
1297+ table = Table::from_arrow (index, std::move (data), limit);
12891298 break ;
12901299 }
12911300 case proto::MakeTableData::kFromCsv : {
1292- table = Table::from_csv (index, r.data ().from_csv (), limit);
1301+ std::string data = r.data ().from_csv ();
1302+ { auto _ = std::move (req); }
1303+
1304+ table = Table::from_csv (index, std::move (data), limit);
12931305 break ;
12941306 }
12951307 case proto::MakeTableData::kFromCols : {
1296- table =
1297- Table::from_cols (index, r.data ().from_cols (), limit);
1308+ std::string data = r.data ().from_cols ();
1309+ { auto _ = std::move (req); }
1310+
1311+ table = Table::from_cols (index, std::move (data), limit);
12981312 break ;
12991313 }
13001314 case proto::MakeTableData::kFromRows : {
1301- table =
1302- Table::from_rows (index, r.data ().from_rows (), limit);
1315+ std::string data = r.data ().from_rows ();
1316+ { auto _ = std::move (req); }
1317+
1318+ table = Table::from_rows (index, std::move (data), limit);
13031319 break ;
13041320 }
13051321 case proto::MakeTableData::kFromNdjson : {
1306- table = Table::from_ndjson (
1307- index, r.data ().from_ndjson (), limit
1308- );
1322+ std::string data = r.data ().from_ndjson ();
1323+ { auto _ = std::move (req); }
1324+
1325+ table = Table::from_ndjson (index, std::move (data), limit);
13091326 break ;
13101327 }
13111328 case proto::MakeTableData::kFromSchema : {
@@ -1327,7 +1344,7 @@ ProtoServer::_handle_request(std::uint32_t client_id, const Request& req) {
13271344 }
13281345 }
13291346
1330- m_resources.host_table (req. entity_id () , table);
1347+ m_resources.host_table (entity_id, table);
13311348 proto::Response resp;
13321349 resp.mutable_make_table_resp ();
13331350 push_resp (std::move (resp));
0 commit comments