Kaydet (Commit) 52a36fb3 authored tarafından Kohei Yoshida's avatar Kohei Yoshida

pImplize XMLPropertyHandlerFactory.

Change-Id: Iff524c9065e9374b39db998e3860704555130995
üst 690f7ff8
...@@ -20,13 +20,12 @@ ...@@ -20,13 +20,12 @@
#ifndef INCLUDED_XMLOFF_PRHDLFAC_HXX #ifndef INCLUDED_XMLOFF_PRHDLFAC_HXX
#define INCLUDED_XMLOFF_PRHDLFAC_HXX #define INCLUDED_XMLOFF_PRHDLFAC_HXX
#include <sal/config.h>
#include <xmloff/dllapi.h> #include <xmloff/dllapi.h>
#include <sal/types.h> #include <sal/types.h>
#include <map>
#include <salhelper/simplereferenceobject.hxx> #include <salhelper/simplereferenceobject.hxx>
#include <xmloff/xmlprhdl.hxx>
class XMLPropertyHandler;
/** /**
This class is a base-class to create XMLPropertyHandler. This class is a base-class to create XMLPropertyHandler.
...@@ -39,7 +38,14 @@ ...@@ -39,7 +38,14 @@
*/ */
class XMLOFF_DLLPUBLIC XMLPropertyHandlerFactory : public salhelper::SimpleReferenceObject class XMLOFF_DLLPUBLIC XMLPropertyHandlerFactory : public salhelper::SimpleReferenceObject
{ {
struct Impl;
Impl* mpImpl;
XMLPropertyHandlerFactory( const XMLPropertyHandlerFactory& ); // disabled
XMLPropertyHandlerFactory& operator= ( const XMLPropertyHandlerFactory& ); // disabled
public: public:
XMLPropertyHandlerFactory();
virtual ~XMLPropertyHandlerFactory(); virtual ~XMLPropertyHandlerFactory();
/** /**
...@@ -91,11 +97,7 @@ protected: ...@@ -91,11 +97,7 @@ protected:
private: private:
/** Retrieves ( creates if necessary ) PropertyHandler for /** Retrieves ( creates if necessary ) PropertyHandler for
basic XML-types */ basic XML-types */
SAL_DLLPRIVATE const XMLPropertyHandler* GetBasicHandler( sal_Int32 nType ) SAL_DLLPRIVATE const XMLPropertyHandler* GetBasicHandler( sal_Int32 nType ) const;
const;
typedef ::std::map<sal_Int32, const XMLPropertyHandler*> CacheMap;
mutable CacheMap maHandlerCache;
}; };
#endif // INCLUDED_XMLOFF_PRHDLFAC_HXX #endif // INCLUDED_XMLOFF_PRHDLFAC_HXX
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <xmloff/styleexp.hxx> #include <xmloff/styleexp.hxx>
#include <xmloff/xmlexppr.hxx> #include <xmloff/xmlexppr.hxx>
#include <xmloff/contextid.hxx> #include <xmloff/contextid.hxx>
#include <xmloff/xmlprhdl.hxx>
extern const XMLPropertyMapEntry aXMLScCellStylesProperties[]; extern const XMLPropertyMapEntry aXMLScCellStylesProperties[];
extern const XMLPropertyMapEntry aXMLScColumnStylesProperties[]; extern const XMLPropertyMapEntry aXMLScColumnStylesProperties[];
......
...@@ -32,6 +32,7 @@ ...@@ -32,6 +32,7 @@
#include <xmloff/xmltypes.hxx> #include <xmloff/xmltypes.hxx>
#include <editeng/xmlcnitm.hxx> #include <editeng/xmlcnitm.hxx>
#include <xmloff/xmlexp.hxx> #include <xmloff/xmlexp.hxx>
#include <xmloff/xmlprhdl.hxx>
#include <editeng/memberids.hrc> #include <editeng/memberids.hrc>
#include "hintids.hxx" #include "hintids.hxx"
#include "unomid.h" #include "unomid.h"
......
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
#include "fmtlsplt.hxx" #include "fmtlsplt.hxx"
#include <xmloff/prhdlfac.hxx> #include <xmloff/prhdlfac.hxx>
#include <xmloff/xmltypes.hxx> #include <xmloff/xmltypes.hxx>
#include <xmloff/xmlprhdl.hxx>
#include "xmlithlp.hxx" #include "xmlithlp.hxx"
#include <com/sun/star/uno/Any.hxx> #include <com/sun/star/uno/Any.hxx>
......
...@@ -63,6 +63,7 @@ ...@@ -63,6 +63,7 @@
#include <xmloff/xmlement.hxx> #include <xmloff/xmlement.hxx>
#include <xmloff/nmspmap.hxx> #include <xmloff/nmspmap.hxx>
#include <xmloff/shapeexport.hxx> #include <xmloff/shapeexport.hxx>
#include <xmloff/xmlprhdl.hxx>
#include "animations.hxx" #include "animations.hxx"
#include <xmloff/animationexport.hxx> #include <xmloff/animationexport.hxx>
......
...@@ -61,6 +61,7 @@ ...@@ -61,6 +61,7 @@
#include <xmloff/xmluconv.hxx> #include <xmloff/xmluconv.hxx>
#include <osl/mutex.hxx> #include <osl/mutex.hxx>
#include <xmloff/nmspmap.hxx> #include <xmloff/nmspmap.hxx>
#include <xmloff/xmlprhdl.hxx>
#include "anim.hxx" #include "anim.hxx"
#include "facreg.hxx" #include "facreg.hxx"
......
...@@ -17,15 +17,17 @@ ...@@ -17,15 +17,17 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 . * the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/ */
#include <xmloff/prhdlfac.hxx>
#include <com/sun/star/drawing/ColorMode.hpp> #include <com/sun/star/drawing/ColorMode.hpp>
#include <com/sun/star/text/HorizontalAdjust.hpp> #include <com/sun/star/text/HorizontalAdjust.hpp>
#include <com/sun/star/text/WritingMode2.hpp> #include <com/sun/star/text/WritingMode2.hpp>
#include <tools/debug.hxx> #include <tools/debug.hxx>
#include <xmloff/prhdlfac.hxx>
#include <xmloff/xmltypes.hxx> #include <xmloff/xmltypes.hxx>
#include <xmloff/xmltoken.hxx> #include <xmloff/xmltoken.hxx>
#include <xmloff/xmlprhdl.hxx>
#include "xmlbahdl.hxx" #include "xmlbahdl.hxx"
#include <xmloff/NamedBoolPropertyHdl.hxx> #include <xmloff/NamedBoolPropertyHdl.hxx>
#include <xmloff/XMLConstantsPropertyHandler.hxx> #include <xmloff/XMLConstantsPropertyHandler.hxx>
...@@ -52,6 +54,8 @@ ...@@ -52,6 +54,8 @@
#include "XMLRectangleMembersHandler.hxx" #include "XMLRectangleMembersHandler.hxx"
#include "DrawAspectHdl.hxx" #include "DrawAspectHdl.hxx"
#include <map>
using namespace ::com::sun::star; using namespace ::com::sun::star;
using namespace ::xmloff::token; using namespace ::xmloff::token;
...@@ -94,11 +98,22 @@ static SvXMLEnumMapEntry const aXML_WritingDirection_Enum[] = ...@@ -94,11 +98,22 @@ static SvXMLEnumMapEntry const aXML_WritingDirection_Enum[] =
{ XML_TOKEN_INVALID, 0 } { XML_TOKEN_INVALID, 0 }
}; };
// Dtor typedef std::map<sal_Int32, const XMLPropertyHandler*> CacheMap;
struct XMLPropertyHandlerFactory::Impl
{
mutable CacheMap maHandlerCache;
};
XMLPropertyHandlerFactory::XMLPropertyHandlerFactory() :
mpImpl(new Impl) {}
XMLPropertyHandlerFactory::~XMLPropertyHandlerFactory() XMLPropertyHandlerFactory::~XMLPropertyHandlerFactory()
{ {
for( CacheMap::iterator pPos = maHandlerCache.begin(); pPos != maHandlerCache.end(); ++pPos ) for( CacheMap::iterator pPos = mpImpl->maHandlerCache.begin(); pPos != mpImpl->maHandlerCache.end(); ++pPos )
delete pPos->second; delete pPos->second;
delete mpImpl;
} }
// Interface // Interface
...@@ -114,15 +129,15 @@ const XMLPropertyHandler* XMLPropertyHandlerFactory::GetHdlCache( sal_Int32 nTyp ...@@ -114,15 +129,15 @@ const XMLPropertyHandler* XMLPropertyHandlerFactory::GetHdlCache( sal_Int32 nTyp
{ {
const XMLPropertyHandler* pRet = NULL; const XMLPropertyHandler* pRet = NULL;
if( maHandlerCache.find( nType ) != maHandlerCache.end() ) if( mpImpl->maHandlerCache.find( nType ) != mpImpl->maHandlerCache.end() )
pRet = maHandlerCache.find( nType )->second; pRet = mpImpl->maHandlerCache.find( nType )->second;
return pRet; return pRet;
} }
void XMLPropertyHandlerFactory::PutHdlCache( sal_Int32 nType, const XMLPropertyHandler* pHdl ) const void XMLPropertyHandlerFactory::PutHdlCache( sal_Int32 nType, const XMLPropertyHandler* pHdl ) const
{ {
maHandlerCache[nType] = pHdl; mpImpl->maHandlerCache[nType] = pHdl;
} }
const XMLPropertyHandler* XMLPropertyHandlerFactory::GetBasicHandler( sal_Int32 nType ) const const XMLPropertyHandler* XMLPropertyHandlerFactory::GetBasicHandler( sal_Int32 nType ) const
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment