clanCore Resources

Classes

class  clan::FileResourceDocument
 File Resource Document. More...
 
class  clan::FileResourceManager
 Resource manager loading from FileResourceDocument. More...
 
class  clan::Resource< Type >
 Resource proxy of a specific type. More...
 
class  clan::Resource_BaseImpl
 
class  clan::Resource_Impl< Type >
 
class  clan::ResourceContainer
 
class  clan::ResourceContainer_Impl
 
class  clan::ResourceManager
 Resource manager. More...
 
class  clan::ResourceObject
 Resource proxy of any type. More...
 
class  clan::XMLResourceDocument
 XML Resource Document. More...
 
class  clan::XMLResourceManager
 Resource manager loading from XMLResourceDocument. More...
 
class  clan::XMLResourceNode
 Resource node for a XMLResourceDocument. More...
 

Functions

 clan::Resource< Type >::Resource ()
 
 clan::Resource< Type >::Resource (const Type &initial_value)
 
 clan::Resource< Type >::Resource (std::shared_ptr< Resource_Impl< Type > > object)
 
 clan::Resource_Impl< Type >::Resource_Impl ()
 
 clan::Resource_Impl< Type >::Resource_Impl (const Type &initial_value)
 
 clan::ResourceContainer::ResourceContainer ()
 
 clan::ResourceObject::ResourceObject ()
 
template<typename Type >
 clan::ResourceObject::ResourceObject (const Resource< Type > &resource)
 
virtual clan::Resource_BaseImpl::~Resource_BaseImpl ()
 
static void clan::FileResourceManager::add_cache_factory (std::function< void(ResourceManager &, const FileResourceDocument &)> factory_callback)
 Adds a cache factory callback. More...
 
static void clan::XMLResourceManager::add_cache_factory (std::function< void(ResourceManager &, const XMLResourceDocument &)> factory_callback)
 Adds a cache factory callback. More...
 
template<typename Type >
Resource< Type > clan::ResourceObject::cast ()
 
static ResourceManager clan::FileResourceManager::create (const FileResourceDocument &doc=FileResourceDocument())
 Creates a resource manager. More...
 
static ResourceManager clan::XMLResourceManager::create (const XMLResourceDocument &doc)
 Creates a resource manager. More...
 
Type & clan::Resource< Type >::get ()
 
const Type & clan::Resource< Type >::get () const
 
template<typename Type >
Resource< Type > clan::ResourceContainer::get (const std::string &name)
 
static XMLResourceDocumentclan::XMLResourceManager::get_doc (const ResourceManager &manager)
 Gets the XML resource document used by a resource manager. More...
 
static FileResourceDocumentclan::FileResourceManager::get_doc (const ResourceManager &manager)
 Gets the XML resource document used by a resource manager. More...
 
const std::shared_ptr< Resource_Impl< Type > > & clan::Resource< Type >::handle () const
 
bool clan::ResourceObject::is_null () const
 
 clan::Resource< Type >::operator const Type & () const
 
 clan::Resource< Type >::operator Type & ()
 
bool clan::Resource< Type >::operator!= (const Resource &other) const
 
bool clan::ResourceObject::operator!= (const ResourceObject &other) const
 
Type * clan::Resource< Type >::operator-> ()
 
const Type * clan::Resource< Type >::operator-> () const
 
bool clan::Resource< Type >::operator< (const Resource &other) const
 
bool clan::ResourceObject::operator< (const ResourceObject &other) const
 
bool clan::Resource< Type >::operator<= (const Resource &other) const
 
bool clan::ResourceObject::operator<= (const ResourceObject &other) const
 
bool clan::Resource< Type >::operator== (const Resource &other) const
 
bool clan::ResourceObject::operator== (const ResourceObject &other) const
 
bool clan::Resource< Type >::operator> (const Resource &other) const
 
bool clan::ResourceObject::operator> (const ResourceObject &other) const
 
bool clan::Resource< Type >::operator>= (const Resource &other) const
 
