ADTF
Loading...
Searching...
No Matches
memorybuffer.h
Go to the documentation of this file.
1
14
15#ifndef _A_UTILS_UTIL_MEMORY_MEMORYBUFFER_INCLUDED_
16#define _A_UTILS_UTIL_MEMORY_MEMORYBUFFER_INCLUDED_
17
18#include <memory>
19
20namespace a_util {
21namespace memory {
24public:
27
32 MemoryBuffer(std::size_t initial_size);
33
39 MemoryBuffer(void* buffer, std::size_t size);
40
43
49
56
62 bool allocate(std::size_t new_size);
63
67 void reset();
68
73 std::size_t getSize() const;
74
79 void* getPtr() const;
80
86 void attach(void* buffer, std::size_t size);
87
92 void swap(MemoryBuffer& other);
93
94private:
95 struct Implementation;
96 std::unique_ptr<Implementation> _impl;
97};
98
105bool operator==(const MemoryBuffer& lhs, const MemoryBuffer& rhs);
106
113bool operator!=(const MemoryBuffer& lhs, const MemoryBuffer& rhs);
114
115} // namespace memory
116} // namespace a_util
117
118#endif // _A_UTILS_UTIL_MEMORY_MEMORYBUFFER_INCLUDED_
Memory buffer class to encapsulate and manage raw contiguously memory.
Definition memorybuffer.h:23
MemoryBuffer(const MemoryBuffer &other)
MemoryBuffer & operator=(const MemoryBuffer &other)
MemoryBuffer()
Default CTOR, not allocating any memory.
~MemoryBuffer()
DTOR, either detaching any referenced buffer or deleting allocated memory.
MemoryBuffer(std::size_t initial_size)
void attach(void *buffer, std::size_t size)
std::size_t getSize() const
bool allocate(std::size_t new_size)
MemoryBuffer(void *buffer, std::size_t size)
void swap(MemoryBuffer &other)
Serves as component for memory access and management.
Definition memory.h:20
bool operator!=(const StackPtr< T, StackSize, Alignment > &lhs, const StackPtr< T, StackSize, Alignment > &rhs)
Definition stack_ptr_impl.h:223
Serves as the root component, with common functionality documented in core functionality.
Definition base.h:24