1555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// 2555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// std::deque 3555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 4555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot%include <std_container.i> 5555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 6555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// Deque 7555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 8555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot%define %std_deque_methods(deque...) 9555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %std_sequence_methods(deque) 10555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 11555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot void pop_front(); 12555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot void push_front(const value_type& x); 13555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot%enddef 14555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 15555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot%define %std_deque_methods_val(deque...) 16555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %std_sequence_methods_val(deque) 17555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 18555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot void pop_front(); 19555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot void push_front(value_type x); 20555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot%enddef 21555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 22555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// ------------------------------------------------------------------------ 23555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// std::deque 24555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// 25555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// const declarations are used to guess the intent of the function being 26555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// exported; therefore, the following rationale is applied: 27555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// 28555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// -- f(std::deque<T>), f(const std::deque<T>&): 29555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// the parameter being read-only, either a sequence or a 30555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// previously wrapped std::deque<T> can be passed. 31555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// -- f(std::deque<T>&), f(std::deque<T>*): 32555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// the parameter may be modified; therefore, only a wrapped std::deque 33555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// can be passed. 34555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// -- std::deque<T> f(), const std::deque<T>& f(): 35555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// the deque is returned by copy; therefore, a sequence of T:s 36555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// is returned which is most easily used in other functions 37555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// -- std::deque<T>& f(), std::deque<T>* f(): 38555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// the deque is returned by reference; therefore, a wrapped std::deque 39555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// is returned 40555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// -- const std::deque<T>* f(), f(const std::deque<T>*): 41555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// for consistency, they expect and return a plain deque pointer. 42555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// ------------------------------------------------------------------------ 43555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 44555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot%{ 45555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#include <deque> 46555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot%} 47555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 48555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot// exported classes 49555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 50555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robotnamespace std { 51555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 52555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot template<class _Tp, class _Alloc = allocator<_Tp> > 53555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot class deque { 54555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot public: 55555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef size_t size_type; 56555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef ptrdiff_t difference_type; 57555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef _Tp value_type; 58555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef value_type* pointer; 59555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef const value_type* const_pointer; 60555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef value_type& reference; 61555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef const value_type& const_reference; 62555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef _Alloc allocator_type; 63555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 64555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %traits_swigtype(_Tp); 65555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 66555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %fragment(SWIG_Traits_frag(std::deque<_Tp, _Alloc >), "header", 67555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot fragment=SWIG_Traits_frag(_Tp), 68555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot fragment="StdDequeTraits") { 69555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot namespace swig { 70555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot template <> struct traits<std::deque<_Tp, _Alloc > > { 71555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef pointer_category category; 72555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot static const char* type_name() { 73555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot return "std::deque<" #_Tp " >"; 74555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot } 75555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot }; 76555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot } 77555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot } 78555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 79555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %typemap_traits_ptr(SWIG_TYPECHECK_DEQUE, std::deque<_Tp, _Alloc >); 80555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 81555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef %swig_deque_methods 82555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot // Add swig/language extra methods 83555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %swig_deque_methods(std::deque<_Tp, _Alloc >); 84555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif 85555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 86555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %std_deque_methods(deque); 87555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot }; 88555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 89555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot template<class _Tp, class _Alloc > 90555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot class deque<_Tp*, _Alloc > { 91555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot public: 92555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef size_t size_type; 93555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef ptrdiff_t difference_type; 94555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef _Tp* value_type; 95555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef value_type* pointer; 96555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef const value_type* const_pointer; 97555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef value_type reference; 98555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef value_type const_reference; 99555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef _Alloc allocator_type; 100555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 101555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %traits_swigtype(_Tp); 102555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 103555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %fragment(SWIG_Traits_frag(std::deque<_Tp*, _Alloc >), "header", 104555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot fragment=SWIG_Traits_frag(_Tp), 105555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot fragment="StdDequeTraits") { 106555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot namespace swig { 107555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot template <> struct traits<std::deque<_Tp*, _Alloc > > { 108555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot typedef value_category category; 109555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot static const char* type_name() { 110555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot return "std::deque<" #_Tp " * >"; 111555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot } 112555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot }; 113555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot } 114555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot } 115555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 116555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %typemap_traits_ptr(SWIG_TYPECHECK_DEQUE, std::deque<_Tp*, _Alloc >); 117555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 118555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#ifdef %swig_deque_methods_val 119555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot // Add swig/language extra methods 120555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %swig_deque_methods_val(std::deque<_Tp*, _Alloc >); 121555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot#endif 122555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 123555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot %std_deque_methods_val(std::deque<_Tp*, _Alloc >); 124555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot }; 125555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 126555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot} 127555d6a58708babe6bb79b5824ef24eb1f37f708android-build-team Robot 128