bool clan::ResourceObject::operator>= (const ResourceObject &other) const
 
void clan::Resource< Type >::set (const Type &value)
 
bool clan::Resource< Type >::updated ()
 

Variables

int clan::Resource_Impl< Type >::generation
 
std::map< std::string, ResourceObjectclan::ResourceContainer_Impl::resources
 
Type clan::Resource_Impl< Type >::value
 

Construction

 clan::FileResourceDocument::FileResourceDocument ()
 Construct a FileResourceDocument. More...
 
 clan::FileResourceDocument::FileResourceDocument (const FileSystem &fs)
 Constructs a FileResourceDocument. More...
 
 clan::FileResourceDocument::~FileResourceDocument ()
 

Attributes

FileSystem clan::FileResourceDocument::get_file_system () const
 

Construction

 clan::ResourceManager::ResourceManager ()
 Construct a ResourceManager. More...
 
 clan::ResourceManager::~ResourceManager ()
 

Attributes

template<typename Type >
std::shared_ptr< Type > clan::ResourceManager::get_cache (const std::string &name) const
 

Operations

template<typename Type >
void clan::ResourceManager::set_cache (const std::string &name, const std::shared_ptr< Type > &cache)
 

Construction

 clan::XMLResourceDocument::XMLResourceDocument ()
 Construct a XMLResourceDocument. More...
 
 clan::XMLResourceDocument::XMLResourceDocument (const std::string &filename)
 Constructs a XMLResourceDocument. More...
 
 clan::XMLResourceDocument::XMLResourceDocument (const std::string &filename, FileSystem fs)
 Constructs a XMLResourceDocument. More...
 
 clan::XMLResourceDocument::XMLResourceDocument (IODevice file, const std::string &base_path, FileSystem fs)
 Constructs a XMLResourceDocument. More...
 
 clan::XMLResourceDocument::XMLResourceDocument (const XMLResourceDocument &other)
 Constructs a XMLResourceDocument. More...
 
 clan::XMLResourceDocument::~XMLResourceDocument ()
 

Attributes

bool clan::XMLResourceDocument::resource_exists (const std::string &resource_id) const
 Returns true if a resource exists. More...
 
std::vector< std::string > clan::XMLResourceDocument::get_section_names () const
 Returns all the resource sections available. More...
 
std::vector< std::string > clan::XMLResourceDocument::get_resource_names () const
 Returns a list of all resources available. More...
 
std::vector< std::string > clan::XMLResourceDocument::get_resource_names (const std::string &section) const
 
std::vector< std::string > clan::XMLResourceDocument::get_resource_names_of_type (const std::string &type) const
 Returns a list of all resources available matching a given type. More...
 
std::vector< std::string > clan::XMLResourceDocument::get_resource_names_of_type (const std::string &type, const std::string &section) const
 
XMLResourceNode clan::XMLResourceDocument::get_resource (const std::string &resource_id) const
 Returns Resource representing the given resource. More...
 
bool clan::XMLResourceDocument::get_boolean_resource (const std::string &resource_id, bool default_value) const
 Returns the value of a boolean resource. (using the value attribute) More...
 
int clan::XMLResourceDocument::get_integer_resource (const std::string &resource_id, int default_value) const
 Returns the value of an integer resource. (using the value attribute) More...
 
std::string clan::XMLResourceDocument::get_string_resource (const std::string &resource_id, const std::string &default_value) const
 Returns the value of an string resource. (using the value attribute) More...
 

Operations

XMLResourceDocumentclan::XMLResourceDocument::operator= (const XMLResourceDocument &copy)
 
bool clan::XMLResourceDocument::operator== (const XMLResourceDocument &that) const
 
void clan::XMLResourceDocument::add_resources (const XMLResourceDocument &additional_resources)
 Add resources from an other resource document. More...
 
void clan::XMLResourceDocument::remove_resources (const XMLResourceDocument &additional_resources)
 Remove resources from an other resource document. More...
 
