diff options
Diffstat (limited to 'comphelper/inc')
-rw-r--r-- | comphelper/inc/comphelper/storagehelper.hxx | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/comphelper/inc/comphelper/storagehelper.hxx b/comphelper/inc/comphelper/storagehelper.hxx index c0aa735c8390..36ff7957f4bc 100644 --- a/comphelper/inc/comphelper/storagehelper.hxx +++ b/comphelper/inc/comphelper/storagehelper.hxx @@ -25,8 +25,10 @@ * for a copy of the LGPLv3 License. * ************************************************************************/ -#ifndef _COMPHELPER_STORAGEHELPER_HXX -#define _COMPHELPER_STORAGEHELPER_HXX +#ifndef COMPHELPER_STORAGEHELPER_HXX +#define COMPHELPER_STORAGEHELPER_HXX + +#include <boost/scoped_ptr.hpp> #include <com/sun/star/uno/Sequence.hxx> #include <com/sun/star/uno/Reference.hxx> @@ -51,6 +53,20 @@ namespace comphelper { +// Unfortunately - the impl.s of XStorage like to invalidate all +// their sub streams and storages when you release references, so +// it is necessary to keep references to all storages down the +// path - this is 'beautiful' (TM). So we need this ugly hack: +class COMPHELPER_DLLPUBLIC LifecycleProxy +{ +private: + class Impl; +public: + ::boost::scoped_ptr<Impl> m_pBadness; + LifecycleProxy(); + ~LifecycleProxy(); +}; + class COMPHELPER_DLLPUBLIC OStorageHelper { public: @@ -170,17 +186,6 @@ public: // Methods to allow easy use of hierachical names inside storages - // Unfortunately - the impl.s of XStorage like to invalidate all - // their sub streams and storages when you release references, so - // it is necessary to keep references to all storages down the - // path - this is 'beautiful' (TM). So we need this ugly hack: - class LifecycleProxyImpl; - class COMPHELPER_DLLPUBLIC LifecycleProxy { - public: - LifecycleProxyImpl *pBadness; - LifecycleProxy(); - ~LifecycleProxy(); - }; static ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > GetStorageAtPath( const ::com::sun::star::uno::Reference< ::com::sun::star::embed::XStorage > &xStorage, const ::rtl::OUString& aPath, sal_uInt32 nOpenMode, LifecycleProxy &rNastiness ); |