// Copyright (2019-2023) Paul Scherrer Institute #ifndef JUNGFRAUJOCH_JFJOCHFRAMESERIALIZER_H #define JUNGFRAUJOCH_JFJOCHFRAMESERIALIZER_H #include #include #include #include "../common/SpotToSave.h" #include "CBORMessages.h" class JFJochFrameSerializer { uint8_t *buffer = nullptr; size_t max_buffer_size; size_t curr_size; public: explicit JFJochFrameSerializer(uint8_t *buffer, size_t buffer_size); [[nodiscard]] size_t GetImageAppendOffset(); [[nodiscard]] size_t GetBufferSize() const; [[nodiscard]] size_t GetRemainingBuffer() const; void SerializeSequenceStart(const StartMessage& message); void SerializeSequenceEnd(const EndMessage& message); void SerializeImage(const DataMessage& message); void AppendImage(size_t image_size); }; #endif //JUNGFRAUJOCH_JFJOCHFRAMESERIALIZER_H