aboutsummaryrefslogtreecommitdiff
path: root/backends/file/posix
diff options
context:
space:
mode:
authorDavid Corrales2007-08-01 22:07:50 +0000
committerDavid Corrales2007-08-01 22:07:50 +0000
commit1400d28bfb37fc94f3c44dec0a4d0cef65fb8fb7 (patch)
tree57e08541d48d6a98fc7f700f75dade472a2878bb /backends/file/posix
parent9752c75f407c8bd82006222433fcc3618b9e82bb (diff)
downloadscummvm-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.cpp41
-rw-r--r--backends/file/posix/posix-file.h50
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