JFJochFrameSerializer: for the buffer return pointer + size, not vector reference (allows for more flexibility)
This commit is contained in:
@@ -52,9 +52,9 @@ void CBOR_ENC_COMPRESSED(CborEncoder &encoder,
|
||||
const void *image, size_t image_size,
|
||||
CompressionAlgorithm algorithm,
|
||||
size_t elem_size) {
|
||||
if (algorithm == CompressionAlgorithm::NO_COMPRESSION) {
|
||||
if (algorithm == CompressionAlgorithm::NO_COMPRESSION)
|
||||
cborErr(cbor_encode_byte_string(&encoder, (uint8_t *) image, image_size));
|
||||
} else {
|
||||
else {
|
||||
cbor_encode_tag(&encoder, TagDECTRISCompression);
|
||||
|
||||
CborEncoder arrayEncoder;
|
||||
@@ -288,16 +288,19 @@ inline void CBOR_ENC_USER_DATA(CborEncoder &encoder, const StartMessage& message
|
||||
}
|
||||
|
||||
JFJochFrameSerializer::JFJochFrameSerializer(size_t in_max_buffer_size) :
|
||||
max_buffer_size(in_max_buffer_size) {
|
||||
buffer.reserve(in_max_buffer_size);
|
||||
max_buffer_size(in_max_buffer_size), curr_size(0) {
|
||||
buffer.resize(max_buffer_size);
|
||||
}
|
||||
|
||||
const std::vector<uint8_t> &JFJochFrameSerializer::GetBuffer() const {
|
||||
return buffer;
|
||||
const uint8_t *JFJochFrameSerializer::GetBuffer() const {
|
||||
return buffer.data();
|
||||
}
|
||||
|
||||
size_t JFJochFrameSerializer::GetBufferSize() const {
|
||||
return curr_size;
|
||||
}
|
||||
|
||||
void JFJochFrameSerializer::SerializeSequenceStart(const StartMessage& message) {
|
||||
buffer.resize(max_buffer_size);
|
||||
CborEncoder encoder, mapEncoder;
|
||||
|
||||
cbor_encoder_init(&encoder, buffer.data(), buffer.size(), 0);
|
||||
@@ -342,13 +345,10 @@ void JFJochFrameSerializer::SerializeSequenceStart(const StartMessage& message)
|
||||
CBOR_ENC_CHANNELS(mapEncoder, "channels", message.channels);
|
||||
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
|
||||
buffer.resize(cbor_encoder_get_buffer_size(&encoder, buffer.data()));
|
||||
curr_size = cbor_encoder_get_buffer_size(&encoder, buffer.data());
|
||||
}
|
||||
|
||||
void JFJochFrameSerializer::SerializeSequenceEnd(const EndMessage& message) {
|
||||
buffer.resize(max_buffer_size);
|
||||
|
||||
CborEncoder encoder, mapEncoder;
|
||||
cbor_encoder_init(&encoder, buffer.data(), buffer.size(), 0);
|
||||
cborErr(cbor_encode_tag(&encoder,CborSignatureTag ));
|
||||
@@ -365,12 +365,10 @@ void JFJochFrameSerializer::SerializeSequenceEnd(const EndMessage& message) {
|
||||
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
|
||||
buffer.resize(cbor_encoder_get_buffer_size(&encoder, buffer.data()));
|
||||
curr_size = cbor_encoder_get_buffer_size(&encoder, buffer.data());
|
||||
}
|
||||
|
||||
void JFJochFrameSerializer::SerializeImage(const DataMessage& message) {
|
||||
buffer.resize(max_buffer_size);
|
||||
|
||||
CborEncoder encoder, mapEncoder, userDataMapEncoder;
|
||||
cbor_encoder_init(&encoder, buffer.data(), buffer.size(), 0);
|
||||
|
||||
@@ -397,5 +395,5 @@ void JFJochFrameSerializer::SerializeImage(const DataMessage& message) {
|
||||
|
||||
cborErr(cbor_encoder_close_container(&encoder, &mapEncoder));
|
||||
|
||||
buffer.resize(cbor_encoder_get_buffer_size(&encoder, buffer.data()));
|
||||
curr_size = cbor_encoder_get_buffer_size(&encoder, buffer.data());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user