Date: prev next · Thread: first prev next last
2012 Archives by date, by thread · List index


On 14/09/12 19:32, Libreoffice Gerrit user wrote:
New commits:
commit 2171077c0c3c43a61546ab2c0ae68ba63c5112f7
Author: Stephan Bergmann <sbergman@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




Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.