Files
Jungfraujoch/frame_serialize/JFJochFrameSerializer.h

30 lines
910 B
C++

// Copyright (2019-2022) Paul Scherrer Institute
// SPDX-License-Identifier: GPL-3.0-or-later
#ifndef JUNGFRAUJOCH_JFJOCHFRAMESERIALIZER_H
#define JUNGFRAUJOCH_JFJOCHFRAMESERIALIZER_H
#include <vector>
#include <cstdint>
#include <cstddef>
#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