MyGUI  3.2.1
MyGUI_IResource.h
Go to the documentation of this file.
00001 /*
00002  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
00003  * Distributed under the MIT License
00004  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
00005  */
00006 
00007 #ifndef __MYGUI_I_RESOURCE_H__
00008 #define __MYGUI_I_RESOURCE_H__
00009 
00010 #include "MyGUI_Prerequest.h"
00011 #include "MyGUI_XmlDocument.h"
00012 #include "MyGUI_Version.h"
00013 #include "MyGUI_ISerializable.h"
00014 
00015 namespace MyGUI
00016 {
00017 
00018     class IResource;
00019     typedef IResource* IResourcePtr;
00020 
00021     class ResourceManager;
00022 
00023     class MYGUI_EXPORT IResource :
00024         public ISerializable
00025     {
00026         // для серелизации и удаления
00027         friend class ResourceManager;
00028 
00029         MYGUI_RTTI_DERIVED( IResource )
00030 
00031     public:
00032         const std::string& getResourceName() const
00033         {
00034             return mResourceName;
00035         }
00036 
00037         void setResourceName(const std::string& _value)
00038         {
00039             mResourceName = _value;
00040         }
00041 
00042     private:
00043         // constructors and operator =, without implementation, just for private
00044         IResource(IResource const&);
00045         IResource& operator = (IResource const&);
00046 
00047     protected:
00048         IResource() { }
00049         virtual ~IResource() { }
00050 
00051         virtual void deserialization(xml::ElementPtr _node, Version _version)
00052         {
00053             _node->findAttribute("name", mResourceName);
00054         }
00055 
00056     protected:
00057         std::string mResourceName;
00058     };
00059 
00060 } // namespace MyGUI
00061 
00062 #endif // __MYGUI_I_RESOURCE_H__