[Yunq] Check identify byte and ensure users check status code.
This commit is contained in:
parent
7d9f9a7ae9
commit
3eba0bd9d8
|
@ -1,9 +1,16 @@
|
||||||
#include "serialize.h"
|
#include "serialize.h"
|
||||||
|
|
||||||
namespace yunq {
|
namespace yunq {
|
||||||
|
namespace {
|
||||||
|
|
||||||
glcr::Status CheckHeader(const glcr::ByteBuffer& buffer) {
|
const uint64_t kIdentByte = 0x33441122;
|
||||||
// TODO: Check ident.
|
|
||||||
|
} // namespace
|
||||||
|
|
||||||
|
glcr::Status CheckHeader(const glcr::ByteBuffer& buffer, uint64_t offset) {
|
||||||
|
if (buffer.At<uint32_t>(offset + 0) != kIdentByte) {
|
||||||
|
return glcr::InvalidArgument("Trying to parse an invalid yunq message.");
|
||||||
|
}
|
||||||
// TODO: Parse core size.
|
// TODO: Parse core size.
|
||||||
// TODO: Parse extension size.
|
// TODO: Parse extension size.
|
||||||
// TODO: Check CRC32
|
// TODO: Check CRC32
|
||||||
|
@ -13,8 +20,7 @@ glcr::Status CheckHeader(const glcr::ByteBuffer& buffer) {
|
||||||
|
|
||||||
void WriteHeader(glcr::ByteBuffer& bytes, uint64_t offset, uint32_t core_size,
|
void WriteHeader(glcr::ByteBuffer& bytes, uint64_t offset, uint32_t core_size,
|
||||||
uint32_t extension_size) {
|
uint32_t extension_size) {
|
||||||
bytes.WriteAt<uint32_t>(
|
bytes.WriteAt<uint32_t>(offset + 0, kIdentByte);
|
||||||
offset + 0, 0xDEADBEEF); // TODO: Chose a more unique ident sequence.
|
|
||||||
bytes.WriteAt<uint32_t>(offset + 4, core_size);
|
bytes.WriteAt<uint32_t>(offset + 4, core_size);
|
||||||
bytes.WriteAt<uint32_t>(offset + 8, extension_size);
|
bytes.WriteAt<uint32_t>(offset + 8, extension_size);
|
||||||
bytes.WriteAt<uint32_t>(offset + 12, 0); // TODO: Calculate CRC32.
|
bytes.WriteAt<uint32_t>(offset + 12, 0); // TODO: Calculate CRC32.
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
|
|
||||||
namespace yunq {
|
namespace yunq {
|
||||||
|
|
||||||
[[nodiscard]] glcr::Status CheckHeader(const glcr::ByteBuffer& buffer);
|
[[nodiscard]] glcr::Status CheckHeader(const glcr::ByteBuffer& buffer,
|
||||||
|
uint64_t offset);
|
||||||
|
|
||||||
void WriteHeader(glcr::ByteBuffer& bytes, uint64_t offset, uint32_t core_size,
|
void WriteHeader(glcr::ByteBuffer& bytes, uint64_t offset, uint32_t core_size,
|
||||||
uint32_t extension_size);
|
uint32_t extension_size);
|
||||||
|
|
|
@ -48,7 +48,11 @@ glcr::ErrorCode DenaliClient::Read(const ReadRequest& request, ReadResponse& res
|
||||||
RET_ERR(buffer_.At<uint64_t>(8));
|
RET_ERR(buffer_.At<uint64_t>(8));
|
||||||
|
|
||||||
|
|
||||||
response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
// TODO: Return status.
|
||||||
|
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||||
|
if (!status) {
|
||||||
|
return status.code();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return glcr::OK;
|
return glcr::OK;
|
||||||
|
@ -87,7 +91,11 @@ glcr::ErrorCode DenaliClient::ReadMany(const ReadManyRequest& request, ReadRespo
|
||||||
RET_ERR(buffer_.At<uint64_t>(8));
|
RET_ERR(buffer_.At<uint64_t>(8));
|
||||||
|
|
||||||
|
|
||||||
response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
// TODO: Return status.
|
||||||
|
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||||
|
if (!status) {
|
||||||
|
return status.code();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return glcr::OK;
|
return glcr::OK;
|
||||||
|
|
|
@ -25,7 +25,7 @@ glcr::Status ReadRequest::ParseFromBytes(const glcr::ByteBuffer& bytes, uint64_t
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status ReadRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status ReadRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse device_id.
|
// Parse device_id.
|
||||||
set_device_id(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
|
set_device_id(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
|
||||||
// Parse lba.
|
// Parse lba.
|
||||||
|
@ -79,7 +79,7 @@ glcr::Status ReadManyRequest::ParseFromBytes(const glcr::ByteBuffer& bytes, uint
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status ReadManyRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status ReadManyRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse device_id.
|
// Parse device_id.
|
||||||
set_device_id(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
|
set_device_id(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
|
||||||
// Parse lba.
|
// Parse lba.
|
||||||
|
@ -200,7 +200,7 @@ glcr::Status ReadResponse::ParseFromBytes(const glcr::ByteBuffer& bytes, uint64_
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status ReadResponse::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status ReadResponse::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse device_id.
|
// Parse device_id.
|
||||||
set_device_id(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
|
set_device_id(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
|
||||||
// Parse size.
|
// Parse size.
|
||||||
|
|
|
@ -16,8 +16,8 @@ class ReadRequest {
|
||||||
ReadRequest(const ReadRequest&) = delete;
|
ReadRequest(const ReadRequest&) = delete;
|
||||||
ReadRequest(ReadRequest&&) = delete;
|
ReadRequest(ReadRequest&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const uint64_t& device_id() const { return device_id_; }
|
const uint64_t& device_id() const { return device_id_; }
|
||||||
|
@ -42,8 +42,8 @@ class ReadManyRequest {
|
||||||
ReadManyRequest(const ReadManyRequest&) = delete;
|
ReadManyRequest(const ReadManyRequest&) = delete;
|
||||||
ReadManyRequest(ReadManyRequest&&) = delete;
|
ReadManyRequest(ReadManyRequest&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const uint64_t& device_id() const { return device_id_; }
|
const uint64_t& device_id() const { return device_id_; }
|
||||||
|
@ -68,8 +68,8 @@ class ReadResponse {
|
||||||
ReadResponse(const ReadResponse&) = delete;
|
ReadResponse(const ReadResponse&) = delete;
|
||||||
ReadResponse(ReadResponse&&) = delete;
|
ReadResponse(ReadResponse&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const uint64_t& device_id() const { return device_id_; }
|
const uint64_t& device_id() const { return device_id_; }
|
||||||
|
|
|
@ -103,7 +103,11 @@ glcr::ErrorCode DenaliServerBase::HandleRequest(const glcr::ByteBuffer& request,
|
||||||
|
|
||||||
|
|
||||||
ReadRequest yunq_request;
|
ReadRequest 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -123,7 +127,11 @@ glcr::ErrorCode DenaliServerBase::HandleRequest(const glcr::ByteBuffer& request,
|
||||||
|
|
||||||
|
|
||||||
ReadManyRequest yunq_request;
|
ReadManyRequest 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,11 @@ glcr::ErrorCode VFSClient::OpenFile(const OpenFileRequest& request, OpenFileResp
|
||||||
RET_ERR(buffer_.At<uint64_t>(8));
|
RET_ERR(buffer_.At<uint64_t>(8));
|
||||||
|
|
||||||
|
|
||||||
response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
// TODO: Return status.
|
||||||
|
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||||
|
if (!status) {
|
||||||
|
return status.code();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return glcr::OK;
|
return glcr::OK;
|
||||||
|
@ -87,7 +91,11 @@ glcr::ErrorCode VFSClient::GetDirectory(const GetDirectoryRequest& request, Dire
|
||||||
RET_ERR(buffer_.At<uint64_t>(8));
|
RET_ERR(buffer_.At<uint64_t>(8));
|
||||||
|
|
||||||
|
|
||||||
response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
// TODO: Return status.
|
||||||
|
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||||
|
if (!status) {
|
||||||
|
return status.code();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return glcr::OK;
|
return glcr::OK;
|
||||||
|
|
|
@ -25,7 +25,7 @@ glcr::Status OpenFileRequest::ParseFromBytes(const glcr::ByteBuffer& bytes, uint
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status OpenFileRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status OpenFileRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse path.
|
// Parse path.
|
||||||
auto path_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
auto path_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ glcr::Status OpenFileResponse::ParseFromBytes(const glcr::ByteBuffer& bytes, uin
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status OpenFileResponse::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status OpenFileResponse::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse path.
|
// Parse path.
|
||||||
auto path_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
auto path_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
||||||
|
|
||||||
|
@ -170,7 +170,7 @@ glcr::Status GetDirectoryRequest::ParseFromBytes(const glcr::ByteBuffer& bytes,
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status GetDirectoryRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status GetDirectoryRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse path.
|
// Parse path.
|
||||||
auto path_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
auto path_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
||||||
|
|
||||||
|
@ -232,7 +232,7 @@ glcr::Status Directory::ParseFromBytes(const glcr::ByteBuffer& bytes, uint64_t o
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status Directory::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status Directory::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse filenames.
|
// Parse filenames.
|
||||||
auto filenames_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
auto filenames_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,8 @@ class OpenFileRequest {
|
||||||
OpenFileRequest(const OpenFileRequest&) = delete;
|
OpenFileRequest(const OpenFileRequest&) = delete;
|
||||||
OpenFileRequest(OpenFileRequest&&) = delete;
|
OpenFileRequest(OpenFileRequest&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const glcr::String& path() const { return path_; }
|
const glcr::String& path() const { return path_; }
|
||||||
|
@ -36,8 +36,8 @@ class OpenFileResponse {
|
||||||
OpenFileResponse(const OpenFileResponse&) = delete;
|
OpenFileResponse(const OpenFileResponse&) = delete;
|
||||||
OpenFileResponse(OpenFileResponse&&) = delete;
|
OpenFileResponse(OpenFileResponse&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const glcr::String& path() const { return path_; }
|
const glcr::String& path() const { return path_; }
|
||||||
|
@ -62,8 +62,8 @@ class GetDirectoryRequest {
|
||||||
GetDirectoryRequest(const GetDirectoryRequest&) = delete;
|
GetDirectoryRequest(const GetDirectoryRequest&) = delete;
|
||||||
GetDirectoryRequest(GetDirectoryRequest&&) = delete;
|
GetDirectoryRequest(GetDirectoryRequest&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const glcr::String& path() const { return path_; }
|
const glcr::String& path() const { return path_; }
|
||||||
|
@ -82,8 +82,8 @@ class Directory {
|
||||||
Directory(const Directory&) = delete;
|
Directory(const Directory&) = delete;
|
||||||
Directory(Directory&&) = delete;
|
Directory(Directory&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const glcr::String& filenames() const { return filenames_; }
|
const glcr::String& filenames() const { return filenames_; }
|
||||||
|
|
|
@ -103,7 +103,11 @@ glcr::ErrorCode VFSServerBase::HandleRequest(const glcr::ByteBuffer& request,
|
||||||
|
|
||||||
|
|
||||||
OpenFileRequest yunq_request;
|
OpenFileRequest 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -123,7 +127,11 @@ glcr::ErrorCode VFSServerBase::HandleRequest(const glcr::ByteBuffer& request,
|
||||||
|
|
||||||
|
|
||||||
GetDirectoryRequest yunq_request;
|
GetDirectoryRequest 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ glcr::Status KeyboardListener::ParseFromBytes(const glcr::ByteBuffer& bytes, uin
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status KeyboardListener::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status KeyboardListener::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse port_capability.
|
// Parse port_capability.
|
||||||
// Skip Cap.
|
// Skip Cap.
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,8 @@ class KeyboardListener {
|
||||||
KeyboardListener(const KeyboardListener&) = delete;
|
KeyboardListener(const KeyboardListener&) = delete;
|
||||||
KeyboardListener(KeyboardListener&&) = delete;
|
KeyboardListener(KeyboardListener&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const z_cap_t& port_capability() const { return port_capability_; }
|
const z_cap_t& port_capability() const { return port_capability_; }
|
||||||
|
|
|
@ -103,7 +103,11 @@ glcr::ErrorCode VoyageursServerBase::HandleRequest(const glcr::ByteBuffer& reque
|
||||||
|
|
||||||
|
|
||||||
KeyboardListener yunq_request;
|
KeyboardListener 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,11 @@ glcr::ErrorCode YellowstoneClient::GetEndpoint(const GetEndpointRequest& request
|
||||||
RET_ERR(buffer_.At<uint64_t>(8));
|
RET_ERR(buffer_.At<uint64_t>(8));
|
||||||
|
|
||||||
|
|
||||||
response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
// TODO: Return status.
|
||||||
|
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||||
|
if (!status) {
|
||||||
|
return status.code();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return glcr::OK;
|
return glcr::OK;
|
||||||
|
@ -126,7 +130,11 @@ glcr::ErrorCode YellowstoneClient::GetAhciInfo(AhciInfo& response) {
|
||||||
RET_ERR(buffer_.At<uint64_t>(8));
|
RET_ERR(buffer_.At<uint64_t>(8));
|
||||||
|
|
||||||
|
|
||||||
response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
// TODO: Return status.
|
||||||
|
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||||
|
if (!status) {
|
||||||
|
return status.code();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return glcr::OK;
|
return glcr::OK;
|
||||||
|
@ -165,7 +173,11 @@ glcr::ErrorCode YellowstoneClient::GetFramebufferInfo(FramebufferInfo& response)
|
||||||
RET_ERR(buffer_.At<uint64_t>(8));
|
RET_ERR(buffer_.At<uint64_t>(8));
|
||||||
|
|
||||||
|
|
||||||
response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
// TODO: Return status.
|
||||||
|
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||||
|
if (!status) {
|
||||||
|
return status.code();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return glcr::OK;
|
return glcr::OK;
|
||||||
|
@ -204,7 +216,11 @@ glcr::ErrorCode YellowstoneClient::GetDenali(DenaliInfo& response) {
|
||||||
RET_ERR(buffer_.At<uint64_t>(8));
|
RET_ERR(buffer_.At<uint64_t>(8));
|
||||||
|
|
||||||
|
|
||||||
response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
// TODO: Return status.
|
||||||
|
auto status = response.ParseFromBytes(buffer_, 16, cap_buffer_);
|
||||||
|
if (!status) {
|
||||||
|
return status.code();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return glcr::OK;
|
return glcr::OK;
|
||||||
|
|
|
@ -34,7 +34,7 @@ glcr::Status RegisterEndpointRequest::ParseFromBytes(const glcr::ByteBuffer& byt
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status RegisterEndpointRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status RegisterEndpointRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse endpoint_name.
|
// Parse endpoint_name.
|
||||||
auto endpoint_name_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
auto endpoint_name_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
||||||
|
|
||||||
|
@ -104,7 +104,7 @@ glcr::Status GetEndpointRequest::ParseFromBytes(const glcr::ByteBuffer& bytes, u
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status GetEndpointRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status GetEndpointRequest::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse endpoint_name.
|
// Parse endpoint_name.
|
||||||
auto endpoint_name_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
auto endpoint_name_pointer = bytes.At<ExtPointer>(offset + header_size + (8 * 0));
|
||||||
|
|
||||||
|
@ -173,7 +173,7 @@ glcr::Status Endpoint::ParseFromBytes(const glcr::ByteBuffer& bytes, uint64_t of
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status Endpoint::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status Endpoint::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse endpoint.
|
// Parse endpoint.
|
||||||
// Skip Cap.
|
// Skip Cap.
|
||||||
|
|
||||||
|
@ -224,7 +224,7 @@ glcr::Status AhciInfo::ParseFromBytes(const glcr::ByteBuffer& bytes, uint64_t of
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status AhciInfo::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status AhciInfo::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse ahci_region.
|
// Parse ahci_region.
|
||||||
// Skip Cap.
|
// Skip Cap.
|
||||||
// Parse region_length.
|
// Parse region_length.
|
||||||
|
@ -274,7 +274,7 @@ glcr::Status FramebufferInfo::ParseFromBytes(const glcr::ByteBuffer& bytes, uint
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status FramebufferInfo::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status FramebufferInfo::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse address_phys.
|
// Parse address_phys.
|
||||||
set_address_phys(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
|
set_address_phys(bytes.At<uint64_t>(offset + header_size + (8 * 0)));
|
||||||
// Parse width.
|
// Parse width.
|
||||||
|
@ -389,7 +389,7 @@ glcr::Status DenaliInfo::ParseFromBytes(const glcr::ByteBuffer& bytes, uint64_t
|
||||||
}
|
}
|
||||||
|
|
||||||
glcr::Status DenaliInfo::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
glcr::Status DenaliInfo::ParseFromBytesInternal(const glcr::ByteBuffer& bytes, uint64_t offset) {
|
||||||
RETURN_ERROR(yunq::CheckHeader(bytes));
|
RETURN_ERROR(yunq::CheckHeader(bytes, offset));
|
||||||
// Parse denali_endpoint.
|
// Parse denali_endpoint.
|
||||||
// Skip Cap.
|
// Skip Cap.
|
||||||
// Parse device_id.
|
// Parse device_id.
|
||||||
|
|
|
@ -18,8 +18,8 @@ class RegisterEndpointRequest {
|
||||||
RegisterEndpointRequest(const RegisterEndpointRequest&) = delete;
|
RegisterEndpointRequest(const RegisterEndpointRequest&) = delete;
|
||||||
RegisterEndpointRequest(RegisterEndpointRequest&&) = delete;
|
RegisterEndpointRequest(RegisterEndpointRequest&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const glcr::String& endpoint_name() const { return endpoint_name_; }
|
const glcr::String& endpoint_name() const { return endpoint_name_; }
|
||||||
|
@ -41,8 +41,8 @@ class GetEndpointRequest {
|
||||||
GetEndpointRequest(const GetEndpointRequest&) = delete;
|
GetEndpointRequest(const GetEndpointRequest&) = delete;
|
||||||
GetEndpointRequest(GetEndpointRequest&&) = delete;
|
GetEndpointRequest(GetEndpointRequest&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const glcr::String& endpoint_name() const { return endpoint_name_; }
|
const glcr::String& endpoint_name() const { return endpoint_name_; }
|
||||||
|
@ -61,8 +61,8 @@ class Endpoint {
|
||||||
Endpoint(const Endpoint&) = delete;
|
Endpoint(const Endpoint&) = delete;
|
||||||
Endpoint(Endpoint&&) = delete;
|
Endpoint(Endpoint&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const z_cap_t& endpoint() const { return endpoint_; }
|
const z_cap_t& endpoint() const { return endpoint_; }
|
||||||
|
@ -81,8 +81,8 @@ class AhciInfo {
|
||||||
AhciInfo(const AhciInfo&) = delete;
|
AhciInfo(const AhciInfo&) = delete;
|
||||||
AhciInfo(AhciInfo&&) = delete;
|
AhciInfo(AhciInfo&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const z_cap_t& ahci_region() const { return ahci_region_; }
|
const z_cap_t& ahci_region() const { return ahci_region_; }
|
||||||
|
@ -104,8 +104,8 @@ class FramebufferInfo {
|
||||||
FramebufferInfo(const FramebufferInfo&) = delete;
|
FramebufferInfo(const FramebufferInfo&) = delete;
|
||||||
FramebufferInfo(FramebufferInfo&&) = delete;
|
FramebufferInfo(FramebufferInfo&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const uint64_t& address_phys() const { return address_phys_; }
|
const uint64_t& address_phys() const { return address_phys_; }
|
||||||
|
@ -157,8 +157,8 @@ class DenaliInfo {
|
||||||
DenaliInfo(const DenaliInfo&) = delete;
|
DenaliInfo(const DenaliInfo&) = delete;
|
||||||
DenaliInfo(DenaliInfo&&) = delete;
|
DenaliInfo(DenaliInfo&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) const;
|
||||||
const z_cap_t& denali_endpoint() const { return denali_endpoint_; }
|
const z_cap_t& denali_endpoint() const { return denali_endpoint_; }
|
||||||
|
|
|
@ -105,7 +105,11 @@ glcr::ErrorCode YellowstoneServerBase::HandleRequest(const glcr::ByteBuffer& req
|
||||||
|
|
||||||
|
|
||||||
RegisterEndpointRequest yunq_request;
|
RegisterEndpointRequest 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -123,7 +127,11 @@ glcr::ErrorCode YellowstoneServerBase::HandleRequest(const glcr::ByteBuffer& req
|
||||||
|
|
||||||
|
|
||||||
GetEndpointRequest yunq_request;
|
GetEndpointRequest 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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,11 @@ glcr::ErrorCode {{interface.name}}Client::{{method.name}}(const {{method.request
|
||||||
RET_ERR(buffer_.At<uint64_t>(8));
|
RET_ERR(buffer_.At<uint64_t>(8));
|
||||||
|
|
||||||
{% if method.response != None %}
|
{% 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 %}
|
{% endif %}
|
||||||
|
|
||||||
return glcr::OK;
|
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) {
|
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 %}
|
{%- for field in message.fields %}
|
||||||
// Parse {{field.name}}.
|
// Parse {{field.name}}.
|
||||||
|
|
|
@ -20,8 +20,8 @@ class {{message.name}} {
|
||||||
{{message.name}}(const {{message.name}}&) = delete;
|
{{message.name}}(const {{message.name}}&) = delete;
|
||||||
{{message.name}}({{message.name}}&&) = delete;
|
{{message.name}}({{message.name}}&&) = delete;
|
||||||
|
|
||||||
glcr::Status ParseFromBytes(const glcr::ByteBuffer&, uint64_t offset);
|
[[nodiscard]] 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, const glcr::CapBuffer&);
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset) const;
|
||||||
uint64_t SerializeToBytes(glcr::ByteBuffer&, uint64_t offset, glcr::CapBuffer&) 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 %}
|
{% if method.request != None %}
|
||||||
{{method.request}} yunq_request;
|
{{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 %}
|
{% endif %}
|
||||||
|
|
||||||
{% if method.response != None %}
|
{% if method.response != None %}
|
||||||
|
|
Loading…
Reference in New Issue