nomlib
Loading...
Searching...
No Matches
ResourceFile.hpp
1/******************************************************************************
2
3 nomlib - C++11 cross-platform game engine
4
5Copyright (c) 2013, 2014 Jeffrey Carpenter <i8degrees@gmail.com>
6All rights reserved.
7
8Redistribution and use in source and binary forms, with or without
9modification, are permitted provided that the following conditions are met:
10
111. Redistributions of source code must retain the above copyright notice, this
12 list of conditions and the following disclaimer.
132. Redistributions in binary form must reproduce the above copyright notice,
14 this list of conditions and the following disclaimer in the documentation
15 and/or other materials provided with the distribution.
16
17THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
18ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
21ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28******************************************************************************/
29#ifndef NOMLIB_SYSTEM_RESOURCE_FILE_HPP
30#define NOMLIB_SYSTEM_RESOURCE_FILE_HPP
31
32#include <string>
33#include <vector>
34#include <memory>
35
36#include "nomlib/config.hpp"
37
38namespace nom {
39
44{
45 public:
46 typedef ResourceFile self_type;
47
48 static const ResourceFile null;
49
50 enum Type
51 {
52 Invalid = 0,
53 Graphic,
54 Movie,
55 Audio,
56 TrueTypeFont,
57 BitmapFont
58 };
59
61 ResourceFile( void );
62
64 virtual ~ResourceFile( void );
65
70 ResourceFile( const std::string& name );
71
73 ResourceFile( const std::string& name, const std::string& file_path );
74
76 ResourceFile( const std::string& name, const std::string& file_path, ResourceFile::Type type );
77
84 bool operator <( const self_type& rhs ) const;
85
90 bool operator ==( const self_type& rhs ) const;
91
93 bool exists( void ) const;
94
96 const std::string& name( void ) const;
97
99 const std::string& path( void ) const;
100
104 ResourceFile::Type type( void ) const;
105
106 bool loaded( void ) const;
107
109 void set_name( const std::string& name );
110
112 void set_path( const std::string& file_path );
113
115 void set_type( ResourceFile::Type type );
116
117 void set_loaded( bool state );
118
119 private:
121 std::string name_;
122
124 std::string path_;
125
127 ResourceFile::Type type_;
128
129 public:
135 mutable bool loaded_;
136};
137
138} // namespace nom
139
140#endif // include guard defined
ResourceFile(const std::string &name, const std::string &file_path)
Construct a minimal, but valid resource.
ResourceFile(const std::string &name)
Construct an invalid resource.
const std::string & path(void) const
Get the absolute file path to the resource.
bool loaded_
Initialized resource object state.
ResourceFile::Type type_
The description of the resource.
void set_name(const std::string &name)
Set the resource's name.
std::string name_
The resource's referenced name (think: key).
virtual ~ResourceFile(void)
Destructor.
ResourceFile(void)
Default constructor; initialize resource to an invalid state.
std::string path_
The absolute file path to the resource.
bool operator==(const self_type &rhs) const
Equality comparison method overload.
ResourceFile(const std::string &name, const std::string &file_path, ResourceFile::Type type)
Construct a complete resource.
const std::string & name(void) const
Get the name of the resource.
bool operator<(const self_type &rhs) const
Lesser-than comparison method overload.
bool exists(void) const
Get the status of resource existence at the file-system level.
void set_type(ResourceFile::Type type)
Set the resource's type.
void set_path(const std::string &file_path)
Set the resource's absolute file path.
ResourceFile::Type type(void) const
Get the resource's type.