aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/Filesystem/Buffer.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/Filesystem/Buffer.h')
-rw-r--r--src/libjin/Filesystem/Buffer.h26
1 files changed, 21 insertions, 5 deletions
diff --git a/src/libjin/Filesystem/Buffer.h b/src/libjin/Filesystem/Buffer.h
index 3cd92cd..5cb6468 100644
--- a/src/libjin/Filesystem/Buffer.h
+++ b/src/libjin/Filesystem/Buffer.h
@@ -8,27 +8,43 @@ namespace jin
namespace filesystem
{
+ /**
+ * ڶϷָռbuffer
+ */
class Buffer
{
public:
Buffer() : data(0), size(0) {}
Buffer(const Buffer& src)
{
- delete data;
+ delete[] data;
size = src.size;
data = new char[size];
memcpy(data, src.data, size);
}
- inline Buffer(void* d, int s)
+ Buffer(void* d, int s)
{
- data = new char(size);
+ data = new char[size];
memcpy(data, d, size);
size = s;
}
- inline ~Buffer()
+ Buffer(size_t s)
+ {
+ data = new char[s];
+ memset(data, 0, s);
+ size = s;
+ }
+ ~Buffer()
{
+ delete[] data;
size = 0;
- delete[] data;
+ }
+ void operator = (const Buffer& buffer)
+ {
+ delete[] data;
+ size = buffer.size;
+ data = new char[size];
+ memcpy(data, buffer.data, size);
}
public: