Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
OutputStreamMemory.hpp
Go to the documentation of this file.
1#ifndef IV_SRC_STREAMS_OUTPUTSTREAMMEMORY_HPP_
2#define IV_SRC_STREAMS_OUTPUTSTREAMMEMORY_HPP_
3
5
6#include <memory>
7#include <string_view>
8
9namespace iv::streams
10{
11
13{
14public:
15 static std::shared_ptr<OutputStreamMemory> createOutputMemory();
16 static std::shared_ptr<OutputStreamMemory> createOutputMemory(uint64_t size);
17
18 OutputStreamMemory() = default;
19 OutputStreamMemory(const OutputStreamMemory &other) = default;
21 ~OutputStreamMemory() override;
22
25
26 [[nodiscard]] void *getBuffer() const;
27 [[nodiscard]] uint64_t getLength() const;
28 [[nodiscard]] uint64_t getLenghtLeft() const;
29 [[nodiscard]] uint64_t getOffset() const;
30 void writeBuffer(const void *buffer, uint64_t sizeBuffer) override;
31
32 void *getMemory(uint32_t *sizeMemory);
33
34 void setOffset(uint64_t offset);
35 void setReversed(bool isReversed);
36
37private:
38 OutputStreamMemory(bool isReversed, std::byte *buffer, uint64_t currentBufferSize, uint64_t offset);
39
40 void writeImpl(bool value) override;
41
42 void writeImpl(std::byte value) override;
43
44 void writeImpl(uint8_t value) override;
45 void writeImpl(int8_t value) override;
46
47 void writeImpl(uint16_t value) override;
48 void writeImpl(int16_t value) override;
49
50 void writeImpl(uint32_t value) override;
51 void writeImpl(int32_t value) override;
52
53 void writeImpl(uint64_t value) override;
54 void writeImpl(int64_t value) override;
55
56 void writeImpl(double value) override;
57 void writeImpl(float value) override;
58
59 void writeImpl(std::string_view value) override;
60
61 void prvWriteBytes(const void *data, uint64_t sizeData, bool isReserved);
62
63 std::byte *m_buffer {nullptr};
64 uint64_t m_lengthBuffer {0};
65 uint64_t m_offset {0};
66 bool m_reversedBytes {false};
67};
68
69}// namespace iv::streams
70
71#endif//IV_SRC_STREAMS_OUTPUTSTREAMMEMORY_HPP_
Definition IOutputStream.hpp:10
Definition OutputStreamMemory.hpp:13
uint64_t getLength() const
Definition OutputStreamMemory.cpp:122
OutputStreamMemory(const OutputStreamMemory &other)=default
uint64_t getOffset() const
Definition OutputStreamMemory.cpp:180
void writeBuffer(const void *buffer, uint64_t sizeBuffer) override
Definition OutputStreamMemory.cpp:107
static std::shared_ptr< OutputStreamMemory > createOutputMemory()
Definition OutputStreamMemory.cpp:155
void writeImpl(bool value) override
Definition OutputStreamMemory.cpp:112
~OutputStreamMemory() override
Definition OutputStreamMemory.cpp:11
uint64_t m_offset
Definition OutputStreamMemory.hpp:65
std::byte * m_buffer
Definition OutputStreamMemory.hpp:63
OutputStreamMemory(OutputStreamMemory &&other)=default
uint64_t m_lengthBuffer
Definition OutputStreamMemory.hpp:64
OutputStreamMemory & operator=(const OutputStreamMemory &other)=default
void setOffset(uint64_t offset)
Definition OutputStreamMemory.cpp:168
uint64_t getLenghtLeft() const
Definition OutputStreamMemory.cpp:176
void * getBuffer() const
Definition OutputStreamMemory.cpp:117
void * getMemory(uint32_t *sizeMemory)
Definition OutputStreamMemory.cpp:130
bool m_reversedBytes
Definition OutputStreamMemory.hpp:66
void prvWriteBytes(const void *data, uint64_t sizeData, bool isReserved)
Definition OutputStreamMemory.cpp:17
OutputStreamMemory & operator=(OutputStreamMemory &&other)=default
void setReversed(bool isReversed)
Definition OutputStreamMemory.cpp:172
Definition IInputStream.hpp:7