25#include <com/sun/star/configuration/XUpdate.hpp>
26#include <com/sun/star/uno/Reference.hxx>
27#include <com/sun/star/uno/Sequence.hxx>
28#include <com/sun/star/uno/XInterface.hpp>
31#include <osl/mutex.hxx>
33#include <rtl/ustring.hxx>
46std::set< OUString > seqToSet(
47 css::uno::Sequence< OUString >
const & sequence)
49 return std::set< OUString >( sequence.begin(), sequence.end() );
53 public cppu::WeakImplHelper< css::configuration::XUpdate >
56 explicit Service(
const css::uno::Reference< css::uno::XComponentContext >& context):
67 virtual ~Service()
override {}
69 virtual void SAL_CALL insertExtensionXcsFile(
70 sal_Bool shared, OUString
const & fileUri)
override;
72 virtual void SAL_CALL insertExtensionXcuFile(
73 sal_Bool shared, OUString
const & fileUri)
override;
75 virtual void SAL_CALL removeExtensionXcuFile(OUString
const & fileUri)
override;
77 virtual void SAL_CALL insertModificationXcuFile(
78 OUString
const & fileUri,
80 css::uno::Sequence< OUString >
const &
excludedPaths)
override;
82 std::shared_ptr<osl::Mutex>
lock_;
83 css::uno::Reference< css::uno::XComponentContext >
context_;
86void Service::insertExtensionXcsFile(
87 sal_Bool shared, OUString
const & fileUri)
89 osl::MutexGuard g(*
lock_);
93void Service::insertExtensionXcuFile(
94 sal_Bool shared, OUString
const & fileUri)
98 osl::MutexGuard g(*
lock_);
101 components.insertExtensionXcuFile(shared, fileUri, &mods);
102 components.initGlobalBroadcaster(
108void Service::removeExtensionXcuFile(OUString
const & fileUri)
112 osl::MutexGuard g(*
lock_);
115 components.removeExtensionXcuFile(fileUri, &mods);
116 components.initGlobalBroadcaster(
122void Service::insertModificationXcuFile(
123 OUString
const & fileUri,
124 css::uno::Sequence< OUString >
const & includedPaths,
125 css::uno::Sequence< OUString >
const & excludedPaths)
129 osl::MutexGuard g(*
lock_);
132 components.insertModificationXcuFile(
133 fileUri, seqToSet(includedPaths), seqToSet(excludedPaths), &mods);
134 components.initGlobalBroadcaster(
143extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface*
145 css::uno::XComponentContext* context, css::uno::Sequence<css::uno::Any>
const& )
147 return cppu::acquire(
new configmgr::update::Service(context));
void insertExtensionXcsFile(bool shared, OUString const &fileUri)
static Components & getSingleton(css::uno::Reference< css::uno::XComponentContext > const &context)
std::set< OUString > includedPaths
std::set< OUString > excludedPaths
std::shared_ptr< osl::Mutex > const & lock()
css::uno::Reference< css::uno::XComponentContext > context_
SAL_DLLPUBLIC_EXPORT css::uno::XInterface * com_sun_star_comp_configuration_Update_get_implementation(css::uno::XComponentContext *context, css::uno::Sequence< css::uno::Any > const &)
std::shared_ptr< osl::Mutex > lock_
std::vector< uno::Reference< sheet::XSpreadsheetDocument > > Components