summaryrefslogtreecommitdiff
path: root/include/comphelper/sequence.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'include/comphelper/sequence.hxx')
-rw-r--r--include/comphelper/sequence.hxx25
1 files changed, 25 insertions, 0 deletions
diff --git a/include/comphelper/sequence.hxx b/include/comphelper/sequence.hxx
index 47bf0c5af9c4..17d1b67c0d64 100644
--- a/include/comphelper/sequence.hxx
+++ b/include/comphelper/sequence.hxx
@@ -369,6 +369,31 @@ namespace comphelper
return o_Output;
}
+ /** Copy (keys or values) from a associate container into a Sequence
+
+ @tpl M map container type eg. std::map/std::unordered_map
+
+ @return the generated Sequence
+ */
+ template < typename M >
+ inline css::uno::Sequence< typename M::key_type > mapKeysToSequence( M const& map )
+ {
+ css::uno::Sequence< typename M::key_type > ret( static_cast<sal_Int32>(map.size()) );
+ typename M::key_type* pArray = ret.getArray();
+ for (const auto& i : map)
+ *pArray++ = i.first;
+ return ret;
+ }
+
+ template < typename M >
+ inline css::uno::Sequence< typename M::mapped_type > mapValuesToSequence( M const& map )
+ {
+ css::uno::Sequence< typename M::mapped_type > ret( static_cast<sal_Int32>(map.size()) );
+ typename M::mapped_type* pArray = ret.getArray();
+ for (const auto& i : map)
+ *pArray++ = i.second;
+ return ret;
+ }
} // namespace comphelper