24#include <com/sun/star/lang/XServiceInfo.hpp>
25#include <com/sun/star/util/XRefreshable.hpp>
26#include <com/sun/star/uno/XComponentContext.hpp>
27#include <com/sun/star/container/XNameContainer.hpp>
28#include <com/sun/star/container/XContainerQuery.hpp>
29#include <com/sun/star/util/XFlushable.hpp>
33#include <rtl/ustring.hxx>
52class BaseContainer :
public ::cppu::WeakImplHelper< css::lang::XServiceInfo ,
53 css::container::XNameContainer ,
54 css::container::XContainerQuery ,
55 css::util::XFlushable >
145 void init(
const OUString& sImplementationName,
146 const css::uno::Sequence< OUString >& lServiceNames ,
210 virtual void SAL_CALL
insertByName(
const OUString& sItem ,
211 const css::uno::Any& aValue)
override;
213 virtual void SAL_CALL
removeByName(
const OUString& sItem)
override;
219 const css::uno::Any& aValue)
override;
224 virtual css::uno::Any SAL_CALL
getByName(
const OUString& sItem)
override;
226 virtual css::uno::Sequence< OUString > SAL_CALL
getElementNames()
override;
242 virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL
createSubSetEnumerationByProperties(
const css::uno::Sequence< css::beans::NamedValue >& lProperties)
override;
247 virtual void SAL_CALL
flush()
override;
249 virtual void SAL_CALL
addFlushListener(
const css::uno::Reference< css::util::XFlushListener >& xListener)
override;
251 virtual void SAL_CALL
removeFlushListener(
const css::uno::Reference< css::util::XFlushListener >& xListener)
override;
implements the interface css::container::XNameContainer on top of a FilterCache reference.
OUString m_sImplementationName
the implementation name of our derived class, which we provide at the interface XServiceInfo of our c...
BaseContainer()
standard ctor.
void init(const OUString &sImplementationName, const css::uno::Sequence< OUString > &lServiceNames, FilterCache::EItemType eType)
initialize this generic instance with some specialized values from our derived object.
virtual ~BaseContainer() override
standard dtor.
virtual sal_Bool SAL_CALL hasByName(const OUString &sItem) override
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createSubSetEnumerationByProperties(const css::uno::Sequence< css::beans::NamedValue > &lProperties) override
virtual void SAL_CALL replaceByName(const OUString &sItem, const css::uno::Any &aValue) override
virtual void SAL_CALL removeByName(const OUString &sItem) override
virtual void SAL_CALL flush() override
FilterCache * impl_getWorkingCache(std::unique_lock< std::mutex > &rGuard) const
returns a pointer to the current used cache member.
virtual css::uno::Type SAL_CALL getElementType() override
FilterCache::EItemType m_eType
specify, which sub container of the used filter cache must be wrapped by this container interface.
std::unique_ptr< FilterCache > m_pFlushCache
local filter cache, which is used to collect changes on the filter configuration first and flush it l...
virtual sal_Bool SAL_CALL hasElements() override
virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createSubSetEnumerationByQuery(const OUString &sQuery) override
void impl_initFlushMode(std::unique_lock< std::mutex > &rGuard)
it creates the global instance m_pFilterCache, which is a copy of the global instance m_rCache,...
void impl_loadOnDemand(std::unique_lock< std::mutex > &rGuard)
check if the underlying configuration data was already loaded and do it if necessary automatically.
virtual OUString SAL_CALL getImplementationName() override
css::uno::Sequence< OUString > m_lServiceNames
the list of supported uno service names of our derived class, which we provide at the interface XServ...
virtual css::uno::Any SAL_CALL getByName(const OUString &sItem) override
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
virtual void SAL_CALL removeFlushListener(const css::uno::Reference< css::util::XFlushListener > &xListener) override
virtual void SAL_CALL insertByName(const OUString &sItem, const css::uno::Any &aValue) override
virtual void SAL_CALL addFlushListener(const css::uno::Reference< css::util::XFlushListener > &xListener) override
virtual css::uno::Sequence< OUString > SAL_CALL getElementNames() override
comphelper::OInterfaceContainerHelper4< css::util::XFlushListener > m_lListener
holds all listener, which are registered at this instance.
virtual sal_Bool SAL_CALL supportsService(const OUString &sServiceName) override
implements a cache, which contains all elements of our filter and type detection configuration.
EItemType
identify the type of a container item.