From eb433dbef1aec1f802f16706b8b5072dad88b86e Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Sun, 8 Jan 2006 20:08:44 +0000 Subject: [PATCH] Each target language now has its own std_deque.i like the other STL wrappers. git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@8303 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/Lib/_std_deque.i | 120 ---------------------------------- SWIG/Lib/csharp/std_deque.i | 1 + SWIG/Lib/guile/std_deque.i | 1 + SWIG/Lib/java/std_deque.i | 1 + SWIG/Lib/lua/std_deque.i | 1 + SWIG/Lib/mzscheme/std_deque.i | 1 + SWIG/Lib/perl5/std_deque.i | 1 + SWIG/Lib/php4/std_deque.i | 1 + SWIG/Lib/std_deque.i | 5 -- SWIG/Lib/tcl/std_deque.i | 1 + 10 files changed, 8 insertions(+), 125 deletions(-) delete mode 100644 SWIG/Lib/_std_deque.i create mode 100644 SWIG/Lib/csharp/std_deque.i create mode 100644 SWIG/Lib/guile/std_deque.i create mode 100644 SWIG/Lib/java/std_deque.i create mode 100644 SWIG/Lib/lua/std_deque.i create mode 100644 SWIG/Lib/mzscheme/std_deque.i create mode 100644 SWIG/Lib/perl5/std_deque.i create mode 100644 SWIG/Lib/php4/std_deque.i delete mode 100644 SWIG/Lib/std_deque.i create mode 100644 SWIG/Lib/tcl/std_deque.i diff --git a/SWIG/Lib/_std_deque.i b/SWIG/Lib/_std_deque.i deleted file mode 100644 index 8c6dfb440..000000000 --- a/SWIG/Lib/_std_deque.i +++ /dev/null @@ -1,120 +0,0 @@ -/* This file contains a generic definition of std::deque along with - * some helper functions. Specific language modules should include - * this file to generate wrappers. - */ - -%include - -%{ -#include -#include -%} - - -/* This macro defines all of the standard methods for a deque. This - is defined as a macro to simplify the task of specialization. For - example, - - template<> class deque { - public: - %std_deque_methods(int); - }; -*/ - -%define %std_deque_methods(T) - typedef T &reference; - typedef const T& const_reference; - - deque(); - deque(unsigned int size, const T& value=T()); - deque(const deque &); - ~deque(); - - void assign(unsigned int n, const T& value); - void swap(deque &x); - unsigned int size() const; - unsigned int max_size() const; - void resize(unsigned int n, T c = T()); - bool empty() const; - const_reference front(); - const_reference back(); - void push_front(const T& x); - void push_back(const T& x); - void pop_front(); - void pop_back(); - void clear(); - - /* Some useful extensions */ - %extend { - const_reference getitem(int i) throw (std::out_of_range) { - int size = int(self->size()); - if (i<0) i += size; - if (i>=0 && isize()); - if (i<0) i+= size; - if (i>=0 && isize()); - if (i<0) i+= size; - if (i>=0 && ierase(self->begin()+i); - } else { - throw std::out_of_range("deque index out of range"); - } - } - std::deque getslice(int i, int j) { - int size = int(self->size()); - if (i<0) i = size+i; - if (j<0) j = size+j; - if (i<0) i = 0; - if (j>size) j = size; - std::deque tmp(j-i); - std::copy(self->begin()+i,self->begin()+j,tmp.begin()); - return tmp; - } - void setslice(int i, int j, const std::deque& v) { - int size = int(self->size()); - if (i<0) i = size+i; - if (j<0) j = size+j; - if (i<0) i = 0; - if (j>size) j = size; - if (int(v.size()) == j-i) { - std::copy(v.begin(),v.end(),self->begin()+i); - } else { - self->erase(self->begin()+i,self->begin()+j); - if (i+1 <= size) - self->insert(self->begin()+i+1,v.begin(),v.end()); - else - self->insert(self->end(),v.begin(),v.end()); - } - } - void delslice(int i, int j) { - int size = int(self->size()); - if (i<0) i = size+i; - if (j<0) j = size+j; - if (i<0) i = 0; - if (j>size) j = size; - self->erase(self->begin()+i,self->begin()+j); - } - }; - -%enddef - -namespace std { - template class deque { - public: - %std_deque_methods(T); - }; -} - - - diff --git a/SWIG/Lib/csharp/std_deque.i b/SWIG/Lib/csharp/std_deque.i new file mode 100644 index 000000000..cb98f6c2f --- /dev/null +++ b/SWIG/Lib/csharp/std_deque.i @@ -0,0 +1 @@ +%include diff --git a/SWIG/Lib/guile/std_deque.i b/SWIG/Lib/guile/std_deque.i new file mode 100644 index 000000000..cb98f6c2f --- /dev/null +++ b/SWIG/Lib/guile/std_deque.i @@ -0,0 +1 @@ +%include diff --git a/SWIG/Lib/java/std_deque.i b/SWIG/Lib/java/std_deque.i new file mode 100644 index 000000000..cb98f6c2f --- /dev/null +++ b/SWIG/Lib/java/std_deque.i @@ -0,0 +1 @@ +%include diff --git a/SWIG/Lib/lua/std_deque.i b/SWIG/Lib/lua/std_deque.i new file mode 100644 index 000000000..cb98f6c2f --- /dev/null +++ b/SWIG/Lib/lua/std_deque.i @@ -0,0 +1 @@ +%include diff --git a/SWIG/Lib/mzscheme/std_deque.i b/SWIG/Lib/mzscheme/std_deque.i new file mode 100644 index 000000000..cb98f6c2f --- /dev/null +++ b/SWIG/Lib/mzscheme/std_deque.i @@ -0,0 +1 @@ +%include diff --git a/SWIG/Lib/perl5/std_deque.i b/SWIG/Lib/perl5/std_deque.i new file mode 100644 index 000000000..cb98f6c2f --- /dev/null +++ b/SWIG/Lib/perl5/std_deque.i @@ -0,0 +1 @@ +%include diff --git a/SWIG/Lib/php4/std_deque.i b/SWIG/Lib/php4/std_deque.i new file mode 100644 index 000000000..cb98f6c2f --- /dev/null +++ b/SWIG/Lib/php4/std_deque.i @@ -0,0 +1 @@ +%include diff --git a/SWIG/Lib/std_deque.i b/SWIG/Lib/std_deque.i deleted file mode 100644 index 86e614ace..000000000 --- a/SWIG/Lib/std_deque.i +++ /dev/null @@ -1,5 +0,0 @@ -/* Default std_deque wrapper */ -%module std_deque - -/* Include implementation specific code */ -%include <_std_deque.i> diff --git a/SWIG/Lib/tcl/std_deque.i b/SWIG/Lib/tcl/std_deque.i new file mode 100644 index 000000000..cb98f6c2f --- /dev/null +++ b/SWIG/Lib/tcl/std_deque.i @@ -0,0 +1 @@ +%include