creator-level saving new files in fat
[quarnos.git] / resources / buffer.h
blobd03294c100176f6870413b7725fb24f02d8c83ec
1 #ifndef _BUFFER_H_
2 #define _BUFFER_H_
4 #include "manes/implementation.h"
6 namespace resources {
7 class buffer : public manes::implementation {
8 public:
9 virtual operator void*() = 0;
11 virtual void get_memory(int) = 0;
13 virtual void set(void*) = 0;
14 virtual void set(void*,int) = 0;
16 virtual void unsafe() = 0;
18 virtual char &operator[](int) = 0;
19 virtual void * const get_address() const = 0;
22 class buffer_impl : public buffer {
23 private:
24 char *address;
25 int size;
27 bool inited;
28 bool safe;
30 public:
31 buffer_impl();
33 operator void*();
35 virtual void get_memory(int);
37 virtual void set(void*) ;
38 virtual void set(void*,int);
40 virtual void unsafe();
42 virtual char &operator[](int);
43 virtual void * const get_address() const;
45 static void register_type();
49 #endif