Gateware Libraries  6.3.A
Beta Build
GFile.h
1 #ifndef GFILE_H
2 #define GFILE_H
3 
15 #include "../G_Core/GMultiThreaded.h"
17 
19 namespace GW
20 {
22  namespace SYSTEM
23  {
25  static const GUUIID GFileUUIID =
26  {
27  0xc32d0aba, 0x2c60, 0x4a93,{ 0x84, 0x98, 0x2e, 0x1e, 0x7e, 0xa, 0x1a, 0xfc }
28  };
29 
31 
35  class GFile : public CORE::GMultiThreaded
36  {
37  // All Gateware API interfaces contain no variables & are pure virtual.
38  public:
39 
41 
53  virtual GReturn OpenBinaryRead(const char* const _file) = 0;
54 
56 
68  virtual GReturn OpenBinaryWrite(const char* const _file) = 0;
69 
71 
83  virtual GReturn AppendBinaryWrite(const char* const _file) = 0;
84 
86 
99  virtual GReturn OpenTextRead(const char* const _file) = 0;
100 
102 
114  virtual GReturn OpenTextWrite(const char* const _file) = 0;
115 
117 
129  virtual GReturn AppendTextWrite(const char* const _file) = 0;
130 
132 
143  virtual GReturn Write(const char* const _inData, unsigned int _numBytes) = 0;
144 
146 
157  virtual GReturn Read(char* _outData, unsigned int _numBytes) = 0;
158 
160 
170  virtual GReturn WriteLine(const char* const _inData) = 0;
171 
173 
185  virtual GReturn ReadLine(char* _outData, unsigned int _outDataSize, char _delimiter) = 0;
186 
188 
192  virtual GReturn CloseFile() = 0;
193 
195 
199  virtual GReturn FlushFile() = 0;
200 
202 
213  virtual GReturn SetCurrentWorkingDirectory(const char* const _dir) = 0;
214 
216 
227  virtual GReturn GetCurrentWorkingDirectory(char* _outDir, unsigned int _dirSize) = 0;
228 
230 
236  virtual GReturn GetDirectorySize(unsigned int& _outSize) = 0;
237 
239 
252  virtual GReturn GetFilesFromDirectory(char* _outFiles[], unsigned int _numFiles, unsigned int _fileNameSize) = 0;
253 
255 
266  virtual GReturn GetFileSize(const char* const _file, unsigned int& _outSize) = 0;
267  }; // end GFile class
268 
270 
282  GATEWARE_EXPORT_IMPLICIT GReturn CreateGFile(GFile** _outFile);
283  } // end SYSTEM namespace
284 } // end GW namespace
285 
286 #endif
This interface is only used to label and query interfaces which promise to 100% internally support th...
Definition: GMultiThreaded.h:31
virtual GReturn GetFileSize(const char *const _file, unsigned int &_outSize)=0
Gets the size of the specified file in bytes.
virtual GReturn GetFilesFromDirectory(char *_outFiles[], unsigned int _numFiles, unsigned int _fileNameSize)=0
Gets the names of all files in the current working directory.
Cross platform FileIO/Directory handling.
Definition: GFile.h:35
virtual GReturn SetCurrentWorkingDirectory(const char *const _dir)=0
Changes the current working directory.
virtual GReturn OpenBinaryWrite(const char *const _file)=0
Opens a file for binary write with truncation.
virtual GReturn AppendBinaryWrite(const char *const _file)=0
Opens a file for binary write with append.
virtual GReturn GetDirectorySize(unsigned int &_outSize)=0
Gets the number of files in the current working directory.
virtual GReturn Read(char *_outData, unsigned int _numBytes)=0
Reads binary from the currently opened file.
virtual GReturn FlushFile()=0
Flushes the current file.
GReturn
Listing of common error codes returned by Gateware functions.
Definition: GDefines.h:53
virtual GReturn CloseFile()=0
Flushes and closes the current file.
virtual GReturn WriteLine(const char *const _inData)=0
Writes text to the currently opened file.
virtual GReturn GetCurrentWorkingDirectory(char *_outDir, unsigned int _dirSize)=0
Retrieves the absolute path of the current working directory.
virtual GReturn ReadLine(char *_outData, unsigned int _outDataSize, char _delimiter)=0
Reads text to the currently opened file.
virtual GReturn OpenBinaryRead(const char *const _file)=0
Opens a file for binary read.
virtual GReturn OpenTextRead(const char *const _file)=0
Opens a file for text read.
The core namespace to which all Gateware interfaces/structures/defines must belong.
Definition: GAudio.h:20
virtual GReturn OpenTextWrite(const char *const _file)=0
Opens a file for text write with truncation.
virtual GReturn AppendTextWrite(const char *const _file)=0
Opens a file for text write with append.
GATEWARE_EXPORT_IMPLICIT GReturn CreateGFile(GFile **_outFile)
Creates a GFile Object.
virtual GReturn Write(const char *const _inData, unsigned int _numBytes)=0
Writes binary data to the currently opened file.