HemiStereo SDK
The C++ Software Development Kit for the HemiStereo 3D sensing device.
buffer.h
1 #ifndef OSP_TYPES_BUFFER_H
2 #define OSP_TYPES_BUFFER_H
3 
4 #include <memory>
5 
6 namespace osp {
7 
8 template<typename T>
9 class Buffer
10 {
11 public:
12  Buffer();
13  explicit Buffer(size_t size);
14  Buffer(size_t size, T *data);
15  virtual ~Buffer();
16  Buffer(const Buffer<T> & other);
17  Buffer(Buffer<T> && other);
18 
19  Buffer<T> & operator =(Buffer<T> other);
20  T & operator [](const size_t idx);
21  bool empty() const;
22  void swap(Buffer<T> & other) noexcept;
23 
24  T *data() const;
25  size_t size() const;
26 
27  void allocate(size_t size);
28  void release();
29 
30  Buffer<T> clone() const;
31 
32 private:
33  size_t m_size;
34  std::shared_ptr<T> m_data;
35  T* m_dataPtr;
36 };
37 
38 }
39 
40 #include <osp/types/details/buffer.h>
41 
42 #endif
The osp namespace.
Definition: buffer.h:6
Definition: buffer.h:9