| // Copyright 2023 The ChromiumOS Authors | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef LIBIPP_BUILDER_H_ | |
| #define LIBIPP_BUILDER_H_ | |
| #include <cstdint> | |
| #include <vector> | |
| #include "frame.h" | |
| namespace ipp { | |
| // Return the size of the binary representation of the frame in bytes. | |
| size_t LIBIPP_EXPORT CalculateLengthOfBinaryFrame(const Frame& frame); | |
| // Save the binary representation of the frame to the given buffer. Use | |
| // CalculateLengthOfBinaryFrame() function before calling this method to make | |
| // sure that the given buffer is large enough. The method returns the number of | |
| // bytes written to `buffer` or 0 when `buffer_length` is smaller than binary | |
| // representation of the frame. | |
| size_t LIBIPP_EXPORT BuildBinaryFrame(const Frame& frame, | |
| uint8_t* buffer, | |
| size_t buffer_length); | |
| // Return the binary representation of the frame as a vector. | |
| std::vector<uint8_t> LIBIPP_EXPORT BuildBinaryFrame(const Frame& frame); | |
| } // namespace ipp | |
| #endif // LIBIPP_BUILDER_H_ |