libpromeki main
PROfessional MEdia toolKIt
 
Loading...
Searching...
No Matches
bufferview.h
Go to the documentation of this file.
1
8#pragma once
9
10#include <cstdint>
11#include <promeki/core/buffer.h>
12#include <promeki/core/list.h>
13
15
42 public:
45
47 BufferView() = default;
48
59 : _buffer(std::move(buf)), _offset(offset), _size(size) { }
60
62 const Buffer::Ptr &buffer() const { return _buffer; }
63
65 size_t offset() const { return _offset; }
66
68 size_t size() const { return _size; }
69
74 const uint8_t *data() const {
75 if(!_buffer) return nullptr;
76 return static_cast<const uint8_t *>(_buffer->data()) + _offset;
77 }
78
84 if(!_buffer) return nullptr;
85 return static_cast<uint8_t *>(_buffer->data()) + _offset;
86 }
87
89 bool isNull() const { return !_buffer; }
90
92 bool isValid() const { return _buffer != nullptr; }
93
94 private:
95 Buffer::Ptr _buffer;
96 size_t _offset = 0;
97 size_t _size = 0;
98};
99
Lightweight view into a region of a shared Buffer.
Definition bufferview.h:41
BufferView()=default
Default constructor. Creates an empty view with no buffer.
bool isNull() const
Returns true if no buffer is set.
Definition bufferview.h:89
const Buffer::Ptr & buffer() const
Returns the shared backing buffer.
Definition bufferview.h:62
size_t offset() const
Returns the byte offset into the buffer.
Definition bufferview.h:65
bool isValid() const
Returns true if a buffer is set.
Definition bufferview.h:92
uint8_t * data()
Returns a mutable pointer to this view's data.
Definition bufferview.h:83
size_t size() const
Returns the byte size of this view.
Definition bufferview.h:68
promeki::List< BufferView > List
List of BufferView values.
Definition bufferview.h:44
const uint8_t * data() const
Returns a const pointer to this view's data.
Definition bufferview.h:74
BufferView(Buffer::Ptr buf, size_t offset, size_t size)
Constructs a BufferView referencing a region of a shared buffer.
Definition bufferview.h:58
Dynamic array container wrapping std::vector.
Definition list.h:40
List()=default
Default constructor. Creates an empty list.
T * data() noexcept
Returns a pointer to the underlying contiguous storage.
Definition list.h:286
#define PROMEKI_NAMESPACE_BEGIN
Starts a promeki namespace block.
Definition namespace.h:14
#define PROMEKI_NAMESPACE_END
Ends a promeki namespace block.
Definition namespace.h:19