From cb4a46e7fbe62d788e66ed6121c717a2d22a4d7c Mon Sep 17 00:00:00 2001 From: watcherhd Date: Thu, 21 Apr 2011 14:14:52 +0000 Subject: svn.miranda.im is moving to a new home! git-svn-id: http://miranda-plugins.googlecode.com/svn/trunk@7 e753b5eb-9565-29b2-b5c5-2cc6f99dfbcb --- skinengine/src/xml_cache.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 skinengine/src/xml_cache.h (limited to 'skinengine/src/xml_cache.h') diff --git a/skinengine/src/xml_cache.h b/skinengine/src/xml_cache.h new file mode 100644 index 0000000..50e30e0 --- /dev/null +++ b/skinengine/src/xml_cache.h @@ -0,0 +1,50 @@ +#ifndef xml_cache_h__ +#define xml_cache_h__ + +class CXmlCache +{ +private: + struct CachedFile + { + TCHAR *path; + HXML hXmlRoot; + + CachedFile(const TCHAR *path, bool load=true); + ~CachedFile(); + + static int cmp(const CachedFile *p1, const CachedFile *p2) + { + return lstrcmp(p1->path, p2->path); + } + }; + + struct CachedClass + { + const TCHAR *name; + CachedFile *file; + HXML hXml; + + static int cmp(const CachedClass *p1, const CachedClass *p2) + { + return lstrcmp(p1->name, p2->name); + } + }; + + OBJLIST m_classes; + OBJLIST m_files; + + void RegisterClass(const TCHAR *name, CachedFile *file, HXML hXmlClass); + +public: + CXmlCache(); + ~CXmlCache(); + + void LoadXmlFile(const TCHAR *path); + void UnloadXmlFile(const TCHAR *path); + + ISkinElement *CreateObject(const TCHAR *name); +}; + +extern CXmlCache g_XmlCache; + +#endif // xml_cache_h__ -- cgit v1.2.3