[Yunq] Check identify byte and ensure users check status code.
This commit is contained in:
parent
7d9f9a7ae9
commit
3eba0bd9d8
21 changed files with 142 additions and 67 deletions
|
|
@ -56,7 +56,11 @@ glcr::ErrorCode {{interface.name}}Client::{{method.name}}(const {{method.request
|
|||
RET_ERR(buffer_.At<uint64_t>(8));
|
||||
|
||||
{% if method.response != None %}
|
||||
response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||
// TODO: Return status.
|
||||
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||
if (!status) {
|
||||
return status.code();
|
||||
}
|
||||
{% endif %}
|
||||
|
||||
return glcr::OK;
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@ glcr::Status {{message.name}}::ParseFromBytes(const glcr::ByteBuffer& bytes, uin
|
|||
}
|
||||
|
||||
glcr::Status {{message.name}}::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
||||
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||
|
||||
{%- for field in message.fields %}
|
||||
// Parse {{field.name}}.
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ class {{message.name}} {
|
|||
{{message.name}}(const {{message.name}}&) = delete;
|
||||
{{message.name}}({{message.name}}&&) = delete;
|
||||
|
||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset, const glcr::CapBuffer&);
|
||||
[[nodiscard]] glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
||||
[[nodiscard]] glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset, const glcr::CapBuffer&);
|
||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -106,7 +106,11 @@ glcr::ErrorCode {{interface.name}}ServerBase::HandleRequest(const glcr::ByteBuff
|
|||
|
||||
{% if method.request != None %}
|
||||
{{method.request}} yunq_request;
|
||||
yunq_request.ParseFromBytes(request, kHeaderSize, req_caps);
|
||||
// TODO: Return status.
|
||||
auto status = yunq_request.ParseFromBytes(request, kHeaderSize, req_caps);
|
||||
if (!status) {
|
||||
return status.code();
|
||||
}
|
||||
{% endif %}
|
||||
|
||||
{% if method.response != None %}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue