.: accessibility/source cppuhelper/inc cppuhelper/Library_cppuhelper.mk cppuhelper/Package_inc.mk cppuhelper/source cppuhelper/test UnoControls/source

Michael Stahl mstahl at redhat.com
Fri Sep 14 12:14:22 PDT 2012


On 14/09/12 19:32, Libreoffice Gerrit user wrote:
> New commits:
> commit 2171077c0c3c43a61546ab2c0ae68ba63c5112f7
> Author: Stephan Bergmann <sbergman at redhat.com>
> Date:   Fri Sep 14 19:27:00 2012 +0200
> 
>     Introduce cppu::supportsService helper, adapt some call-sites
>     
>     ...more to follow (easy hack?)

> +namespace cppu {
> +
> +/** A helper for implementations of com.sun.star.lang.XServiceInfo.
> +
> +    This function is supposed to be called from implementations of
> +    com::sun::star::lang::XServiceInfo::supportsService (and therefore, for
> +    easier coding takes the caller's this pointer by pointer rather than by
> +    com::sun::star::uno::Reference).
> +
> +    @param implementation points to the service implementation whose
> +    getSupportedServices method is consulted; must be non-null
> +
> +    @param name the service name to test
> +
> +    @return true iff the sequence returned by the given implementation's
> +    getSupportedServices method contains the given name
> +
> +    @since LibreOffice 3.7
> +*/
> +bool CPPUHELPER_DLLPUBLIC supportsService(
> +    com::sun::star::lang::XServiceInfo * implementation,
> +    rtl::OUString const & name);
> +
> +}

that is nice, but it solves only half of the XServiceInfo boilerplate
problem...

a couple years ago i've added this in sw/inc/unobaseclass.cxx:

>>     ::com::sun::star::uno::Sequence< ::rtl::OUString >
>>     GetSupportedServiceNamesImpl(
>>             size_t const nServices, char const*const pServices[]);
>>     sal_Bool SupportsServiceImpl(
>>             size_t const nServices, char const*const pServices[],
>>             ::rtl::OUString const & rServiceName);

can be used with a single global array.

hmm... if the pServices were required to be sorted then supportsService
could even use binary search





More information about the LibreOffice mailing list