XMLResourceNode clan::XMLResourceDocument::create_resource (const std::string &resource_id, const std::string &type)
 Construct a new resource object. More...
 
void clan::XMLResourceDocument::destroy_resource (const std::string &resource_id)
 Destroy resource object. More...
 
void clan::XMLResourceDocument::save (const std::string &filename)
 Save resource XML tree to file. More...
 
void clan::XMLResourceDocument::save (const std::string &filename, const FileSystem &file_system)
 Save. More...
 
void clan::XMLResourceDocument::save (IODevice file)
 Save. More...
 
void clan::XMLResourceDocument::load (const std::string &filename)
 Load resource XML tree from file. More...
 
void clan::XMLResourceDocument::load (const std::string &filename, const FileSystem &file_system)
 Load. More...
 
void clan::XMLResourceDocument::load (IODevice file, const std::string &base_path=std::string(), const FileSystem &file_system=FileSystem())
 Load. More...
 

Implementation

class clan::XMLResourceDocument::XMLResourceNode
 
class clan::XMLResourceDocument::XMLResourceDocument_Impl
 

Construction

 clan::XMLResourceNode::XMLResourceNode ()
 
 clan::XMLResourceNode::~XMLResourceNode ()
 

Attributes

bool clan::XMLResourceNode::is_null () const
 
std::string clan::XMLResourceNode::get_type () const
 Returns the resource type. More...
 
std::string clan::XMLResourceNode::get_name () const
 Returns the name of the resource. More...
 
DomElementclan::XMLResourceNode::get_element ()
 Returns the DOM element describing the resource. More...
 
XMLResourceDocument clan::XMLResourceNode::get_document ()
 Returns the resource document owning the resource. More...
 
FileSystem clan::XMLResourceNode::get_file_system () const
 Returns the file system to load resource from. More...
 
std::string clan::XMLResourceNode::get_base_path () const
 Returns the base path of the resource. More...
 

Operations

IODevice clan::XMLResourceNode::open_file (const std::string &filename, File::OpenMode mode=File::open_existing, unsigned int access=File::access_read, unsigned int share=File::share_all, unsigned int flags=0) const
 Opens a file relative to the resource base path. More...
 
bool clan::XMLResourceNode::operator== (const XMLResourceNode &other) const
 Compares this resource to another resource. More...
 

Implementation

class clan::XMLResourceNode::XMLResourceDocument
 

Detailed Description

Function Documentation

◆ FileResourceDocument() [1/2]

clan::FileResourceDocument::FileResourceDocument ( )

Construct a FileResourceDocument.

◆ FileResourceDocument() [2/2]

clan::FileResourceDocument::FileResourceDocument ( const FileSystem fs)

Constructs a FileResourceDocument.

Parameters
fs= File system

◆ Resource() [1/3]

template<typename Type >
clan::Resource< Type >::Resource ( )
inline

◆ Resource() [2/3]

template<typename Type >
clan::Resource< Type >::Resource ( const Type &  initial_value)
inline

◆ Resource() [3/3]

template<typename Type >
clan::Resource< Type >::Resource ( std::shared_ptr< Resource_Impl< Type > >  object)
inline

◆ Resource_Impl() [1/2]

template<typename Type >
clan::Resource_Impl< Type >::Resource_Impl ( )
inline

◆ Resource_Impl() [2/2]

template<typename Type >
clan::Resource_Impl< Type >::Resource_Impl ( const Type &  initial_value)
inline

◆ ResourceContainer()

clan::ResourceContainer::ResourceContainer ( )
inline

◆ ResourceManager()

clan::ResourceManager::ResourceManager ( )

Construct a ResourceManager.

◆ ResourceObject() [1/2]

clan::ResourceObject::ResourceObject ( )
inline

◆ ResourceObject() [2/2]

template<typename Type >
clan::ResourceObject::ResourceObject ( const Resource< Type > &  resource)
inline

◆ XMLResourceDocument() [1/5]

clan::XMLResourceDocument::XMLResourceDocument ( )

