Main Page | Alphabetical List | Compound List | File List | Compound Members | File Members

vfile._h

Go to the documentation of this file.
00001 /****************************************************************************************/
00002 /*  VFILE._H                                                                             */
00003 /*                                                                                      */
00004 /*  Author: Eli Boling                                                                  */
00005 /*  Description: Systems internal interfaces for vfiles                                 */
00006 /*                                                                                      */
00007 /*  The contents of this file are subject to the Genesis3D Public License               */
00008 /*  Version 1.01 (the "License"); you may not use this file except in                   */
00009 /*  compliance with the License. You may obtain a copy of the License at                */
00010 /*  http://www.genesis3d.com                                                            */
00011 /*                                                                                      */
00012 /*  Software distributed under the License is distributed on an "AS IS"                 */
00013 /*  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.  See                */
00014 /*  the License for the specific language governing rights and limitations              */
00015 /*  under the License.                                                                  */
00016 /*                                                                                      */
00017 /*  The Original Code is Genesis3D, released March 25, 1999.                            */
00018 /*  Genesis3D Version 1.1 released November 15, 1999                                 */
00019 /*  Copyright (C) 1999 WildTangent, Inc. All Rights Reserved           */
00020 /*                                                                                      */
00021 /****************************************************************************************/
00022 #ifndef VFILE__H
00023 #define VFILE__H
00024 
00025 #include        "basetype.h"
00026 #include        "vfile.h"
00027 
00028 typedef void *          (GENESISCC *geVFile_FinderCreateFN)(geVFile *FileSystem, void *Handle, const char *FileSpec);
00029 typedef geBoolean       (GENESISCC *geVFile_FinderGetNextFileFN)(void *Handle);
00030 typedef geBoolean       (GENESISCC *geVFile_FinderGetPropertiesFN)(void *Handle, geVFile_Properties *Properties);
00031 typedef void            (GENESISCC *geVFile_FinderDestroyFN)(void *Handle);
00032 
00033 typedef void *  (GENESISCC *geVFile_OpenNewSystemFN)(geVFile *FS,
00034                                          const char *Name,
00035                                          void * Context,
00036                                          unsigned int OpenModeFlags);
00037 
00038 typedef geBoolean (GENESISCC *geVFile_UpdateContextFN)(geVFile *FS, void *Handle, void *Context, int ContextSize);
00039 
00040 typedef void *  (GENESISCC *geVFile_OpenFN)(geVFile *FS,
00041                                          void *Handle,
00042                                          const char *Name,
00043                                          void * Context,
00044                                          unsigned int OpenModeFlags);
00045 
00046 typedef geBoolean  (GENESISCC *geVFile_DeleteFileFN)(geVFile *FS, void *Handle, const char *FileName);
00047 typedef geBoolean  (GENESISCC *geVFile_RenameFileFN)(geVFile *FS, void *Handle, const char *FileName, const char *NewFileName);
00048 typedef geBoolean  (GENESISCC *geVFile_FileExistsFN)(geVFile *FS, void *Handle, const char *FileName);
00049 typedef geBoolean  (GENESISCC *geVFile_DisperseFN)(geVFile *FS, void *Handle, const char *Directory, geBoolean Recursive);
00050 typedef void      (GENESISCC *geVFile_CloseFN)(void *Handle);
00051 
00052 typedef geBoolean  (GENESISCC *geVFile_GetSFN)(void *Handle, void *Buff, int MaxSize);
00053 typedef geBoolean  (GENESISCC *geVFile_ReadFN)(void *Handle, void *Buff, int Count);
00054 typedef geBoolean  (GENESISCC *geVFile_WriteFN)(void *Handle, const void *Buff, int Count);
00055 typedef geBoolean  (GENESISCC *geVFile_SeekFN)(void *Handle, int Where, geVFile_Whence Whence);
00056 typedef geBoolean  (GENESISCC *geVFile_EOFFN)(const void *Handle);
00057 typedef geBoolean  (GENESISCC *geVFile_TellFN)(const void *Handle, long *Position);
00058 typedef geBoolean  (GENESISCC *geVFile_GetPropertiesFN)(const void *Handle, geVFile_Properties *Properties);
00059 
00060 typedef geBoolean  (GENESISCC *geVFile_SizeFN)(const void *Handle, long *Size);
00061 typedef geBoolean  (GENESISCC *geVFile_SetSizeFN)(void *Handle, long Size);
00062 typedef geBoolean  (GENESISCC *geVFile_SetAttributesFN)(void *Handle, geVFile_Attributes Attributes);
00063 typedef geBoolean  (GENESISCC *geVFile_SetTimeFN)(void *Handle, const geVFile_Time *Time);
00064 typedef geBoolean  (GENESISCC *geVFile_SetHintsFN)(void *Handle, const geVFile_Hints *Hints);
00065 
00066 typedef struct  geVFile_SystemAPIs
00067 {
00068         geVFile_FinderCreateFN          FinderCreate;
00069         geVFile_FinderGetNextFileFN     FinderGetNextFile;
00070         geVFile_FinderGetPropertiesFN FinderGetProperties;
00071         geVFile_FinderDestroyFN         FinderDestroy;
00072 
00073         geVFile_OpenNewSystemFN         OpenNewSystem;
00074         geVFile_UpdateContextFN         UpdateContext;
00075         geVFile_OpenFN                          Open;
00076         geVFile_DeleteFileFN            DeleteFile;
00077         geVFile_RenameFileFN            RenameFile;
00078         geVFile_FileExistsFN            FileExists;
00079         geVFile_DisperseFN                      Disperse;
00080         geVFile_CloseFN                         Close;
00081 
00082         geVFile_GetSFN                          GetS;
00083         geVFile_ReadFN                          Read;
00084         geVFile_WriteFN                         Write;
00085         geVFile_SeekFN                          Seek;
00086         geVFile_EOFFN                           Eof;
00087         geVFile_TellFN                          Tell;
00088         geVFile_SizeFN                          Size;
00089 
00090         geVFile_GetPropertiesFN         GetProperties;
00091 
00092         geVFile_SetSizeFN                       SetSize;
00093         geVFile_SetAttributesFN         SetAttributes;
00094         geVFile_SetTimeFN                       SetTime;
00095         geVFile_SetHintsFN                      SetHints;
00096 }       geVFile_SystemAPIs;
00097 
00098 geBoolean GENESISCC VFile_RegisterFileSystem(
00099         const geVFile_SystemAPIs *      APIs,
00100         geVFile_TypeIdentifier *        Type);
00101 
00102 #endif
00103 

Generated on Tue Sep 30 12:36:36 2003 for GTestAndEngine by doxygen 1.3.2