Files
Jungfraujoch/frame_serialize/CBORStream2Serializer.h

30 lines
876 B
C++

// Copyright (2019-2023) Paul Scherrer Institute
#ifndef JUNGFRAUJOCH_CBORSTREAM2SERIALIZER_H
#define JUNGFRAUJOCH_CBORSTREAM2SERIALIZER_H
#include <vector>
#include <cstdint>
#include <cstddef>
#include "../common/SpotToSave.h"
#include "JFJochMessages.h"
class CBORStream2Serializer {
uint8_t *buffer = nullptr;
size_t max_buffer_size;
size_t curr_size;
public:
explicit CBORStream2Serializer(uint8_t *buffer, size_t buffer_size);
[[nodiscard]] size_t GetBufferSize() const;
void SerializeSequenceStart(const StartMessage& message);
void SerializeSequenceEnd(const EndMessage& message);
void SerializeImage(const DataMessage& message);
void SerializeCalibration(const CompressedImage& image);
[[nodiscard]] size_t GetImageAppendOffset();
void AppendImage(size_t image_size);
};
#endif //JUNGFRAUJOCH_CBORSTREAM2SERIALIZER_H