diff options
author | chai <chaifix@163.com> | 2018-10-19 08:36:44 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2018-10-19 08:36:44 +0800 |
commit | 7d5f055547e70fa93ee9ac944e62f8d657b9dc55 (patch) | |
tree | 081782a1541854db4b8eb69c4b43081f52711286 /src/libjin/Filesystem/je_buffer.h | |
parent | 02dd1f38008594048f0e28bad01e7c6d18844198 (diff) |
*修改文件名
Diffstat (limited to 'src/libjin/Filesystem/je_buffer.h')
-rw-r--r-- | src/libjin/Filesystem/je_buffer.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/libjin/Filesystem/je_buffer.h b/src/libjin/Filesystem/je_buffer.h new file mode 100644 index 0000000..f0d987a --- /dev/null +++ b/src/libjin/Filesystem/je_buffer.h @@ -0,0 +1,67 @@ +#ifndef __LIBJIN_BUFFER_H +#define __LIBJIN_BUFFER_H + +#include <string.h> +#include <stdlib.h> + +namespace jin +{ + namespace filesystem + { + + /** + * ڶϷָռbuffer + */ + class Buffer + { + public: + Buffer() : data(0), size(0) {} + Buffer(const Buffer& src) + { + delete[] data; + size = src.size; + data = new char[size]; + memcpy(data, src.data, size); + } + Buffer(void* d, int s) + { + data = new char[size]; + memcpy(data, d, size); + size = s; + } + Buffer(size_t s) + { + data = new char[s]; + memset(data, 0, s); + size = s; + } + ~Buffer() + { + delete[] data; + size = 0; + } + void operator = (const Buffer& buffer) + { + delete[] data; + size = buffer.size; + data = new char[size]; + memcpy(data, buffer.data, size); + } + + void clear() + { + if (data == nullptr) + return; + free(data); + data = nullptr; + } + + void* data; + unsigned int size; + + }; + + } // namespace filesystem +} // namespace jin + +#endif
\ No newline at end of file |