blob: f2fcbd26e0cc29b4b5863fe9e0ab965fc5c832db [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "garnet/lib/debug_ipc/protocol_helpers.h"
namespace debug_ipc {
void Serialize(const std::string& s, MessageWriter* writer) {
writer->WriteString(s);
}
bool Deserialize(MessageReader* reader, std::string* s) {
return reader->ReadString(s);
}
void Serialize(uint64_t data, MessageWriter* writer) {
writer->WriteUint64(data);
}
bool Deserialize(MessageReader* reader, uint64_t* data) {
return reader->ReadUint64(data);
}
void Serialize(const Register& reg, MessageWriter* writer) {
writer->WriteUint32(*reinterpret_cast<const uint32_t*>(&reg.id));
writer->WriteUint32(reg.data.size());
writer->WriteBytes(&reg.data[0], reg.data.size());
}
bool Deserialize(MessageReader* reader, Register* reg) {
if (!reader->ReadUint32(reinterpret_cast<uint32_t*>(&reg->id)))
return false;
uint32_t length;
if (!reader->ReadUint32(&length))
return false;
reg->data.resize(length);
return reader->ReadBytes(length, &reg->data[0]);
}
} // namespace debug_ipc