Construct a XMLResourceDocument.

◆ XMLResourceDocument() [2/5]

clan::XMLResourceDocument::XMLResourceDocument ( const std::string &  filename)

Constructs a XMLResourceDocument.

Parameters
filename= String

◆ XMLResourceDocument() [3/5]

clan::XMLResourceDocument::XMLResourceDocument ( const std::string &  filename,
FileSystem  fs 
)

Constructs a XMLResourceDocument.

Parameters
filename= String
directory= Virtual Directory

◆ XMLResourceDocument() [4/5]

clan::XMLResourceDocument::XMLResourceDocument ( const XMLResourceDocument other)

Constructs a XMLResourceDocument.

Parameters
other= XMLResourceDocument

◆ XMLResourceDocument() [5/5]

clan::XMLResourceDocument::XMLResourceDocument ( IODevice  file,
const std::string &  base_path,
FileSystem  fs 
)

Constructs a XMLResourceDocument.

Parameters
file= IODevice
directory= Virtual Directory

◆ XMLResourceNode()

clan::XMLResourceNode::XMLResourceNode ( )

◆ ~FileResourceDocument()

clan::FileResourceDocument::~FileResourceDocument ( )

◆ ~Resource_BaseImpl()

virtual clan::Resource_BaseImpl::~Resource_BaseImpl ( )
inlinevirtual

◆ ~ResourceManager()

clan::ResourceManager::~ResourceManager ( )

◆ ~XMLResourceDocument()

clan::XMLResourceDocument::~XMLResourceDocument ( )

◆ ~XMLResourceNode()

clan::XMLResourceNode::~XMLResourceNode ( )

◆ add_cache_factory() [1/2]

static void clan::FileResourceManager::add_cache_factory ( std::function< void(ResourceManager &, const FileResourceDocument &)>  factory_callback)
static

Adds a cache factory callback.

Each factory callback is invoked every time a resource manager is created.

◆ add_cache_factory() [2/2]

static void clan::XMLResourceManager::add_cache_factory ( std::function< void(ResourceManager &, const XMLResourceDocument &)>  factory_callback)
static

Adds a cache factory callback.

Each factory callback is invoked every time a resource manager is created.

◆ add_resources()

void clan::XMLResourceDocument::add_resources ( const XMLResourceDocument additional_resources)

Add resources from an other resource document.

This function only makes the resource document search other documents, it does not copy the resources into this document.

◆ cast()

template<typename Type >
Resource<Type> clan::ResourceObject::cast ( )
inline

◆ create() [1/2]

static ResourceManager clan::FileResourceManager::create ( const FileResourceDocument doc = FileResourceDocument())
static

Creates a resource manager.

◆ create() [2/2]

static ResourceManager clan::XMLResourceManager::create ( const XMLResourceDocument doc)
static

Creates a resource manager.

◆ create_resource()

XMLResourceNode clan::XMLResourceDocument::create_resource ( const std::string &  resource_id,
const std::string &  type 
)

Construct a new resource object.

◆ destroy_resource()

void clan::XMLResourceDocument::destroy_resource ( const std::string &  resource_id)

Destroy resource object.

◆ get() [1/3]

template<typename Type >
Type& clan::Resource< Type >::get ( )
inline

◆ get() [2/3]

template<typename Type >
const Type& clan::Resource< Type >::get ( ) const
inline

◆ get() [3/3]

template<typename Type >
Resource<Type> clan::ResourceContainer::get ( const std::string &  name)
inline

◆ get_base_path()

std::string clan::XMLResourceNode::get_base_path ( ) const

Returns the base path of the resource.

◆ get_boolean_resource()

bool clan::XMLResourceDocument::get_boolean_resource ( const std::string &  resource_id,
bool  default_value 
) const

Returns the value of a boolean resource. (using the value attribute)

◆ get_cache()

template<typename Type >
std::shared_ptr<Type> clan::ResourceManager::get_cache ( const std::string &  name) const
inline

◆ get_doc() [1/2]

