.: 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