• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • Examples
  • File List
  • Globals

MyGUI_IResource.h

Go to the documentation of this file.
00001 
00007 /*
00008     This file is part of MyGUI.
00009     
00010     MyGUI is free software: you can redistribute it and/or modify
00011     it under the terms of the GNU Lesser General Public License as published by
00012     the Free Software Foundation, either version 3 of the License, or
00013     (at your option) any later version.
00014     
00015     MyGUI is distributed in the hope that it will be useful,
00016     but WITHOUT ANY WARRANTY; without even the implied warranty of
00017     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018     GNU Lesser General Public License for more details.
00019     
00020     You should have received a copy of the GNU Lesser General Public License
00021     along with MyGUI.  If not, see <http://www.gnu.org/licenses/>.
00022 */
00023 #ifndef __MYGUI_I_RESOURCE_H__
00024 #define __MYGUI_I_RESOURCE_H__
00025 
00026 #include "MyGUI_Prerequest.h"
00027 #include "MyGUI_RTTI.h"
00028 #include "MyGUI_XmlDocument.h"
00029 #include "MyGUI_Guid.h"
00030 #include "MyGUI_Common.h"
00031 #include "MyGUI_Version.h"
00032 #include "MyGUI_ISerializable.h"
00033 #include "MyGUI_ResourceHolder.h"
00034 
00035 namespace MyGUI
00036 {
00037 
00038     class IResource;
00039     typedef IResource * IResourcePtr;
00040 
00041     class ResourceManager;
00042 
00043     class MYGUI_EXPORT IResource : public ISerializable
00044     {
00045         // для серелизации
00046         friend class ResourceManager;
00047         // для удаления
00048         friend class ResourceHolder<IResource>;
00049 
00050         MYGUI_RTTI_DERIVED( IResource );
00051 
00052     public:
00053         const std::string& getResourceName() { return mResourceName; }
00054         const Guid& getResourceID() { return mResourceID; }
00055 
00056     protected:
00057         IResource() { }
00058         IResource(IResource const &) { }
00059         IResource& operator = (IResource const &) { return *this; }
00060 
00061     protected:
00062         virtual void deserialization(xml::ElementPtr _node, Version _version)
00063         {
00064             mResourceID = Guid::parse(_node->findAttribute("id"));
00065             mResourceName = _node->findAttribute("name");
00066         }
00067 
00068         virtual ~IResource() { }
00069 
00070     private:
00071         std::string mResourceName;
00072         Guid mResourceID;
00073     };
00074 
00075 } // namespace MyGUI
00076 
00077 #endif // __MYGUI_I_RESOURCE_H__

Generated on Sun Jan 30 2011 for MyGUI by  doxygen 1.7.1