Visualization Library 2.0.0

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
FileSystem.hpp
Go to the documentation of this file.
1 /**************************************************************************************/
2 /* */
3 /* Visualization Library */
4 /* http://visualizationlibrary.org */
5 /* */
6 /* Copyright (c) 2005-2020, Michele Bosi */
7 /* All rights reserved. */
8 /* */
9 /* Redistribution and use in source and binary forms, with or without modification, */
10 /* are permitted provided that the following conditions are met: */
11 /* */
12 /* - Redistributions of source code must retain the above copyright notice, this */
13 /* list of conditions and the following disclaimer. */
14 /* */
15 /* - Redistributions in binary form must reproduce the above copyright notice, this */
16 /* list of conditions and the following disclaimer in the documentation and/or */
17 /* other materials provided with the distribution. */
18 /* */
19 /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND */
20 /* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED */
21 /* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
22 /* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR */
23 /* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
24 /* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */
25 /* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON */
26 /* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
27 /* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS */
28 /* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
29 /* */
30 /**************************************************************************************/
31 
32 #ifndef FileSystem_INCLUDE_ONCE
33 #define FileSystem_INCLUDE_ONCE
34 
36 #include <vlCore/DiskFile.hpp>
37 #include <vector>
38 
39 namespace vl
40 {
41 //-----------------------------------------------------------------------------
42 // FileSystem
43 //-----------------------------------------------------------------------------
59  {
61 
62  public:
64  {
65  VL_DEBUG_SET_OBJECT_NAME()
66  }
67 
69  virtual ref<VirtualFile> locateFile(const String& full_path, const String& alternate_path=String()) const;
70 
71  virtual ref<VirtualDirectory> locateDirectory(const String& name) const;
72 
76  virtual void listFilesRecursive(std::vector<String>& file_list ) const;
77 
81  virtual void listFilesRecursive(std::vector<String>& file_list, const String& match) const;
82 
84  std::vector< ref<VirtualDirectory> >& directories() { return mDirectories; }
85 
87  const std::vector< ref<VirtualDirectory> >& directories() const { return mDirectories; }
88 
89  protected:
90  std::vector< ref<VirtualDirectory> > mDirectories;
91  };
92 
95 
98 }
99 
100 #endif
std::vector< ref< VirtualDirectory > > & directories()
Returns the list of VirtualDirectory objects added to a FileSystem.
Definition: FileSystem.hpp:84
VLCORE_EXPORT FileSystem * defFileSystem()
Returns the default FileSystem used by VisualizationLibrary.
Definition: pimpl.cpp:97
The String class implements an advanced UTF16 (Unicode BMP) string manipulation engine.
Definition: String.hpp:62
std::vector< ref< VirtualDirectory > > mDirectories
Definition: FileSystem.hpp:90
#define VL_INSTRUMENT_CLASS(ClassName, BaseClass)
Definition: TypeInfo.hpp:122
Visualization Library main namespace.
The base class for all the reference counted objects.
Definition: Object.hpp:158
Manages multiple VirtualDirectory objects.
Definition: FileSystem.hpp:58
VLCORE_EXPORT void setDefFileSystem(FileSystem *fs)
Sets the default FileSystem used by VisualizationLibrary.
Definition: pimpl.cpp:101
VLCORE_EXPORT ref< VirtualFile > locateFile(const String &path)
Utility function, equivalent to vl::defFileSystem()->locateFile(path)
Definition: VirtualFile.cpp:41
The ref<> class is used to reference-count an Object.
Definition: Object.hpp:55
const std::vector< ref< VirtualDirectory > > & directories() const
Returns the list of VirtualDirectory objects added to a FileSystem.
Definition: FileSystem.hpp:87