1#ifndef INCLUDED_COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HDL
2#define INCLUDED_COM_SUN_STAR_LANG_XMULTISERVICEFACTORY_HDL
3
4#include "sal/config.h"
5
6#include <exception>
7
8#include "com/sun/star/uno/Exception.hdl"
9#include "com/sun/star/uno/RuntimeException.hdl"
10#include "com/sun/star/uno/XInterface.hdl"
11#include "com/sun/star/uno/Any.h"
12#include "com/sun/star/uno/Reference.h"
13#include "com/sun/star/uno/Sequence.h"
14#include "cppu/macros.hxx"
15#include "rtl/ustring.hxx"
16
17namespace com { namespace sun { namespace star { namespace uno { class Type; } } } }
18
19namespace com { namespace sun { namespace star { namespace lang {
20
21class SAL_NO_VTABLE XMultiServiceFactory : public ::css::uno::XInterface
22{
23public:
24
25 // Methods
26 virtual ::css::uno::Reference< ::css::uno::XInterface > SAL_CALL createInstance( const ::rtl::OUString& aServiceSpecifier ) /* throw (::css::uno::Exception, ::css::uno::RuntimeException, ::std::exception) */ = 0;
27 virtual ::css::uno::Reference< ::css::uno::XInterface > SAL_CALL createInstanceWithArguments( const ::rtl::OUString& ServiceSpecifier, const ::css::uno::Sequence< ::css::uno::Any >& Arguments ) /* throw (::css::uno::Exception, ::css::uno::RuntimeException, ::std::exception) */ = 0;
28 virtual ::css::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames() /* throw (::css::uno::RuntimeException, ::std::exception) */ = 0;
29
30 static inline ::css::uno::Type const & SAL_CALL static_type(void * = 0);
31
32protected:
33 ~XMultiServiceFactory() throw () {} // avoid warnings about virtual members and non-virtual dtor
34};
35
36
37inline ::css::uno::Type const & cppu_detail_getUnoType(SAL_UNUSED_PARAMETER ::css::lang::XMultiServiceFactory const *);
38} } } }
39
40inline ::css::uno::Type const & SAL_CALL getCppuType(const ::css::uno::Reference< ::css::lang::XMultiServiceFactory > *) SAL_THROW(());
41
42#endif
43