summaryrefslogtreecommitdiff
path: root/linux-x86/share/swig/php/std_map.i
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-08-16 10:17:58 +0000
committerAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2023-08-16 10:17:58 +0000
commit8c1dfba603b89eaf2e88a93018dfd9244fdf5cc4 (patch)
treee08e74fba3ff91905855d802827db39278a8d15d /linux-x86/share/swig/php/std_map.i
parentbdef44d430ef39c1adc233b8ae3cb2f0a6033487 (diff)
parente905be252a53d20c52bd9e59df3ff8fdd46b9eab (diff)
downloadbuild-tools-8c1dfba603b89eaf2e88a93018dfd9244fdf5cc4.tar.gz
Snap for 10655076 from e905be252a53d20c52bd9e59df3ff8fdd46b9eab to androidx-mediarouter-releaseandroidx-mediarouter-release
Change-Id: I1299ade32fd555bdb0983eaa4409d539ecd7812d
Diffstat (limited to 'linux-x86/share/swig/php/std_map.i')
-rw-r--r--linux-x86/share/swig/php/std_map.i82
1 files changed, 82 insertions, 0 deletions
diff --git a/linux-x86/share/swig/php/std_map.i b/linux-x86/share/swig/php/std_map.i
new file mode 100644
index 0000000..7c01573
--- /dev/null
+++ b/linux-x86/share/swig/php/std_map.i
@@ -0,0 +1,82 @@
+/* -----------------------------------------------------------------------------
+ * std_map.i
+ *
+ * SWIG typemaps for std::map
+ * ----------------------------------------------------------------------------- */
+
+%include <std_common.i>
+
+// ------------------------------------------------------------------------
+// std::map
+// ------------------------------------------------------------------------
+
+%{
+#include <map>
+#include <algorithm>
+#include <stdexcept>
+%}
+
+// exported class
+
+namespace std {
+
+ template<class K, class T, class C = std::less<K> > class map {
+ // add typemaps here
+ public:
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef K key_type;
+ typedef T mapped_type;
+ typedef std::pair< const K, T > value_type;
+ typedef value_type* pointer;
+ typedef const value_type* const_pointer;
+ typedef value_type& reference;
+ typedef const value_type& const_reference;
+
+ map();
+ map(const map& other);
+
+ unsigned int size() const;
+ void clear();
+ %extend {
+ const T& get(const K& key) throw (std::out_of_range) {
+ std::map< K, T, C >::iterator i = self->find(key);
+ if (i != self->end())
+ return i->second;
+ else
+ throw std::out_of_range("key not found");
+ }
+ void set(const K& key, const T& x) {
+ (*self)[key] = x;
+ }
+ void del(const K& key) throw (std::out_of_range) {
+ std::map< K, T, C >::iterator i = self->find(key);
+ if (i != self->end())
+ self->erase(i);
+ else
+ throw std::out_of_range("key not found");
+ }
+ bool has_key(const K& key) {
+ std::map< K, T, C >::iterator i = self->find(key);
+ return i != self->end();
+ }
+ bool is_empty() const {
+ return self->empty();
+ }
+ }
+ };
+
+// Legacy macros (deprecated)
+%define specialize_std_map_on_key(K,CHECK,CONVERT_FROM,CONVERT_TO)
+#warning "specialize_std_map_on_key ignored - macro is deprecated and no longer necessary"
+%enddef
+
+%define specialize_std_map_on_value(T,CHECK,CONVERT_FROM,CONVERT_TO)
+#warning "specialize_std_map_on_value ignored - macro is deprecated and no longer necessary"
+%enddef
+
+%define specialize_std_map_on_both(K,CHECK_K,CONVERT_K_FROM,CONVERT_K_TO, T,CHECK_T,CONVERT_T_FROM,CONVERT_T_TO)
+#warning "specialize_std_map_on_both ignored - macro is deprecated and no longer necessary"
+%enddef
+
+}