diff options
author | Rüdiger Timm <rt@openoffice.org> | 2004-11-26 18:28:22 +0000 |
---|---|---|
committer | Rüdiger Timm <rt@openoffice.org> | 2004-11-26 18:28:22 +0000 |
commit | 112ae29a3d278810d906608e7e63735fc0392a3f (patch) | |
tree | 8efbacca07a91ee2ad512f15cdc001599397a83d /xmloff | |
parent | eb157612803857d872d8dc1519baa6609a96d071 (diff) |
INTEGRATION: CWS presentationengine01 (1.1.2); FILE ADDED
2004/04/16 12:24:52 cl 1.1.2.1: smil support for impress
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/inc/unointerfacetouniqueidentifiermapper.hxx | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/xmloff/inc/unointerfacetouniqueidentifiermapper.hxx b/xmloff/inc/unointerfacetouniqueidentifiermapper.hxx new file mode 100644 index 000000000000..2d21df98f941 --- /dev/null +++ b/xmloff/inc/unointerfacetouniqueidentifiermapper.hxx @@ -0,0 +1,58 @@ +#ifndef __COMPHELPER_UNOINTERFACETOUNIQUEIDENTIFIERMAPPER__ +#define __COMPHELPER_UNOINTERFACETOUNIQUEIDENTIFIERMAPPER__ + +#include <map> + +#ifndef _RTL_USTRING_HXX_ +#include <rtl/ustring.hxx> +#endif + +#ifndef _COM_SUN_STAR_UNO_XINTERFACE_HPP_ +#include <com/sun/star/uno/XInterface.hpp> +#endif + +namespace comphelper +{ + +typedef ::std::map< rtl::OUString, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > > IdMap_t; + +class UnoInterfaceToUniqueIdentifierMapper +{ +public: + UnoInterfaceToUniqueIdentifierMapper(); + + /** returns a unique identifier for the given uno object. IF a uno object is + registered more than once, the returned identifier is always the same. + */ + const rtl::OUString& registerReference( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rInterface ); + + /** registers the given uno object with the given identifier. + + @returns + false, if the given identifier already exists and is not associated with the given interface + */ + bool registerReference( const rtl::OUString& rIdentifier, const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rInterface ); + + /** @returns + the identifier for the given uno object. If this uno object is not already + registered, an empty string is returned + */ + const rtl::OUString& getIdentifier( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rInterface ) const; + + /** @returns + the uno object that is registered with the given identifier. If no uno object + is registered with the given identifier, an empty reference is returned. + */ + const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& getReference( const rtl::OUString& rIdentifier ) const; + +private: + bool findReference( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rInterface, IdMap_t::const_iterator& rIter ) const; + bool findIdentifier( const rtl::OUString& rIdentifier, IdMap_t::const_iterator& rIter ) const; + + IdMap_t maEntries; + sal_Int32 mnNextId; +}; + +}; + +#endif |