libprelude/master: Use std::vector in place of std::list for improved SWIG portability.
[email protected] Fri, 5 Jun 2009 18:45:49 +0200 (CEST)
| Newsgroups | gmane.comp.security.ids.prelude.cvs |
|---|---|
| Message-ID | <[email protected]> |
commit 711ede8041785d7efa918885ee17ade79c5ed77c Author: Yoann Vandoorselaere <[email protected]> Date: Fri Jun 5 17:33:40 2009 +0200 Use std::vector in place of std::list for improved SWIG portability. ======================================== bindings/c++/idmef-value.cxx | 6 +++--- bindings/c++/include/idmef-value.hxx | 4 ++-- bindings/c++/include/prelude-connection-pool.hxx | 2 +- bindings/c++/prelude-connection-pool.cxx | 6 +++--- bindings/libpreludecpp-perl.i | 9 ++------- bindings/libpreludecpp.i | 9 ++++++++- bindings/lua/libpreludecpp-lua.i | 5 ++--- bindings/python/libpreludecpp-python.i | 6 ++---- bindings/ruby/libpreludecpp-ruby.i | 8 ++------ 9 files changed, 25 insertions(+), 30 deletions(-) ======================================== diff --git a/bindings/c++/idmef-value.cxx b/bindings/c++/idmef-value.cxx index 96a2c6f..a2bee99 100644 --- a/bindings/c++/idmef-value.cxx +++ b/bindings/c++/idmef-value.cxx @@ -210,7 +210,7 @@ IDMEFValue IDMEFValue::Clone() const static int iterate_cb(idmef_value_t *value, void *extra) { - std::list<IDMEFValue> *vlist = (std::list<IDMEFValue> *) extra; + std::vector<IDMEFValue> *vlist = (std::vector<IDMEFValue> *) extra; vlist->push_back(IDMEFValue(idmef_value_ref(value))); @@ -218,9 +218,9 @@ static int iterate_cb(idmef_value_t *value, void *extra) } -IDMEFValue::operator std::list<IDMEFValue> () const +IDMEFValue::operator std::vector<IDMEFValue> () const { - std::list<IDMEFValue> vlist; + std::vector<IDMEFValue> vlist; if ( ! _value ) return vlist; diff --git a/bindings/c++/include/idmef-value.hxx b/bindings/c++/include/idmef-value.hxx index dac6a97..145c87b 100644 --- a/bindings/c++/include/idmef-value.hxx +++ b/bindings/c++/include/idmef-value.hxx @@ -24,7 +24,7 @@ #ifndef _LIBPRELUDE_IDMEF_VALUE_HXX #define _LIBPRELUDE_IDMEF_VALUE_HXX -#include <list> +#include <vector> #include "idmef-time.hxx" namespace Prelude { @@ -68,7 +68,7 @@ namespace Prelude { operator uint64_t() const; operator double() const; //operator std::string(); - operator std::list<IDMEFValue>() const; + operator std::vector<IDMEFValue>() const; operator const char*() const; operator float() const; operator Prelude::IDMEFTime() const; diff --git a/bindings/c++/include/prelude-connection-pool.hxx b/bindings/c++/include/prelude-connection-pool.hxx index 3949713..97cae95 100644 --- a/bindings/c++/include/prelude-connection-pool.hxx +++ b/bindings/c++/include/prelude-connection-pool.hxx @@ -44,7 +44,7 @@ namespace Prelude { void SetConnectionString(const char *str); const char *GetConnectionString(); - std::list<Prelude::Connection> GetConnectionList(); + std::vector<Prelude::Connection> GetConnectionList(); void SetFlags(int flags); int GetFlags(); diff --git a/bindings/c++/prelude-connection-pool.cxx b/bindings/c++/prelude-connection-pool.cxx index ae0e12e..52e202a 100644 --- a/bindings/c++/prelude-connection-pool.cxx +++ b/bindings/c++/prelude-connection-pool.cxx @@ -21,7 +21,7 @@ * *****/ -#include <list> +#include <vector> #include "prelude.h" #include "prelude-connection-pool.h" @@ -79,9 +79,9 @@ void ConnectionPool::Init() } -std::list<Prelude::Connection> ConnectionPool::GetConnectionList() +std::vector<Prelude::Connection> ConnectionPool::GetConnectionList() { - std::list<Prelude::Connection> clist; + std::vector<Prelude::Connection> clist; prelude_connection_t *con; prelude_list_t *head, *tmp; diff --git a/bindings/libpreludecpp-perl.i b/bindings/libpreludecpp-perl.i index f8f5c16..caa8f85 100644 --- a/bindings/libpreludecpp-perl.i +++ b/bindings/libpreludecpp-perl.i @@ -1,7 +1,3 @@ -%include std_list.i -%template() std::list<Prelude::IDMEFValue>; -%template() std::list<Prelude::Connection>; - # Exception map %typemap(throws) Prelude::PreludeError %{ SWIG_exception(SWIG_RuntimeError, $1.what()); @@ -18,7 +14,6 @@ %ignore *::operator uint64_t() const; %ignore *::operator float() const; %ignore *::operator double() const; -%ignore *::operator std::list<IDMEFValue>() const; %ignore *::operator Prelude::IDMEFTime() const; %ignore *::operator const std::string() const; %ignore *::operator const char *() const; @@ -33,8 +28,8 @@ int IDMEFValue_to_SWIG(const IDMEFValue &result, TARGET_LANGUAGE_OUTPUT_TYPE ret SV *IDMEFValueList_to_SWIG(const Prelude::IDMEFValue &value) { int j = 0, ret; - std::list<Prelude::IDMEFValue> result = value; - std::list<Prelude::IDMEFValue>::const_iterator i; + std::vector<Prelude::IDMEFValue> result = value; + std::vector<Prelude::IDMEFValue>::const_iterator i; AV *myav; SV *svret, **svs = new SV*[result.size()]; diff --git a/bindings/libpreludecpp.i b/bindings/libpreludecpp.i index 835f128..b01f0e8 100644 --- a/bindings/libpreludecpp.i +++ b/bindings/libpreludecpp.i @@ -1,12 +1,14 @@ %module PreludeEasy %include "std_string.i" +%include "std_vector.i" %include "exception.i" %{ #include <list> #include <sstream> +#include "prelude.hxx" #include "prelude-error.hxx" #include "prelude-connection.hxx" #include "prelude-connection-pool.hxx" @@ -61,6 +63,10 @@ typedef signed int prelude_error_t; %ignore operator >>(std::istream &is, const Prelude::IDMEF &idmef); +%template() std::vector<std::string>; +%template() std::vector<Prelude::IDMEFValue>; +%template() std::vector<Prelude::Connection>; + %fragment("IDMEFValue_to_SWIG", "header", fragment="IDMEFValueList_to_SWIG", fragment="SWIG_From_float") { @@ -177,7 +183,7 @@ int IDMEFValue_to_SWIG(const IDMEFValue &result, TARGET_LANGUAGE_OUTPUT_TYPE ret %ignore Prelude::IDMEFValue::operator float() const; %ignore Prelude::IDMEFValue::operator double() const; %ignore Prelude::IDMEFValue::operator const char*() const; -%ignore Prelude::IDMEFValue::operator std::list<IDMEFValue>() const; +%ignore Prelude::IDMEFValue::operator std::vector<IDMEFValue>() const; %ignore Prelude::IDMEFValue::operator Prelude::IDMEFTime() const; /* @@ -200,6 +206,7 @@ int IDMEFValue_to_SWIG(const IDMEFValue &result, TARGET_LANGUAGE_OUTPUT_TYPE ret %ignore operator idmef_value_t *() const; %ignore operator prelude_client_profile_t *() const; +%include prelude.hxx %include prelude-error.hxx %include prelude-connection.hxx %include prelude-connection-pool.hxx diff --git a/bindings/lua/libpreludecpp-lua.i b/bindings/lua/libpreludecpp-lua.i index bc20580..58c0b03 100644 --- a/bindings/lua/libpreludecpp-lua.i +++ b/bindings/lua/libpreludecpp-lua.i @@ -47,7 +47,6 @@ %ignore *::operator uint64_t() const; %ignore *::operator float() const; %ignore *::operator double() const; -%ignore *::operator std::list<IDMEFValue>() const; %ignore *::operator Prelude::IDMEFTime() const; %ignore operator <<; %ignore operator >>; @@ -160,8 +159,8 @@ int IDMEFValueList_to_SWIG(lua_State *L, const Prelude::IDMEFValue &value) { bool is_list; int index = 0, ret; - std::list<Prelude::IDMEFValue> result = value; - std::list<Prelude::IDMEFValue>::const_iterator i; + std::vector<Prelude::IDMEFValue> result = value; + std::vector<Prelude::IDMEFValue>::const_iterator i; lua_newtable(L); diff --git a/bindings/python/libpreludecpp-python.i b/bindings/python/libpreludecpp-python.i index 6ad7a9e..ca05017 100644 --- a/bindings/python/libpreludecpp-python.i +++ b/bindings/python/libpreludecpp-python.i @@ -1,6 +1,4 @@ %include std_list.i -%template() std::list<Prelude::IDMEFValue>; -%template() std::list<Prelude::Connection>; %rename (__str__) *::operator const std::string() const; %rename (__str__) *::operator const char *() const; @@ -87,8 +85,8 @@ PyObject *IDMEFValueList_to_SWIG(const Prelude::IDMEFValue &value) { int j = 0, ret; PyObject *pytuple; - std::list<Prelude::IDMEFValue> result = value; - std::list<Prelude::IDMEFValue>::const_iterator i; + std::vector<Prelude::IDMEFValue> result = value; + std::vector<Prelude::IDMEFValue>::const_iterator i; pytuple = PyTuple_New(result.size()); diff --git a/bindings/ruby/libpreludecpp-ruby.i b/bindings/ruby/libpreludecpp-ruby.i index c3779a5..3ec3199 100644 --- a/bindings/ruby/libpreludecpp-ruby.i +++ b/bindings/ruby/libpreludecpp-ruby.i @@ -1,7 +1,3 @@ -%include std_list.i -%template() std::list<Prelude::IDMEFValue>; -%template() std::list<Prelude::Connection>; - %rename (__str__) *::operator const std::string() const; %rename (__str__) *::operator const char *() const; %rename (__int__) *::operator int() const; @@ -98,8 +94,8 @@ VALUE IDMEFValueList_to_SWIG(const Prelude::IDMEFValue &value) { VALUE ary; int ret, j = 0; - std::list<Prelude::IDMEFValue> result = value; - std::list<Prelude::IDMEFValue>::const_iterator i; + std::vector<Prelude::IDMEFValue> result = value; + std::vector<Prelude::IDMEFValue>::const_iterator i; ary = rb_ary_new2(result.size()); _______________________________________________ Prelude-cvslog site list [email protected] http://lists.prelude-ids.org/mailman/listinfo/prelude-cvslog