/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef INCLUDED_CONFIGMGR_SOURCE_BROADCASTER_HXX #define INCLUDED_CONFIGMGR_SOURCE_BROADCASTER_HXX #include "sal/config.h" #include #include "boost/noncopyable.hpp" #include "com/sun/star/beans/PropertyChangeEvent.hpp" #include "com/sun/star/container/ContainerEvent.hpp" #include "com/sun/star/lang/EventObject.hpp" #include "com/sun/star/uno/Reference.hxx" #include "com/sun/star/uno/Sequence.hxx" #include "com/sun/star/util/ChangesEvent.hpp" namespace com { namespace sun { namespace star { namespace beans { class XPropertiesChangeListener; class XPropertyChangeListener; } namespace container { class XContainerListener; } namespace lang { class XEventListener; } namespace util { class XChangesListener; } } } } namespace configmgr { class Broadcaster: private boost::noncopyable { public: void addDisposeNotification( com::sun::star::uno::Reference< com::sun::star::lang::XEventListener > const & listener, com::sun::star::lang::EventObject const & event); void addContainerElementInsertedNotification( com::sun::star::uno::Reference< com::sun::star::container::XContainerListener > const & listener, com::sun::star::container::ContainerEvent const & event); void addContainerElementRemovedNotification( com::sun::star::uno::Reference< com::sun::star::container::XContainerListener > const & listener, com::sun::star::container::ContainerEvent const & event); void addContainerElementReplacedNotification( com::sun::star::uno::Reference< com::sun::star::container::XContainerListener > const & listener, com::sun::star::container::ContainerEvent const & event); void addPropertyChangeNotification( com::sun::star::uno::Reference< com::sun::star::beans::XPropertyChangeListener > const & listener, com::sun::star::beans::PropertyChangeEvent const & event); void addPropertiesChangeNotification( com::sun::star::uno::Reference< com::sun::star::beans::XPropertiesChangeListener > const & listener, com::sun::star::uno::Sequence< com::sun::star::beans::PropertyChangeEvent > const & event); void addChangesNotification( com::sun::star::uno::Reference< com::sun::star::util::XChangesListener > const & listener, com::sun::star::util::ChangesEvent const & event); void send(); private: struct DisposeNotification { com::sun::star::uno::Reference< com::sun::star::lang::XEventListener > listener; com::sun::star::lang::EventObject event; DisposeNotification( com::sun::star::uno::Reference< com::sun::star::lang::XEventListener > const & theListener, com::sun::star::lang::EventObject const & theEvent); }; struct ContainerNotification { com::sun::star::uno::Reference< com::sun::star::container::XContainerListener > listener; com::sun::star::container::ContainerEvent event; ContainerNotification( com::sun::star::uno::Reference< com::sun::star::container::XContainerListener > const & theListener, com::sun::star::container::ContainerEvent const & theEvent); }; struct PropertyChangeNotification { com::sun::star::uno::Reference< com::sun::star::beans::XPropertyChangeListener > listener; com::sun::star::beans::PropertyChangeEvent event; PropertyChangeNotification( com::sun::star::uno::Reference< com::sun::star::beans::XPropertyChangeListener > const & theListener, com::sun::star::beans::PropertyChangeEvent const & theEvent); }; struct PropertiesChangeNotification { com::sun::star::uno::Reference< com::sun::star::beans::XPropertiesChangeListener > listener; com::sun::star::uno::Sequence< com::sun::star::beans::PropertyChangeEvent > event; PropertiesChangeNotification( com::sun::star::uno::Reference< com::sun::star::beans::XPropertiesChangeListener > const & theListener, com::sun::star::uno::Sequence< com::sun::star::beans::PropertyChangeEvent > const & theEvent); }; struct ChangesNotification { com::sun::star::uno::Reference< com::sun::star::util::XChangesListener > listener; com::sun::star::util::ChangesEvent event; ChangesNotification( com::sun::star::uno::Reference< com::sun::star::util::XChangesListener > const & theListener, com::sun::star::util::ChangesEvent const & theEvent); }; typedef std::vector< DisposeNotification > DisposeNotifications; typedef std::vector< ContainerNotification > ContainerNotifications; typedef std::vector< PropertyChangeNotification > PropertyChangeNotifications; typedef std::vector< PropertiesChangeNotification > PropertiesChangeNotifications; typedef std::vector< ChangesNotification > ChangesNotifications; DisposeNotifications disposeNotifications_; ContainerNotifications containerElementInsertedNotifications_; ContainerNotifications containerElementRemovedNotifications_; ContainerNotifications containerElementReplacedNotifications_; PropertyChangeNotifications propertyChangeNotifications_; PropertiesChangeNotifications propertiesChangeNotifications_; ChangesNotifications changesNotifications_; }; } #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ kports LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
path: root/embedserv
AgeCommit message (Collapse)Author
2020-11-13tdf#123936 Formatting files in module embedserv with clang-formatPhilipp Hofer
Change-Id: I475628cbec4c22a4b5ec535991d4f68154e3919e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/105665 Tested-by: Jenkins Reviewed-by: Christian Lohmaier <lohmaier+LibreOffice@googlemail.com>
2020-10-19clang-cl: Adapt Windows-specific code to extended loplugin:cstylecastStephan Bergmann
...after 1ebeacb20ad0165e399629fcfd7795ad0da3edf8 "Extend loplugin:cstylecast to certain function-style casts" Change-Id: I99bd383f5b3bee861d442d2e1be6ecd356b78315 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104523 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-09-07Make the OUString ctors taking raw sal_Unicode pointer/non-const array explicitStephan Bergmann
...and in turn add OUString::operator = and OUString::operator += overloads that take a std::u16string_view. Without making the ctors explicit, the operator overloads would have caused ambiguities when called with raw sal_Unicode pointers/non-const arrays, as those can convert to both OUString and to std::u16string_view. But the std::u16string_view operator overloads will generally be useful when changing OUStringLiteral similarly to 4b9e440c51be3e40326bc90c33ae69885bfb51e4 "Turn OStringLiteral into a consteval'ed, static-refcound rtl_String", at which point many existing uses of OUStringLiteral will be replaced with uses of std::u16string_view. Implementing this change turned up a need for an operator = overload for OUStringNumber, which has thus been added. No such need turned up for a corresponding operator += overload, but which can easily be added when the need arises. It also revealed that the operator == overloads between an OUString and a raw sal_Unicode pointer/non-const array were implemented rather inefficiently, creating a temporary OUString from the raw argument. Those have been improved. Preceding commits have already taken care of many dubious or simply unnecessary implicit uses of the now-explicit OUString ctors. This commit makes explicit the few remaining reasonable uses. (And in some cases needed to change variable initialization syntax from using parentheses to using curly braces, to avoid the most vexing parse issue. And needed to explicitly add OUString ctors from char16 const[2] string literal lvalues in a conditional expression in writerfilter/source/ooxml/OOXMLFastContextHandler.cxx that are only necessary because MSVC apparently still insists on doing array-to-pointer decay there.) All of this only affects LIBO_INTERNAL_ONLY. Change-Id: I7ce31162e9be1c3ff3c0bd184a34b535ec56be9e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102098 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-08-21loplugin:stringstatic (clang-cl)Stephan Bergmann
Change-Id: I024c7437e876459e22a6f541405b87ac13e7dc99 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/101135 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-08-04loplugin:elidestringvar (clang-cl)Stephan Bergmann
...plus ensuing loplugin:unnecessaryparen in vcl/source/treelist/transfer.cxx Change-Id: I1abf2e0c589c2c124399c1337f5dd703ee7d04a9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100094 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-07-07embedserv: create instances with uno constructorsNoel Grandin
See tdf#74608 for motivation Change-Id: I5f912ee625a37f64f9d9c35ccb13f995a56685c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98220 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-20use for-range on Sequence in e*Noel Grandin
Change-Id: I77dc12356ee45b1dee9acaf8a73dea81588822d3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94554 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-20use for-range on Sequence in d*Noel Grandin
and fix bug in GenericClipboard::initialize, where it was looping through the arguments, but always reading the first one. I'm guessing it was never an issue because it is always called with only one argument Change-Id: I8f72b6bce8c77a69c7d75115e34630e2c308261e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94553 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-05-08compact namespace in editeng..extensionsNoel Grandin
Change-Id: Ie93ac69592c3625b8e2e5db3619ce24597a07a7e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93722 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2020-03-20-Werror,-Wpointer-to-int-cast (LLVM 10 trunk clang-cl)Stephan Bergmann
The receiving end, VCLXToolkit::createSystemChild in toolkit/source/awt/vclxtoolkit.cxx, already extracts a sal_Int64 from the Any. Change-Id: I758345281a9aafa4eaa27dd31e47e43981df205a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90826 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-19sal_Char->char in editeng..eventattacherNoel Grandin
Change-Id: Ia9c736042a07a17377db6d88c5bcd2b468e98777 Reviewed-on: https://gerrit.libreoffice.org/85471 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2019-12-05loplugin:external (clang-cl)Stephan Bergmann
...plus loplugin:consttobool and loplugin:fakebool fallout Change-Id: Ie3d8121815c080b13bea6d9deca1eb138ca56138 Reviewed-on: https://gerrit.libreoffice.org/84515 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-26loplugin:consttobool (clang-cl)Stephan Bergmann
Change-Id: I81fea38cd737a8be74e6ece333ca37cc434a1c33 Reviewed-on: https://gerrit.libreoffice.org/83765 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-24cppcheck: performing init in init list (dbaccess/desktop/dtrans/e.)Julien Nabet
Change-Id: I7909df04a550a4fa843a70d20b5192231c3f175e Reviewed-on: https://gerrit.libreoffice.org/83600 Reviewed-by: Julien Nabet <serval2412@yahoo.fr> Tested-by: Julien Nabet <serval2412@yahoo.fr>
2019-11-19loplugin:fakebool (clang-cl)Stephan Bergmann
...plus follow-up loplugin:implicitboolconversion and loplugin:redundantcast Change-Id: I9fc9c5cb46fbb50da87ff80af64cb0dfda3e5f90 Reviewed-on: https://gerrit.libreoffice.org/83207 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-19loplugin:fakebool (clang-cl)Stephan Bergmann
"conversion from 'ATOM' (aka 'unsigned short') to 'BOOL' (aka 'int')"; if the BOOL return value of winwrap::HatchWindowRegister hasn't been used in bad ways in the past, this should have been safe in the past, converting from smaller ATOM to larger BOOL Change-Id: I836aee56384a01ef0d959ecc5dbebc923acb642b Reviewed-on: https://gerrit.libreoffice.org/83209 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-11-08Avoid C++20 comparison operator overloading ambiguities (clang-cl -std=c++2a)Stephan Bergmann
The main problem was the non-explicit inprocserv::ComSmart<T>::operator T*() that caused ambiguities between inprocserv::ComSmart<T>::operator ==(const T*) and the built-in operator == taking two (cv-qualified) T*. Many uses of that non-explicit conversion operator could be covered by an explicit bool conversion operator, but some needed the introduction of a get() function. Also, one of the operator == was used by the C++20 overload resolution in a way that it now needs to return bool. (And the other functions returning BOOL could be cleaned up, too.) Change-Id: I8065f0955a60207c2bd6d8e583d13bc15f324f38 Reviewed-on: https://gerrit.libreoffice.org/82273 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-17Remove some memset callsMike Kaganski
Replace them with default initialization or calloc Change-Id: I747f53c2ced2d0473fd5a5ede4f8520a0633dcc1 Reviewed-on: https://gerrit.libreoffice.org/80805 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-02-Werror,-Wmicrosoft-exception-spec (clang-cl)Stephan Bergmann
No idea why that started to show up now, but C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/um/combaseapi.h contains > #define STDMETHOD(method) virtual COM_DECLSPEC_NOTHROW HRESULT STDMETHODCALLTYPE method while C:/Program Files (x86)/Windows Kits/10/Include/10.0.17763.0/um/winnt.h contains > #define STDMETHODIMP HRESULT STDMETHODCALLTYPE which caused failures like > [build CXX] embedserv/source/inprocserv/dllentry.cxx > embedserv/source/inprocserv/dllentry.cxx(261,40): error: 'QueryInterface' is missing exception specification '__attribute__((nothrow))' [-Werror,-Wmicrosoft-exception-spec] > STDMETHODIMP InprocEmbedProvider_Impl::QueryInterface( REFIID riid, void ** ppv ) > ^ > embedserv/source/inprocserv/dllentry.cxx(143,15): note: previous declaration is here > STDMETHOD(QueryInterface)(REFIID riid, void ** ppvObj) override; > ^ Change-Id: I0fe3554c2da4089bf0f883e1132d6f2ee95ae2c3 Reviewed-on: https://gerrit.libreoffice.org/79970 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:unnecessaryparen (clang-cl)Stephan Bergmann
Change-Id: Ief84a2e87bd8bb3cbdb753fdb5bec6e57cf38116 Reviewed-on: https://gerrit.libreoffice.org/79939 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:referencecasting (clang-cl)Stephan Bergmann
Change-Id: Ie534212b09b92a02b377d0bb348e11c96bf61786 Reviewed-on: https://gerrit.libreoffice.org/79934 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:indentation (clang-cl)Stephan Bergmann
Change-Id: I19750bd9ac4c77c88097210626fd0c3dfa510a7a Reviewed-on: https://gerrit.libreoffice.org/79928 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-10-01loplugin:stringconstant (clang-cl)Stephan Bergmann
Change-Id: Id1a82cea4444255fdb693e126b7571a406094624 Reviewed-on: https://gerrit.libreoffice.org/79916 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-04-10clang-tidy: Fix suspicious catches of WIP unhandled-self-assignment checkTamás Zolnai
Change-Id: I1cb16b180f4cc5bf4d65485f03c44a06414d3580 Reviewed-on: https://gerrit.libreoffice.org/70481 Tested-by: Jenkins Reviewed-by: Tamás Zolnai <tamas.zolnai@collabora.com>
2019-03-27loplugin:typedefparam (clang-cl)Stephan Bergmann
Change-Id: I07604028845c49cc084927e21db7f21c5d053bab Reviewed-on: https://gerrit.libreoffice.org/69796 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-02-26loplugin:indentation (clang-cl)Stephan Bergmann
Change-Id: I94689e4eed290b4505d2caba2d9802ef7fb6cffd Reviewed-on: https://gerrit.libreoffice.org/68378 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-24Clean up dead uses of DISABLE_ATLStephan Bergmann
...after e597ef0489d9d5504721d21eefa15c65da0fb240 "No need for --disable-activex and --disable-atl any longer" Change-Id: I6ea0026fd18e0097aaaf0c1b05618e2a9ddf1a94 Reviewed-on: https://gerrit.libreoffice.org/66871 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-01-21o3tl::make_unique -> std::make_unique in dbaccess...frameworkGabor Kelemen
Since it is now possible to use C++14, it's time to replace the temporary solution with the standard one Change-Id: Iad5a422bc5a7da43d905edc91d1c46793332ec5e Reviewed-on: https://gerrit.libreoffice.org/66545 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>