RAMFILE.H (4205B)
1 // 2 // Copyright 2020 Electronic Arts Inc. 3 // 4 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is free 5 // software: you can redistribute it and/or modify it under the terms of 6 // the GNU General Public License as published by the Free Software Foundation, 7 // either version 3 of the License, or (at your option) any later version. 8 9 // TiberianDawn.DLL and RedAlert.dll and corresponding source code is distributed 10 // in the hope that it will be useful, but with permitted additional restrictions 11 // under Section 7 of the GPL. See the GNU General Public License in LICENSE.TXT 12 // distributed with this program. You should have received a copy of the 13 // GNU General Public License along with permitted additional restrictions 14 // with this program. If not, see https://github.com/electronicarts/CnC_Remastered_Collection 15 16 /* $Header: /CounterStrike/RAMFILE.H 1 3/03/97 10:25a Joe_bostic $ */ 17 /*********************************************************************************************** 18 *** C O N F I D E N T I A L --- W E S T W O O D S T U D I O S *** 19 *********************************************************************************************** 20 * * 21 * Project Name : Command & Conquer * 22 * * 23 * File Name : RAMFILE.H * 24 * * 25 * Programmer : Joe L. Bostic * 26 * * 27 * Start Date : 06/30/96 * 28 * * 29 * Last Update : June 30, 1996 [JLB] * 30 * * 31 *---------------------------------------------------------------------------------------------* 32 * Functions: * 33 * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ 34 35 36 #ifndef RAMFILE_H 37 #define RAMFILE_H 38 39 40 #include "wwfile.h" 41 42 43 class RAMFileClass : public FileClass 44 { 45 public: 46 RAMFileClass(void * buffer, int len); 47 virtual ~RAMFileClass(void); 48 49 virtual char const * File_Name(void) const {return("UNKNOWN");} 50 virtual char const * Set_Name(char const * ) {return(File_Name());} 51 virtual int Create(void); 52 virtual int Delete(void); 53 virtual int Is_Available(int forced=false); 54 virtual int Is_Open(void) const; 55 virtual int Open(char const * filename, int access=READ); 56 virtual int Open(int access=READ); 57 virtual long Read(void * buffer, long size); 58 virtual long Seek(long pos, int dir=SEEK_CUR); 59 virtual long Size(void); 60 virtual long Write(void const * buffer, long size); 61 virtual void Close(void); 62 virtual unsigned long Get_Date_Time(void) {return(0);} 63 virtual bool Set_Date_Time(unsigned long ) {return(true);} 64 virtual void Error(int , int = false, char const * =NULL) {} 65 66 operator char const * () {return File_Name();} 67 68 private: 69 70 /* 71 ** Pointer to the buffer that the "file" will reside in. 72 */ 73 char * Buffer; 74 75 /* 76 ** The maximum size of the buffer. The file occupying the buffer 77 ** may be smaller than this size. 78 */ 79 int MaxLength; 80 81 /* 82 ** The number of bytes in the sub-file occupying the buffer. 83 */ 84 int Length; 85 86 /* 87 ** The current file position offset within the buffer. 88 */ 89 int Offset; 90 91 /* 92 ** The file was opened with this access mode. 93 */ 94 int Access; 95 96 /* 97 ** Is the file currently open? 98 */ 99 bool IsOpen; 100 101 /* 102 ** Was the file buffer allocated during construction of this object? 103 */ 104 bool IsAllocated; 105 }; 106 107 108 109 110 #endif