From 0243f128ddc7ee44db1a8b95f76eb726122ee1d5 Mon Sep 17 00:00:00 2001 From: "Nicolas \"Pixel\" Noble" Date: Tue, 3 Jun 2014 02:14:32 -0700 Subject: Added MMap Handle object. --- includes/Buffer.h | 22 ++++++++++++---------- includes/MMap.h | 22 ++++++++++++++++++++++ 2 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 includes/MMap.h (limited to 'includes') diff --git a/includes/Buffer.h b/includes/Buffer.h index c0d269a..6b5318f 100644 --- a/includes/Buffer.h +++ b/includes/Buffer.h @@ -8,19 +8,21 @@ class Buffer : public SeekableHandle { public: Buffer(const uint8_t * buffer, size_t s) : m_buffer(const_cast(buffer)), m_bufSize(s), m_fromConst(true) { } Buffer() throw (GeneralException) { } - virtual ~Buffer(); - virtual void close() throw (GeneralException); - virtual ssize_t read(void * buf, size_t count) throw (GeneralException); - virtual ssize_t write(const void * buf, size_t count) throw (GeneralException); - virtual bool isClosed(); - virtual bool isEOF(); - virtual bool canRead(); - virtual bool canWrite(); - virtual const char * getName(); - virtual off64_t getSize(); + virtual ~Buffer() override; + virtual void close() throw (GeneralException) override; + virtual ssize_t read(void * buf, size_t count) throw (GeneralException) override; + virtual ssize_t write(const void * buf, size_t count) throw (GeneralException) override; + virtual bool isClosed() override; + virtual bool isEOF() override; + virtual bool canRead() override; + virtual bool canWrite() override; + virtual const char * getName() override; + virtual off64_t getSize() override; const uint8_t * getBuffer() { return m_buffer + rtell(); } void reset(); + void clear(); void rewind() { rseek(0); wseek(0); } + void borrow(const uint8_t * buffer, size_t s); private: uint8_t * m_buffer = NULL; bool m_fromConst = false; diff --git a/includes/MMap.h b/includes/MMap.h new file mode 100644 index 0000000..ad55e4c --- /dev/null +++ b/includes/MMap.h @@ -0,0 +1,22 @@ +#pragma once + +#include + +namespace Balau { + +class MMapPlatform; + +class MMap : public Buffer { + public: + MMap(const char * fname); + virtual ~MMap() override; + void open() throw (GeneralException); + virtual const char * getName() override { return m_name.to_charp(); } + virtual void close() override; + private: + MMapPlatform * m_platform = NULL; + String m_name; + String m_fname; +}; + +}; -- cgit v1.2.3