diff options
author | Eugene Sandulenko | 2010-07-29 19:53:02 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2010-10-12 21:38:20 +0000 |
commit | a683a420a9e43705c972b5e74d55e319729e1a81 (patch) | |
tree | bde6e4abd417bdfaec120aa951da9a19be36b654 /engines/sword25/kernel/filesystemutil.h | |
parent | 7723d91c957d07205c51be32498d45cd0a78568f (diff) | |
download | scummvm-rg350-a683a420a9e43705c972b5e74d55e319729e1a81.tar.gz scummvm-rg350-a683a420a9e43705c972b5e74d55e319729e1a81.tar.bz2 scummvm-rg350-a683a420a9e43705c972b5e74d55e319729e1a81.zip |
SWORD25: Importing original sources
svn-id: r53171
Diffstat (limited to 'engines/sword25/kernel/filesystemutil.h')
-rwxr-xr-x | engines/sword25/kernel/filesystemutil.h | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/engines/sword25/kernel/filesystemutil.h b/engines/sword25/kernel/filesystemutil.h new file mode 100755 index 0000000000..63f76617c0 --- /dev/null +++ b/engines/sword25/kernel/filesystemutil.h @@ -0,0 +1,102 @@ +// ----------------------------------------------------------------------------- +// This file is part of Broken Sword 2.5 +// Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdörfer +// +// Broken Sword 2.5 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. +// +// Broken Sword 2.5 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 Broken Sword 2.5; if not, write to the Free Software +// Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +// ----------------------------------------------------------------------------- + +/* + Die Klasse BS_FileSystemUtil stellt einen Wrapper für dateisystemspezifische Operationen dar, die nicht über die C/C++ Bibliotheken + abgedeckt werden. + + Jede unterstützte Plattform muss dieses Interface implementieren und die Singleton-Methode BS_FileSystemUtil::GetInstance() + implementieren. +*/ + +#ifndef BS_FILESYSTEMUTIL_H +#define BS_FILESYSTEMUTIL_H + +// ----------------------------------------------------------------------------- +// Includes +// ----------------------------------------------------------------------------- + +#include "kernel/common.h" +#include "kernel/bs_stdint.h" + +#include "kernel/memlog_off.h" +#include <string> +#include <vector> +#include <ctime> +#include "kernel/memlog_on.h" + +// ----------------------------------------------------------------------------- +// Klassendefinition +// ----------------------------------------------------------------------------- + +class BS_FileSystemUtil +{ +public: + static BS_FileSystemUtil & GetInstance(); + virtual ~BS_FileSystemUtil() {}; + + /* + Diese Funktion gibt den Namen des Verzeichnisses zurück, in dem sämtliche Benutzerdaten gespeichert werden sollen. + + Dieses sind z.B. Screenshots, Spielstände, Konfigurationsdateien, Logdateien, ... + Unter Windows Vista ist dieses beispielsweise: C:\Users\Malte\Documents\Broken Sword 2.5 + Falls dieses Verzeichnis noch nicht existiert, wird es automatisch erstellt. + + @return Gibt den Namen des Verzeichnisses für Benutzerdaten zurück. + */ + virtual std::string GetUserdataDirectory() = 0; + /* + @return Gibt den Pfadtrenner zurück (z.B. \ unter Windows und / unter Linux). + */ + virtual std::string GetPathSeparator() = 0; + /* + @param Filename der Pfad zu einer Datei. + @return Gibt die Größe der angegebenen Datei zurück. Falls die Größe nicht bestimmt werden konnte, oder die Datei nicht existiert wird -1 zurückgegeben. + */ + virtual uint64_t GetFileSize(const std::string & Filename) = 0; + /* + @param Filename der Pfad zu einer Datei. + @return Gibt den Zeitstempel des Zeitpunktes zurück an dem die Datei zuletzt verändert wurde. Bei einem Fehler wird 0 zurückgegeben. + */ + virtual time_t GetFileTime(const std::string & Filename) = 0; + /* + @param Filename der Pfad zu einer Datei. + @return Gibt true zurück, wenn die Datei existiert. + */ + virtual bool FileExists(const std::string & Filename) = 0; + /* + Diese Funktion erstellt einen Verzeichnis mit sämtlichen Unterverzeichnissen. + + Wenn des Parameter "\b\c\d\e" ist und der Pfad "\b\c" bereits existiert, werden die Verzeichnisse + "d" und "e" erstellt. + + @param DirectoryName der Name des zu erstellenden Verzeichnisses. + @return Gibt true zurück, wenn die Verzeichnisse erstellt werden konnten, ansonsten false. + */ + virtual bool CreateDirectory(const std::string & DirectoryName) = 0; + /* + Erstellt eine Liste aller Dateinamen in einem Verzeichnis. + + @param Directory das zu durchsuchende Verzeichnis. + @return Gibt einen vector mit allen gefundenen Dateinamen zurück. + */ + virtual std::vector<std::string> GetFilesInDirectory(const std::string & Path) = 0; +}; + +#endif |