| 63 | } |
| 64 | |
| 65 | void SerializeEspRequest( |
| 66 | butil::IOBuf* request_buf, |
| 67 | Controller* cntl, |
| 68 | const google::protobuf::Message* req_base) { |
| 69 | |
| 70 | if (req_base == NULL) { |
| 71 | return cntl->SetFailed(EREQUEST, "request is NULL"); |
| 72 | } |
| 73 | ControllerPrivateAccessor accessor(cntl); |
| 74 | if (req_base->GetDescriptor() != EspMessage::descriptor()) { |
| 75 | return cntl->SetFailed(EINVAL, "Type of request must be EspMessage"); |
| 76 | } |
| 77 | if (cntl->response() != NULL && |
| 78 | cntl->response()->GetDescriptor() != EspMessage::descriptor()) { |
| 79 | return cntl->SetFailed(EINVAL, "Type of response must be EspMessage"); |
| 80 | } |
| 81 | const EspMessage* req = (const EspMessage*)req_base; |
| 82 | |
| 83 | EspHead head = req->head; |
| 84 | head.body_len = req->body.size(); |
| 85 | request_buf->append(&head, sizeof(head)); |
| 86 | request_buf->append(req->body); |
| 87 | } |
| 88 | |
| 89 | void PackEspRequest(butil::IOBuf* packet_buf, |
| 90 | SocketMessage**, |