This is the documentation for Enlighten.
module File Handling
Classes
Name | Description |
---|---|
Geo::GeoFileManager | The file manager deals with locating resources given a path and a filename. |
Enums
Name | Description |
---|---|
GeoFSeekOrigin | To avoid pulling in the entire stdio header, use our own values for GeoFSeek. |
Typedefs
Name | Description |
---|---|
void(* FileOpenCallback)(const char *path, const char *mode) | path: path to the file being opened. |
__int64 offset_t | A offset type, similar to size_t (off_t is not supported on all used platforms) |
Functions
Name | Description |
---|---|
FileExists(const char *) | Checks that testFile exists. |
FileExistsAndIsNewer(const char *, const char *) | Checks that testFile exists and is newer than exemplarFile. |
FileIsWritable(const char *) | Checks that the file named filename can be written to. |
FreeLoadedFile(void *) | Free a previously loaded file. |
GeoConstructAPIFilename(const char *, char *) | Construct a filename for use in the underlying platform filesystem API. |
GeoDeleteFile(const char *) | Delete a file. |
GeoDirectoryCreate(const char *) | Creates a directory and all the directories leading up to it. |
GeoDirectoryDelete(const char *) | Delete a directory and all its files, without user prompts. |
GeoFClose(FILE *) | A safe alternative to fclose. |
GeoFEof(FILE *) | A safe alternative to feof. |
GeoFError(FILE *) | A safe alternative to ferror. Returns a non-zero value to indicate an error. |
GeoFOpen(const char *, const char *) | GeoFOpen. |
GeoFRead(void *, size_t, size_t, FILE *) | A safe alternative to fread. |
GeoFSeek(offset_t, GeoFSeekOrigin, FILE *) | A safe alternative to fseek. |
GeoFTell(FILE *) | A safe alternative to ftell. |
GeoFWrite(const void *, size_t, size_t, FILE *) | A safe alternative to fwrite. |
GeoRenameFile(const char *, const char *) | Rename a file. |
GetFileSystemPrefix() | Get the previously set file system prefix for the current platform. |
InvokeFileOpenCallback(const char *, const char *) | Invoke the file open callback, if set. |
LoadFile(const char *, u32 &, u32, u32) | A safe alternative to ferror. |
LoadFileStr(const char *, u32 &, u32) | Load a file and append a null terminator. |
SaveFile(const char *, const void *, u32) | Save a file. |
SetFileOpenCallback(FileOpenCallback) | Set the function to be called when a file is opened, or a null pointer to disable the callback. |
SetFileSystemPrefix(const char *) | Set a file system prefix for the current platform. |
GeoFSeekOrigin
public: enum GeoFSeekOrigin
{
  GEO_SEEK_SET = 0,
  GEO_SEEK_CUR = 1,
  GEO_SEEK_END = 2
}
To avoid pulling in the entire stdio header, use our own values for GeoFSeek.
enumerators
GEO_SEEK_SET | Seek from beginning of file (SEEK_SET) |
GEO_SEEK_CUR | Seek from current position (SEEK_CUR) |
GEO_SEEK_END | Seek from end of file (SEEK_END) |
bool GEO_CALL Geo::FileExists
public: bool GEO_CALL FileExists
(
  const char * testFile
)
Checks that testFile exists.
bool GEO_CALL Geo::FileExistsAndIsNewer
public: bool GEO_CALL FileExistsAndIsNewer
(
  const char * testFile,
  const char * exemplarFile
)
Checks that testFile exists and is newer than exemplarFile.
Returns true iff both files exist and the testFile has been modified more recently than exemplarFile.
bool GEO_CALL Geo::FileIsWritable
public: bool GEO_CALL FileIsWritable
(
  const char * filename
)
Checks that the file named filename can be written to.
Returns true for a writable existing file, or if a file with that name could be created.
void GEO_CALL Geo::FreeLoadedFile
public: void GEO_CALL FreeLoadedFile
(
  void * file
)
Free a previously loaded file.
bool Geo::GeoConstructAPIFilename
public: bool GeoConstructAPIFilename
(
  const char * inFilename,
  char * outFilename
)
Construct a filename for use in the underlying platform filesystem API.
bool Geo::GeoDeleteFile
public: bool GeoDeleteFile
(
  const char * filename
)
Delete a file.
bool GEO_CALL Geo::GeoDirectoryCreate
public: bool GEO_CALL GeoDirectoryCreate
(
  const char * directory
)
Creates a directory and all the directories leading up to it.
Used often in the pipeline tools
Note
Does nothing (and returns false) on a console
bool GEO_CALL Geo::GeoDirectoryDelete
public: bool GEO_CALL GeoDirectoryDelete
(
  const char * directory
)
Delete a directory and all its files, without user prompts.
Used on occasion in the pipeline tools, though it is dangerous to act like this without user permission!
Note
Does nothing (and returns false) on a console
int GEO_CALL Geo::GeoFClose
public: int GEO_CALL GeoFClose
(
  FILE * stream
)
A safe alternative to fclose.
int GEO_CALL Geo::GeoFEof
public: int GEO_CALL GeoFEof
(
  FILE * stream
)
A safe alternative to feof.
Geo::s32 GEO_CALL Geo::GeoFError
public: Geo::s32GEO_CALL GeoFError
(
  FILE * file
)
A safe alternative to ferror. Returns a non-zero value to indicate an error.
FILE* GEO_CALL Geo::GeoFOpen
public: FILE *GEO_CALL GeoFOpen
(
  const char * filename,
  const char * mode
)
GeoFOpen.
Calls the operating system's fopen() method, and returns a FILE* in the usual fashion, however it takes account of any local system convension for file paths, and transparently manages these behind the scenes.
size_t GEO_CALL Geo::GeoFRead
public: size_t GEO_CALL GeoFRead
(
  void * input,
  size_t size,
  size_t count,
  FILE * file
)
A safe alternative to fread.
This guarantees (unless there is an error) to load the entire data. If the number returned does not match the count specified for input, there was a file IO problem.
int GEO_CALL Geo::GeoFSeek
public: int GEO_CALL GeoFSeek
(
  offset_t offset,
  GeoFSeekOrigin origin,
  FILE * file
)
A safe alternative to fseek.
offset_t GEO_CALL Geo::GeoFTell
public: offset_t GEO_CALL GeoFTell
(
  FILE * file
)
A safe alternative to ftell.
size_t GEO_CALL Geo::GeoFWrite
public: size_t GEO_CALL GeoFWrite
(
  const void * output,
  size_t size,
  size_t count,
  FILE * file
)
A safe alternative to fwrite.
bool GEO_CALL Geo::GeoRenameFile
public: bool GEO_CALL GeoRenameFile
(
  const char * oldName,
  const char * newName
)
Rename a file.
const char* GEO_CALL Geo::GetFileSystemPrefix
public: const char *GEO_CALL GetFileSystemPrefix()
Get the previously set file system prefix for the current platform.
void Geo::InvokeFileOpenCallback
public: void InvokeFileOpenCallback
(
  const char * path,
  const char * mode
)
Invoke the file open callback, if set.
void* GEO_CALL Geo::LoadFile
public: void *GEO_CALL LoadFile
(
  const char * filename,
  u32 & length,
  u32 align,
  u32 extra_alloc
)
A safe alternative to ferror.
Load a file returns 0 if this fails the loaded file must be freed using FreeLoadedFile
char* GEO_CALL Geo::LoadFileStr
public: char *GEO_CALL LoadFileStr
(
  const char * filename,
  u32 & length,
  u32 align
)
Load a file and append a null terminator.
The loaded file must be freed using FreeLoadedFile.
Returns
Null if this fails
bool GEO_CALL Geo::SaveFile
public: bool GEO_CALL SaveFile
(
  const char * filename,
  const void * data,
  u32 length
)
Save a file.
Returns
False if this fails.
void Geo::SetFileOpenCallback
public: void SetFileOpenCallback
(
  FileOpenCallback callback
)
Set the function to be called when a file is opened, or a null pointer to disable the callback.
This has no effect unless GEO_DEVEL is defined!
void GEO_CALL Geo::SetFileSystemPrefix
public: void GEO_CALL SetFileSystemPrefix
(
  const char * prefix
)
Set a file system prefix for the current platform.
For example, "/app_home" then GeoFOpen "/filename" will open e.g. "/app_home/filename"