/* ** Command & Conquer Generals Zero Hour(tm) ** Copyright 2025 Electronic Arts Inc. ** ** This program is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** This program is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with this program. If not, see . */ //----------------------------------------------------------------------------= // // Westwood Studios Pacific. // // Confidential Information // Copyright(C) 2001 - All Rights Reserved // //---------------------------------------------------------------------------- // // Project: WSYS Library // // Module: IO // // File name: wsys/RAMFile.h // // Created: 11/08/01 // //---------------------------------------------------------------------------- #pragma once #ifndef __WSYS_RAMFILE_H #define __WSYS_RAMFILE_H //---------------------------------------------------------------------------- // Includes //---------------------------------------------------------------------------- #include "wsys_File.h" //---------------------------------------------------------------------------- // Forward References //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // Type Defines //---------------------------------------------------------------------------- //=============================== // RAMFile //=============================== /** * File abstraction for standard C file operators: open, close, lseek, read, write */ //=============================== class RAMFile : public File { protected: Char *m_data; ///< File data in memory Int m_pos; ///< current read position Int m_size; ///< size of file in memory public: RAMFile(); virtual ~RAMFile(); virtual Bool open( const Char *filename, Int access = 0 ); ///< Open a file for access virtual void close( void ); ///< Close the file virtual Int read( void *buffer, Int bytes ); ///< Read the specified number of bytes in to buffer: See File::read virtual Int write( void *buffer, Int bytes ); ///< Write the specified number of bytes from the buffer: See File::write virtual Int seek( Int new_pos, seekMode mode = CURRENT ); ///< Set file position: See File::seek Bool open( File *file ); ///< Open file for fast RAM access }; //---------------------------------------------------------------------------- // Inlining //---------------------------------------------------------------------------- #endif // __WSYS_RAMFILE_H