Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
BACKENDS: Avoid #including .cpp files
So far, the various *-fs-factory.cpp files were #including the corresponding *-fs.cpp files. This is surprising and hence could lead to all kinds of problems). To fix this, provide proper headers for the *-fs.cpp files. This also makes code reuse via subclassing possible. Since not all ports were tested, this will likely lead to a few easy to fix compile regressions.
- Loading branch information
Showing
30 changed files
with
769 additions
and
507 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
/* 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 AMIGAOS_FILESYSTEM_H | ||
#define AMIGAOS_FILESYSTEM_H | ||
|
||
#ifdef __USE_INLINE__ | ||
#undef __USE_INLINE__ | ||
#endif | ||
|
||
#include <proto/exec.h> | ||
#include <proto/dos.h> | ||
#include <stdio.h> | ||
|
||
#ifndef USE_NEWLIB | ||
#include <strings.h> | ||
#endif | ||
|
||
#include "backends/fs/abstract-fs.h" | ||
|
||
/** | ||
* Implementation of the ScummVM file system API. | ||
* | ||
* Parts of this class are documented in the base interface class, AbstractFSNode. | ||
*/ | ||
class AmigaOSFilesystemNode : public AbstractFSNode { | ||
protected: | ||
BPTR _pFileLock; | ||
Common::String _sDisplayName; | ||
Common::String _sPath; | ||
bool _bIsDirectory; | ||
bool _bIsValid; | ||
uint32 _nProt; | ||
|
||
/** | ||
* Creates a list with all the volumes present in the root node. | ||
*/ | ||
virtual AbstractFSList listVolumes() const; | ||
|
||
public: | ||
/** | ||
* Creates an AmigaOSFilesystemNode with the root node as path. | ||
*/ | ||
AmigaOSFilesystemNode(); | ||
|
||
/** | ||
* Creates an AmigaOSFilesystemNode for a given path. | ||
* | ||
* @param path Common::String with the path the new node should point to. | ||
*/ | ||
AmigaOSFilesystemNode(const Common::String &p); | ||
|
||
/** | ||
* Creates an AmigaOSFilesystemNode given its lock and display name | ||
* | ||
* @param pLock BPTR to the lock. | ||
* @param pDisplayName name to be used for display, in case not supplied the FilePart() of the filename will be used. | ||
* | ||
* @note This shouldn't even be public as it's only internally, at best it should have been protected if not private | ||
*/ | ||
AmigaOSFilesystemNode(BPTR pLock, const char *pDisplayName = 0); | ||
|
||
/** | ||
* Copy constructor. | ||
* | ||
* @note Needed because it duplicates the file lock | ||
*/ | ||
AmigaOSFilesystemNode(const AmigaOSFilesystemNode &node); | ||
|
||
/** | ||
* Destructor. | ||
*/ | ||
virtual ~AmigaOSFilesystemNode(); | ||
|
||
virtual bool exists() const; | ||
virtual Common::String getDisplayName() const { return _sDisplayName; }; | ||
virtual Common::String getName() const { return _sDisplayName; }; | ||
virtual Common::String getPath() const { return _sPath; }; | ||
virtual bool isDirectory() const { return _bIsDirectory; }; | ||
virtual bool isReadable() const; | ||
virtual bool isWritable() const; | ||
|
||
virtual AbstractFSNode *getChild(const Common::String &n) const; | ||
virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const; | ||
virtual AbstractFSNode *getParent() const; | ||
|
||
virtual Common::SeekableReadStream *createReadStream(); | ||
virtual Common::WriteStream *createWriteStream(); | ||
}; | ||
|
||
|
||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
/* 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 N64_FILESYSTEM_H | ||
#define N64_FILESYSTEM_H | ||
|
||
#include "backends/fs/abstract-fs.h" | ||
|
||
/** | ||
* Implementation of the ScummVM file system API based on N64 Hkz romfs. | ||
* | ||
* Parts of this class are documented in the base interface class, AbstractFSNode. | ||
*/ | ||
class N64FilesystemNode : public AbstractFSNode { | ||
protected: | ||
Common::String _displayName; | ||
Common::String _path; | ||
bool _isDirectory; | ||
bool _isValid; | ||
|
||
public: | ||
/** | ||
* Creates a N64FilesystemNode with the root node as path. | ||
*/ | ||
N64FilesystemNode(); | ||
|
||
/** | ||
* Creates a N64FilesystemNode for a given path. | ||
* | ||
* @param path Common::String with the path the new node should point to. | ||
* @param verify true if the isValid and isDirectory flags should be verified during the construction. | ||
*/ | ||
N64FilesystemNode(const Common::String &p, bool verify = true); | ||
|
||
virtual bool exists() const; | ||
virtual Common::String getDisplayName() const { | ||
return _displayName; | ||
} | ||
virtual Common::String getName() const { | ||
return _displayName; | ||
} | ||
virtual Common::String getPath() const { | ||
return _path; | ||
} | ||
virtual bool isDirectory() const { | ||
return _isDirectory; | ||
} | ||
virtual bool isReadable() const; | ||
virtual bool isWritable() const; | ||
|
||
virtual AbstractFSNode *getChild(const Common::String &n) const; | ||
virtual bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const; | ||
virtual AbstractFSNode *getParent() const; | ||
|
||
virtual Common::SeekableReadStream *createReadStream(); | ||
virtual Common::WriteStream *createWriteStream(); | ||
}; | ||
|
||
#endif |
Oops, something went wrong.