static XMLResourceDocument& clan::XMLResourceManager::get_doc ( const ResourceManager manager)
static

Gets the XML resource document used by a resource manager.

◆ get_doc() [2/2]

static FileResourceDocument& clan::FileResourceManager::get_doc ( const ResourceManager manager)
static

Gets the XML resource document used by a resource manager.

◆ get_document()

XMLResourceDocument clan::XMLResourceNode::get_document ( )

Returns the resource document owning the resource.

◆ get_element()

DomElement& clan::XMLResourceNode::get_element ( )

Returns the DOM element describing the resource.

◆ get_file_system() [1/2]

FileSystem clan::FileResourceDocument::get_file_system ( ) const

◆ get_file_system() [2/2]

FileSystem clan::XMLResourceNode::get_file_system ( ) const

Returns the file system to load resource from.

◆ get_integer_resource()

int clan::XMLResourceDocument::get_integer_resource ( const std::string &  resource_id,
int  default_value 
) const

Returns the value of an integer resource. (using the value attribute)

◆ get_name()

std::string clan::XMLResourceNode::get_name ( ) const

Returns the name of the resource.

◆ get_resource()

XMLResourceNode clan::XMLResourceDocument::get_resource ( const std::string &  resource_id) const

Returns Resource representing the given resource.

◆ get_resource_names() [1/2]

std::vector<std::string> clan::XMLResourceDocument::get_resource_names ( ) const

Returns a list of all resources available.

The returned resources are in the form "section/subsection/.../resourcename".

◆ get_resource_names() [2/2]

std::vector<std::string> clan::XMLResourceDocument::get_resource_names ( const std::string &  section) const

◆ get_resource_names_of_type() [1/2]

std::vector<std::string> clan::XMLResourceDocument::get_resource_names_of_type ( const std::string &  type) const

Returns a list of all resources available matching a given type.

The returned resources are in the form "section/subsection/.../resourcename".

◆ get_resource_names_of_type() [2/2]

std::vector<std::string> clan::XMLResourceDocument::get_resource_names_of_type ( const std::string &  type,
const std::string &  section 
) const

◆ get_section_names()

std::vector<std::string> clan::XMLResourceDocument::get_section_names ( ) const

Returns all the resource sections available.

◆ get_string_resource()

std::string clan::XMLResourceDocument::get_string_resource ( const std::string &  resource_id,
const std::string &  default_value 
) const

Returns the value of an string resource. (using the value attribute)

◆ get_type()

std::string clan::XMLResourceNode::get_type ( ) const

Returns the resource type.

◆ handle()

template<typename Type >
const std::shared_ptr<Resource_Impl<Type> >& clan::Resource< Type >::handle ( ) const
inline

◆ is_null() [1/2]

bool clan::ResourceObject::is_null ( ) const
inline

◆ is_null() [2/2]

bool clan::XMLResourceNode::is_null ( ) const

◆ load() [1/3]

void clan::XMLResourceDocument::load ( const std::string &  filename)

Load resource XML tree from file.

◆ load() [2/3]

void clan::XMLResourceDocument::load ( const std::string &  filename,
const FileSystem file_system 
)

Load.

Parameters
filename= the filename to save
directory= Virtual Directory

◆ load() [3/3]

void clan::XMLResourceDocument::load ( IODevice  file,
const std::string &  base_path = std::string(),
const FileSystem file_system = FileSystem() 
)

Load.

Parameters
file= the file to load
directory= Virtual Directory

◆ open_file()

IODevice clan::XMLResourceNode::open_file ( const std::string &  filename,
File::OpenMode  mode = File::open_existing,
unsigned int  access = File::access_read,
unsigned int  share = File::share_all,
unsigned int  flags = 0 
) const

Opens a file relative to the resource base path.

param: mode = File::OpenMode modes param: access = File::AccessFlags flags param: share = File::ShareFlags flags param: flags = File::Flags flags

Returns
The IODevice

◆ operator const Type &()

