|
@@ -288,22 +288,24 @@ CommMessageOut *RPCServerTask<RPCREQ, RPCRESP>::message_out()
|
|
|
status_code = this->resp.compress();
|
|
|
if (status_code == RPCStatusOK)
|
|
|
{
|
|
|
- // for server, this is the where series->module_data stored
|
|
|
- RPCModuleData *data = this->mutable_module_data();
|
|
|
+ if (!this->resp.serialize_meta())
|
|
|
+ status_code = RPCStatusMetaError;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- for (auto *module : modules_)
|
|
|
- module->server_task_end(this, *data);
|
|
|
+ this->resp.set_status_code(status_code);
|
|
|
|
|
|
- this->resp.set_meta_module_data(*data);
|
|
|
+ // for server, this is the where series->module_data stored
|
|
|
+ RPCModuleData *data = this->mutable_module_data();
|
|
|
|
|
|
- if (this->resp.serialize_meta())
|
|
|
- return this->WFServerTask<RPCREQ, RPCRESP>::message_out();
|
|
|
+ for (auto *module : modules_)
|
|
|
+ module->server_task_end(this, *data);
|
|
|
|
|
|
- status_code = RPCStatusMetaError;
|
|
|
- }
|
|
|
- }
|
|
|
+ this->resp.set_meta_module_data(*data);
|
|
|
+
|
|
|
+ if (status_code == RPCStatusOK)
|
|
|
+ return this->WFServerTask<RPCREQ, RPCRESP>::message_out();
|
|
|
|
|
|
- this->resp.set_status_code(status_code);
|
|
|
errno = EBADMSG;
|
|
|
return NULL;
|
|
|
}
|
|
@@ -444,31 +446,31 @@ CommMessageOut *RPCClientTask<RPCREQ, RPCRESP>::message_out()
|
|
|
|
|
|
if (status_code == RPCStatusOK)
|
|
|
{
|
|
|
- RPCModuleData *data = NULL;
|
|
|
- SERIES *series = dynamic_cast<SERIES *>(series_of(this));
|
|
|
-
|
|
|
- if (series)
|
|
|
- {
|
|
|
- data = series->get_module_data();
|
|
|
- if (data != NULL)
|
|
|
- this->set_module_data(*data);
|
|
|
- }
|
|
|
+ if (!this->req.serialize_meta())
|
|
|
+ status_code = RPCStatusMetaError;
|
|
|
+ }
|
|
|
|
|
|
- data = this->mutable_module_data();
|
|
|
+ this->resp.set_status_code(status_code);
|
|
|
|
|
|
- for (auto *module : modules_)
|
|
|
- module->client_task_begin(this, *data);
|
|
|
+ RPCModuleData *data = NULL;
|
|
|
+ SERIES *series = dynamic_cast<SERIES *>(series_of(this));
|
|
|
+ if (series)
|
|
|
+ {
|
|
|
+ data = series->get_module_data();
|
|
|
+ if (data != NULL)
|
|
|
+ this->set_module_data(*data);
|
|
|
+ }
|
|
|
+ data = this->mutable_module_data();
|
|
|
|
|
|
- this->req.set_meta_module_data(*data);
|
|
|
+ for (auto *module : modules_)
|
|
|
+ module->client_task_begin(this, *data);
|
|
|
|
|
|
- if (this->req.serialize_meta())
|
|
|
- return this->WFClientTask<RPCREQ, RPCRESP>::message_out();
|
|
|
+ this->req.set_meta_module_data(*data);
|
|
|
|
|
|
- status_code = RPCStatusMetaError;
|
|
|
- }
|
|
|
+ if (status_code == RPCStatusOK)
|
|
|
+ return this->WFClientTask<RPCREQ, RPCRESP>::message_out();
|
|
|
|
|
|
this->disable_retry();
|
|
|
- this->resp.set_status_code(status_code);
|
|
|
errno = EBADMSG;
|
|
|
return NULL;
|
|
|
}
|
|
@@ -575,7 +577,6 @@ void RPCClientTask<RPCREQ, RPCRESP>::rpc_callback(WFNetworkTask<RPCREQ, RPCRESP>
|
|
|
module->client_task_end(this, *resp_data);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
user_done_(status_code, worker);
|
|
|
}
|
|
|
|