1 // tinygettext - A gettext replacement that works directly on .po files 2 // Copyright (c) 2009 Ingo Ruhnke <grumbel@gmail.com> 3 // 4 // This software is provided 'as-is', without any express or implied 5 // warranty. In no event will the authors be held liable for any damages 6 // arising from the use of this software. 7 // 8 // Permission is granted to anyone to use this software for any purpose, 9 // including commercial applications, and to alter it and redistribute it 10 // freely, subject to the following restrictions: 11 // 12 // 1. The origin of this software must not be misrepresented; you must not 13 // claim that you wrote the original software. If you use this software 14 // in a product, an acknowledgement in the product documentation would be 15 // appreciated but is not required. 16 // 2. Altered source versions must be plainly marked as such, and must not be 17 // misrepresented as being the original software. 18 // 3. This notice may not be removed or altered from any source distribution. 19 20 #ifndef HEADER_TINYGETTEXT_FILE_SYSTEM_HPP 21 #define HEADER_TINYGETTEXT_FILE_SYSTEM_HPP 22 23 #include "tinygettext_Export.h" 24 25 #include <vector> 26 #include <memory> 27 #include <iosfwd> 28 #include <string> 29 30 namespace tinygettext { 31 32 class TINYGETTEXT_API FileSystem 33 { 34 public: ~FileSystem()35 virtual ~FileSystem() {} 36 37 virtual std::vector<std::string> open_directory(const std::string& pathname) =0; 38 virtual std::unique_ptr<std::istream> open_file(const std::string& filename) =0; 39 }; 40 41 } // namespace tinygettext 42 43 #endif 44 45 /* EOF */ 46 47