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