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