22 #include <rtl/string.hxx>
25 #include <com/sun/star/lang/XSingleComponentFactory.hpp>
36 public cppu::WeakImplHelper<lang::XSingleComponentFactory,
41 : m_rServiceDecl(rServiceDecl) {}
51 virtual uno::Reference<uno::XInterface> SAL_CALL createInstanceWithContext(
52 uno::Reference<uno::XComponentContext>
const& xContext )
override;
53 virtual uno::Reference<uno::XInterface> SAL_CALL
54 createInstanceWithArgumentsAndContext(
55 uno::Sequence<uno::Any>
const& args,
56 uno::Reference<uno::XComponentContext>
const& xContext )
override;
64 ServiceDecl::Factory::~Factory()
69 OUString ServiceDecl::Factory::getImplementationName()
74 sal_Bool ServiceDecl::Factory::supportsService( OUString
const& name )
76 return m_rServiceDecl.supportsService(name);
79 uno::Sequence<OUString> ServiceDecl::Factory::getSupportedServiceNames()
81 return m_rServiceDecl.getSupportedServiceNames();
85 uno::Reference<uno::XInterface> ServiceDecl::Factory::createInstanceWithContext(
86 uno::Reference<uno::XComponentContext>
const& xContext )
88 return m_rServiceDecl.m_createFunc(
89 m_rServiceDecl, uno::Sequence<uno::Any>(), xContext );
92 uno::Reference<uno::XInterface>
93 ServiceDecl::Factory::createInstanceWithArgumentsAndContext(
94 uno::Sequence<uno::Any >
const& args,
95 uno::Reference<uno::XComponentContext>
const& xContext )
97 return m_rServiceDecl.m_createFunc(
98 m_rServiceDecl, args, xContext );
101 void * ServiceDecl::getFactory(
char const* pImplName )
const
103 if (rtl_str_compare(m_pImplName, pImplName) == 0) {
104 lang::XSingleComponentFactory *
const pFac(
new Factory(*
this) );
111 uno::Sequence<OUString> ServiceDecl::getSupportedServiceNames()
const
113 std::vector<OUString> vec;
115 OString
const str(m_pServiceNames);
118 OString
const token( str.getToken( 0, cDelim, nIndex ) );
119 vec.emplace_back( token.getStr(), token.getLength(),
120 RTL_TEXTENCODING_ASCII_US );
127 bool ServiceDecl::supportsService( OUString
const& name )
const
129 OString
const str(m_pServiceNames);
132 OString
const token( str.getToken( 0, cDelim, nIndex ) );
133 if (name.equalsAsciiL( token.getStr(), token.getLength() ))
140 OUString ServiceDecl::getImplementationName()
const
142 return OUString::createFromAscii(m_pImplName);
146 std::initializer_list<ServiceDecl const *> args )
148 for (
auto const i: args) {
150 void *
fac =
i->getFactory(pImplName);
151 if (fac !=
nullptr) {
css::uno::Sequence< OUString > getSupportedServiceNames()
OUString getImplementationName()
Class to declare a service implementation.
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
bool CPPUHELPER_DLLPUBLIC supportsService(css::lang::XServiceInfo *implementation, rtl::OUString const &name)
OUString getImplementationName() const
void * component_getFactoryHelper(const char *pImplName, std::initializer_list< ServiceDecl const * > args)
ServiceDecl const & m_rServiceDecl
css::uno::Sequence< DstElementType > containerToSequence(const SrcType &i_Container)
Copy from a container into a Sequence.
Factory(ServiceDecl const &rServiceDecl)