Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#pragma once
#include "TemplateParameters.h"
#include <cstdlib>
class buffer_base
{
public:
void *ptr;
size_t allocated_size;
size_t scalar_size;
bool is_free;
int id;
MemType mem;
buffer_base(); // Done
buffer_base(const size_t required_size, const MemType mem); // Done
buffer_base(const buffer_base& other); // Done
buffer_base(buffer_base&& other); // Done
~buffer_base(); // Done
bool is_available() const; // Done
void* get_ptr(); // Done
bool get_status() const; // Done
size_t get_size() const; // Done
int get_id() const; // Done
void set_allocated_size(const size_t required_size); // Done
void set_status(const bool status); // Done
void set_id(const int id); // Done
void set_null_pointer(); // Done
buffer_base& operator=(const buffer_base& other); // Done
buffer_base& operator=(buffer_base&& other); // Done
void reallocate(const size_t required_size);
void deallocate();
};
// namespace dyn_dispatch_buffer
// {
// void reallocate(buffer_base* obj, const size_t required_size);
// void deallocate(buffer_base* obj);
// };
// template< MemType mem >
// class buffer: public buffer_base
// {
// private:
// using buffer_base::ptr;
// using buffer_base::allocated_size;
// using buffer_base::scalar_size;
// using buffer_base::is_free;
// using buffer_base::id;
// public:
// buffer(const buffer<mem>& other) : buffer_base(other) {}
// buffer(buffer<mem>&& other) : buffer_base(other) {}
// buffer() : buffer_base() {}
// ~buffer(){};
// buffer(const size_t required_size) : buffer_base(required_size) {}
// void reallocate(const size_t required_size) override;
// void deallocate() override;
// };