template<typename Type >
clan::Resource< Type >::operator const Type & ( ) const
inline

◆ operator Type &()

template<typename Type >
clan::Resource< Type >::operator Type & ( )
inline

◆ operator!=() [1/2]

template<typename Type >
bool clan::Resource< Type >::operator!= ( const Resource< Type > &  other) const
inline

◆ operator!=() [2/2]

bool clan::ResourceObject::operator!= ( const ResourceObject other) const
inline

◆ operator->() [1/2]

template<typename Type >
Type* clan::Resource< Type >::operator-> ( )
inline

◆ operator->() [2/2]

template<typename Type >
const Type* clan::Resource< Type >::operator-> ( ) const
inline

◆ operator<() [1/2]

template<typename Type >
bool clan::Resource< Type >::operator< ( const Resource< Type > &  other) const
inline

◆ operator<() [2/2]

bool clan::ResourceObject::operator< ( const ResourceObject other) const
inline

◆ operator<=() [1/2]

template<typename Type >
bool clan::Resource< Type >::operator<= ( const Resource< Type > &  other) const
inline

◆ operator<=() [2/2]

bool clan::ResourceObject::operator<= ( const ResourceObject other) const
inline

◆ operator=()

XMLResourceDocument& clan::XMLResourceDocument::operator= ( const XMLResourceDocument copy)

◆ operator==() [1/4]

template<typename Type >
bool clan::Resource< Type >::operator== ( const Resource< Type > &  other) const
inline

◆ operator==() [2/4]

bool clan::ResourceObject::operator== ( const ResourceObject other) const
inline

◆ operator==() [3/4]

bool clan::XMLResourceDocument::operator== ( const XMLResourceDocument that) const

◆ operator==() [4/4]

bool clan::XMLResourceNode::operator== ( const XMLResourceNode other) const

Compares this resource to another resource.

◆ operator>() [1/2]

template<typename Type >
bool clan::Resource< Type >::operator> ( const Resource< Type > &  other) const
inline

◆ operator>() [2/2]

bool clan::ResourceObject::operator> ( const ResourceObject other) const
inline

◆ operator>=() [1/2]

template<typename Type >
bool clan::Resource< Type >::operator>= ( const Resource< Type > &  other) const
inline

◆ operator>=() [2/2]

bool clan::ResourceObject::operator>= ( const ResourceObject other) const
inline

◆ remove_resources()

void clan::XMLResourceDocument::remove_resources ( const XMLResourceDocument additional_resources)

Remove resources from an other resource document.

◆ resource_exists()

bool clan::XMLResourceDocument::resource_exists ( const std::string &  resource_id) const

Returns true if a resource exists.

◆ save() [1/3]

void clan::XMLResourceDocument::save ( const std::string &  filename)

Save resource XML tree to file.

◆ save() [2/3]

void clan::XMLResourceDocument::save ( const std::string &  filename,
const FileSystem file_system 
)

Save.

Parameters
filename= the filename to save
directory= Virtual Directory

◆ save() [3/3]

void clan::XMLResourceDocument::save ( IODevice  file)

Save.

Parameters
file= IODevice

◆ set()

template<typename Type >
void clan::Resource< Type >::set ( const Type &  value)
inline

◆ set_cache()

template<typename Type >
void clan::ResourceManager::set_cache ( const std::string &  name,
const std::shared_ptr< Type > &  cache 
)
inline

◆ updated()

template<typename Type >
bool clan::Resource< Type >::updated ( )
inline

Variable Documentation

◆ generation

template<typename Type >
int clan::Resource_Impl< Type >::generation

◆ resources

std::map<std::string, ResourceObject> clan::ResourceContainer_Impl::resources

◆ value

template<typename Type >
Type clan::Resource_Impl< Type >::value

Friends

◆ XMLResourceDocument

friend class XMLResourceDocument
friend

◆ XMLResourceDocument_Impl

friend class XMLResourceDocument_Impl
friend

◆ XMLResourceNode

friend class XMLResourceNode
friend