Neo  0.5.0
Developer Documentation
File.h
Go to the documentation of this file.
1 //========================================================================
2 // Copyright (c) 2012 Philipp Geyer <http://nistur.com>
3 //
4 // This software is provided 'as-is', without any express or implied
5 // warranty. In no event will the authors be held liable for any damages
6 // arising from the use of this software.
7 //
8 // Permission is granted to anyone to use this software for any purpose,
9 // including commercial applications, and to alter it and redistribute it
10 // freely, subject to the following restrictions:
11 //
12 // 1. The origin of this software must not be misrepresented; you must not
13 // claim that you wrote the original software. If you use this software
14 // in a product, an acknowledgment in the product documentation would
15 // be appreciated but is not required.
16 //
17 // 2. Altered source versions must be plainly marked as such, and must not
18 // be misrepresented as being the original software.
19 //
20 // 3. This notice may not be removed or altered from any source
21 // distribution.
22 //
23 //========================================================================
24 
25 
26 #ifndef __FILE_H
27 #define __FILE_H
28 
29 namespace Neo
30 {
33 class NEO_CORE_EXPORT File
34 {
35 public:
36 
38  virtual ~File(void){}
39 
44  virtual void open(const char * path, const char * mode) = 0;
45 
47  virtual int close() = 0;
48 
57  virtual size_t read(void * dest, size_t size, size_t count) = 0;
58 
66  virtual size_t write(const void * str, size_t size, size_t count) = 0;
67 
73  virtual int print(const char * format, ...) = 0;
74 
81  virtual int print(const char * format, va_list args) = 0;
82 
90  virtual int seek(long offset, int whence) = 0;
91 
94  virtual long tell() = 0;
95 
97  virtual void rewind() = 0;
98 
101  virtual bool isOpen() = 0;
102 
104  virtual void destroy() = 0;
105 };
106 
107 // File Open Hook
108 class NEO_CORE_EXPORT FileOpenHook
109 {
110 public:
111  virtual ~FileOpenHook(void){}
112  virtual File * open(const char * path, const char * mode) = 0;
113 };
114 }
115 #endif
virtual ~File(void)
Destructor.
Definition: File.h:38
Definition: File.h:33
Definition: File.h:108
virtual ~FileOpenHook(void)
Definition: File.h:111
Definition: Color.h:29