On 14/09/12 19:32, Libreoffice Gerrit user wrote: > New commits: > commit 2171077c0c3c43a61546ab2c0ae68ba63c5112f7 > Author: Stephan Bergmann <sberg...@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 _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice