20#ifndef INCLUDED_COMPHELPER_SEQUENCEASHASHMAP_HXX
21#define INCLUDED_COMPHELPER_SEQUENCEASHASHMAP_HXX
23#include <unordered_map>
24#include <com/sun/star/uno/Sequence.hxx>
64using SequenceAsHashMapBase = std::unordered_map<OUStringAndHashCode, css::uno::Any, OUStringAndHashCodeHash, OUStringAndHashCodeEqual>;
89 SequenceAsHashMap(
const css::uno::Sequence< css::beans::PropertyValue >& lSource);
114 void operator<<(
const css::uno::Any& aSource);
129 void operator<<(
const css::uno::Sequence< css::uno::Any >& lSource);
138 void operator<<(
const css::uno::Sequence< css::beans::PropertyValue >& lSource);
147 void operator<<(
const css::uno::Sequence< css::beans::NamedValue >& lSource);
156 void operator>>(css::uno::Sequence< css::beans::PropertyValue >& lDestination)
const;
165 void operator>>(css::uno::Sequence< css::beans::NamedValue >& lDestination)
const;
183 css::uno::Any getAsConstAny(
bool bAsPropertyValue)
const;
197 css::uno::Sequence< css::beans::NamedValue > getAsConstNamedValueList()
const;
211 css::uno::Sequence< css::beans::PropertyValue > getAsConstPropertyValueList()
const;
236 template<
class TValueType >
238 const TValueType& aDefault)
const
240 auto pIt = m_aMap.find(sKey);
241 if (pIt == m_aMap.end())
244 TValueType aValue = TValueType();
245 if (!(pIt->second >>= aValue))
268 auto pIt = m_aMap.find(sKey);
269 if (pIt == m_aMap.end())
270 return css::uno::Any();
296 template<
class TValueType >
298 const TValueType& aValue)
300 if (m_aMap.find(sKey) == m_aMap.end())
302 (*this)[sKey] = css::uno::toAny(aValue);
360 return m_aMap.size();
365 return m_aMap.empty();
370 return m_aMap.begin();
375 return m_aMap.begin();
390 return m_aMap.find(rKey);
395 return m_aMap.find(rKey);
400 return m_aMap.find(rKey);
405 return m_aMap.find(rKey);
410 return m_aMap.erase(it);
415 return m_aMap.erase(rKey);
const_iterator begin() const
iterator find(const OUStringAndHashCode &rKey)
iterator erase(iterator it)
TValueType getUnpackedValueOrDefault(const OUString &sKey, const TValueType &aDefault) const
check if the specified item exists and return its (unpacked!) value or it returns the specified defau...
const_iterator find(const OUString &rKey) const
const_iterator end() const
iterator find(const OUString &rKey)
bool createItemIfMissing(const OUString &sKey, const TValueType &aValue)
creates a new item with the specified name and value only in case such item name does not already exi...
css::uno::Any getValue(const OUString &sKey) const
check if the specified item exists and return its value or it returns an empty css::uno::Any.
SequenceAsHashMapBase m_aMap
SequenceAsHashMapBase::iterator iterator
css::uno::Any & operator[](const OUString &rKey)
const_iterator find(const OUStringAndHashCode &rKey) const
SequenceAsHashMapBase::const_iterator const_iterator
size_t erase(const OUString &rKey)
css::uno::Any & operator[](const OUStringAndHashCode &rKey)
#define COMPHELPER_DLLPUBLIC
std::unordered_map< OUStringAndHashCode, css::uno::Any, OUStringAndHashCodeHash, OUStringAndHashCodeEqual > SequenceAsHashMapBase
const css::uno::Reference< css::io::XObjectInputStream > & operator>>(const css::uno::Reference< css::io::XObjectInputStream > &_rxInStream, css::awt::FontDescriptor &_rFont)
const css::uno::Reference< css::io::XObjectOutputStream > & operator<<(const css::uno::Reference< css::io::XObjectOutputStream > &_rxOutStream, const css::awt::FontDescriptor &_rFont)
bool match(const sal_Unicode *pWild, const sal_Unicode *pStr, const sal_Unicode cEscape)
bool operator()(const OUStringAndHashCode &lhs, const OUStringAndHashCode &rhs) const
size_t operator()(const OUStringAndHashCode &i) const
Implements a stl hash map on top of some specialized sequence from type PropertyValue or NamedValue.
OUStringAndHashCode(OUString s)