diff options
author | David Corrales | 2007-08-01 22:07:50 +0000 |
---|---|---|
committer | David Corrales | 2007-08-01 22:07:50 +0000 |
commit | 1400d28bfb37fc94f3c44dec0a4d0cef65fb8fb7 (patch) | |
tree | 57e08541d48d6a98fc7f700f75dade472a2878bb /backends/file/posix | |
parent | 9752c75f407c8bd82006222433fcc3618b9e82bb (diff) | |
download | scummvm-rg350-1400d28bfb37fc94f3c44dec0a4d0cef65fb8fb7.tar.gz scummvm-rg350-1400d28bfb37fc94f3c44dec0a4d0cef65fb8fb7.tar.bz2 scummvm-rg350-1400d28bfb37fc94f3c44dec0a4d0cef65fb8fb7.zip |
Initial commit of the new BaseFile implementation. It provides a common ground for file objects across platforms and divides responsibilities between the Common::File class and a base file implementation.
Also rearranged the factories into a new directory for clarity.
Note 1: The posix-file.h and cpp files are for testing only. Only the ds, ps2 and symbian architecture will use special BaseFile based objects.
Note 2: The current code does not yet make use of this new structure, since the Common::File remains intact.
svn-id: r28395
Diffstat (limited to 'backends/file/posix')
-rw-r--r-- | backends/file/posix/posix-file.cpp | 41 | ||||
-rw-r--r-- | backends/file/posix/posix-file.h | 50 |
2 files changed, 91 insertions, 0 deletions
diff --git a/backends/file/posix/posix-file.cpp b/backends/file/posix/posix-file.cpp new file mode 100644 index 0000000000..84c82fa5c5 --- /dev/null +++ b/backends/file/posix/posix-file.cpp @@ -0,0 +1,41 @@ +#include "backends/file/posix/posix-file.h" + +POSIXFile::POSIXFile() : BaseFile() { + // +} + +POSIXFile::~POSIXFile() { + close(); +} + +void POSIXFile::_clearerr(FILE *stream) { + clearerr(stream); +} + +int POSIXFile::_fclose(FILE *stream) { + return fclose(stream); +} + +int POSIXFile::_feof(FILE *stream) const { + return feof(stream); +} +FILE *POSIXFile::_fopen(const char * filename, const char * mode) { + printf("Opened a file!\n"); + return fopen(filename, mode); +} + +int POSIXFile::_fread(void *buffer, size_t obj_size, size_t num, FILE *stream) { + return fread(buffer, obj_size, num, stream); +} + +int POSIXFile::_fseek(FILE * stream, long int offset, int origin) const { + return fseek(stream, offset, origin); +} + +long POSIXFile::_ftell(FILE *stream) const { + return ftell(stream); +} + +int POSIXFile::_fwrite(const void * ptr, size_t obj_size, size_t count, FILE * stream) { + return fwrite(ptr, obj_size, count, stream); +} diff --git a/backends/file/posix/posix-file.h b/backends/file/posix/posix-file.h new file mode 100644 index 0000000000..00ce307df5 --- /dev/null +++ b/backends/file/posix/posix-file.h @@ -0,0 +1,50 @@ +/* ScummVM - Graphic Adventure Engine + * + * ScummVM is the legal property of its developers, whose names + * are too numerous to list here. Please refer to the COPYRIGHT + * file distributed with this source distribution. + * + * 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 2 + * 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, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * $URL: $ + * $Id: $ + */ + +#ifndef BACKENDS_POSIX_FILE_H +#define BACKENDS_POSIX_FILE_H + +#include "backends/file/base-file.cpp" + +/** + * Implements several POSIX specific file related functions used by the Common::File wrapper. + * + * Parts of this class are documented in the base file class, BaseFile. + */ +class POSIXFile : public BaseFile { +public: + POSIXFile(); + ~POSIXFile(); +protected: + void _clearerr(FILE *stream); + int _fclose(FILE *stream); + int _feof(FILE *stream) const; + FILE *_fopen(const char * filename, const char * mode); + int _fread(void *buffer, size_t obj_size, size_t num, FILE *stream); + int _fseek(FILE * stream, long int offset, int origin) const; + long _ftell(FILE *stream) const; + int _fwrite(const void * ptr, size_t obj_size, size_t count, FILE * stream); +}; + +#endif //BACKENDS_POSIX_FILE_H |