Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00031
00032 #pragma once
00033
00034 #include "../api_core.h"
00035 #include "../Resources/resource_manager.h"
00036 #include "../System/sharedptr.h"
00037 #include "../Text/string_types.h"
00038
00039 class CL_DomElement;
00040 class CL_ResourceManager;
00041 class CL_Resource_Impl;
00042
00043 class CL_ResourceData
00044 {
00045 public:
00046 virtual ~CL_ResourceData() { }
00047 };
00048
00052 class CL_API_CORE CL_Resource
00053 {
00056
00057 public:
00058 CL_Resource();
00059
00060 ~CL_Resource();
00061
00065
00066 public:
00068 CL_String get_type() const;
00069
00071 CL_String get_name() const;
00072
00074 CL_DomElement &get_element();
00075
00077 CL_ResourceManager get_manager();
00078
00080 CL_SharedPtr<CL_ResourceData> get_data(const CL_String &data_name);
00081
00083 int get_data_session_count(const CL_String &data_name);
00084
00088
00089 public:
00091 bool operator ==(const CL_Resource &other) const;
00092
00094 void set_data(const CL_String &data_name, const CL_SharedPtr<CL_ResourceData> &ptr);
00095
00097 void clear_data(const CL_String &data_name);
00098
00100 int add_data_session(const CL_String &data_name);
00101
00103 int remove_data_session(const CL_String &data_name);
00104
00108
00109 private:
00110
00115 CL_Resource(CL_DomElement element, CL_ResourceManager &resource_manager);
00116
00117 CL_SharedPtr<CL_Resource_Impl> impl;
00118
00119 friend class CL_ResourceManager;
00121 };
00122