]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7180: let esl lua module build against lua 5.1 or 5.2 (requires newer swig)
authorBrian West <brian@freeswitch.org>
Tue, 20 Jan 2015 18:26:57 +0000 (12:26 -0600)
committerBrian West <brian@freeswitch.org>
Tue, 20 Jan 2015 18:26:57 +0000 (12:26 -0600)
libs/esl/lua/Makefile
libs/esl/lua/esl_wrap.cpp

index c33853bfa73e074b85c3decc66367071d3dedbe4..872888dff5f73fdb088840d7c2cb6ab1449a76dc 100644 (file)
@@ -5,7 +5,7 @@ WRAP_GCC_WARNING_SILENCE=-Wno-unused-function
 all: ESL.so
 
 esl_wrap.cpp:
-       swig -module ESL -lua -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
+       swig2.0 -module ESL -lua -c++ -DMULTIPLICITY -I../src/include -o esl_wrap.cpp ../ESL.i
 
 esl_wrap.o: esl_wrap.cpp
        $(CXX) $(CXX_CFLAGS) $(CXXFLAGS) $(LOCAL_CFLAGS) $(WRAP_GCC_WARNING_SILENCE) -c esl_wrap.cpp -o esl_wrap.o
index 9dac86544d88e768726ae939d35def9653548529..8d781383fd1dabef4bfee735488c9af72bba3fff 100644 (file)
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.35
+ * Version 2.0.7
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -8,20 +8,27 @@
  * interface file instead. 
  * ----------------------------------------------------------------------------- */
 
+#define SWIGLUA
+#define SWIG_LUA_TARGET SWIG_LUA_FLAVOR_LUA
+#define SWIG_LUA_MODULE_GLOBAL
+
 
 #ifdef __cplusplus
+/* SwigValueWrapper is described in swig.swg */
 template<typename T> class SwigValueWrapper {
-    T *tt;
+  struct SwigMovePointer {
+    T *ptr;
+    SwigMovePointer(T *p) : ptr(p) { }
+    ~SwigMovePointer() { delete ptr; }
+    SwigMovePointer& operator=(SwigMovePointer& rhs) { T* oldptr = ptr; ptr = 0; delete oldptr; ptr = rhs.ptr; rhs.ptr = 0; return *this; }
+  } pointer;
+  SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+  SwigValueWrapper(const SwigValueWrapper<T>& rhs);
 public:
-    SwigValueWrapper() : tt(0) { }
-    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
-    SwigValueWrapper(const T& t) : tt(new T(t)) { }
-    ~SwigValueWrapper() { delete tt; } 
-    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
-    operator T&() const { return *tt; }
-    T *operator&() { return tt; }
-private:
-    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
+  SwigValueWrapper() : pointer(0) { }
+  SwigValueWrapper& operator=(const T& t) { SwigMovePointer tmp(new T(t)); pointer = tmp; return *this; }
+  operator T&() const { return *pointer.ptr; }
+  T *operator&() { return pointer.ptr; }
 };
 
 template <typename T> T SwigValueInit() {
@@ -71,6 +78,12 @@ template <typename T> T SwigValueInit() {
 # endif
 #endif
 
+#ifndef SWIG_MSC_UNSUPPRESS_4505
+# if defined(_MSC_VER)
+#   pragma warning(disable : 4505) /* unreferenced local function has been removed */
+# endif 
+#endif
+
 #ifndef SWIGUNUSEDPARM
 # ifdef __cplusplus
 #   define SWIGUNUSEDPARM(p)
@@ -135,7 +148,7 @@ template <typename T> T SwigValueInit() {
 /* -----------------------------------------------------------------------------
  * swigrun.swg
  *
- * This file contains generic CAPI SWIG runtime support for pointer
+ * This file contains generic C API SWIG runtime support for pointer
  * type checking.
  * ----------------------------------------------------------------------------- */
 
@@ -154,11 +167,11 @@ template <typename T> T SwigValueInit() {
 
 /*
   You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
-  creating a static or dynamic library from the swig runtime code.
-  In 99.9% of the cases, swig just needs to declare them as 'static'.
+  creating a static or dynamic library from the SWIG runtime code.
+  In 99.9% of the cases, SWIG just needs to declare them as 'static'.
   
-  But only do this if is strictly necessary, ie, if you have problems
-  with your compiler or so.
+  But only do this if strictly necessary, ie, if you have problems
+  with your compiler or suchlike.
 */
 
 #ifndef SWIGRUNTIME
@@ -185,14 +198,14 @@ template <typename T> T SwigValueInit() {
 /* 
    Flags/methods for returning states.
    
-   The swig conversion methods, as ConvertPtr, return and integer 
+   The SWIG conversion methods, as ConvertPtr, return an integer 
    that tells if the conversion was successful or not. And if not,
    an error code can be returned (see swigerrors.swg for the codes).
    
    Use the following macros/flags to set or process the returning
    states.
    
-   In old swig versions, you usually write code as:
+   In old versions of SWIG, code such as the following was usually written:
 
      if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
        // success code
@@ -200,7 +213,7 @@ template <typename T> T SwigValueInit() {
        //fail code
      }
 
-   Now you can be more explicit as:
+   Now you can be more explicit:
 
     int res = SWIG_ConvertPtr(obj,vptr,ty.flags);
     if (SWIG_IsOK(res)) {
@@ -209,7 +222,7 @@ template <typename T> T SwigValueInit() {
       // fail code
     }
 
-   that seems to be the same, but now you can also do
+   which is the same really, but now you can also do
 
     Type *ptr;
     int res = SWIG_ConvertPtr(obj,(void **)(&ptr),ty.flags);
@@ -227,7 +240,7 @@ template <typename T> T SwigValueInit() {
     
    I.e., now SWIG_ConvertPtr can return new objects and you can
    identify the case and take care of the deallocation. Of course that
-   requires also to SWIG_ConvertPtr to return new result values, as
+   also requires SWIG_ConvertPtr to return new result values, such as
 
       int SWIG_ConvertPtr(obj, ptr,...) {         
         if (<obj is ok>) {                            
@@ -245,7 +258,7 @@ template <typename T> T SwigValueInit() {
 
    Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
    more explicit by returning SWIG_BADOBJ, SWIG_ERROR or any of the
-   swig errors code.
+   SWIG errors code.
 
    Finally, if the SWIG_CASTRANK_MODE is enabled, the result code
    allows to return the 'cast rank', for example, if you have this
@@ -259,9 +272,8 @@ template <typename T> T SwigValueInit() {
       fooi(1)   // cast rank '0'
 
    just use the SWIG_AddCast()/SWIG_CheckState()
+*/
 
-
- */
 #define SWIG_OK                    (0) 
 #define SWIG_ERROR                 (-1)
 #define SWIG_IsOK(r)               (r >= 0)
@@ -286,7 +298,6 @@ template <typename T> T SwigValueInit() {
 #define SWIG_DelTmpMask(r)         (SWIG_IsOK(r) ? (r & ~SWIG_TMPOBJMASK) : r)
 #define SWIG_IsTmpObj(r)           (SWIG_IsOK(r) && (r & SWIG_TMPOBJMASK))
 
-
 /* Cast-Rank Mode */
 #if defined(SWIG_CASTRANK_MODE)
 #  ifndef SWIG_TypeRank
@@ -309,8 +320,6 @@ SWIGINTERNINLINE int SWIG_CheckState(int r) {
 #endif
 
 
-
-
 #include <string.h>
 
 #ifdef __cplusplus
@@ -407,40 +416,58 @@ SWIG_TypeCompare(const char *nb, const char *tb) {
 }
 
 
-/* think of this as a c++ template<> or a scheme macro */
-#define SWIG_TypeCheck_Template(comparison, ty)         \
-  if (ty) {                                             \
-    swig_cast_info *iter = ty->cast;                    \
-    while (iter) {                                      \
-      if (comparison) {                                 \
-        if (iter == ty->cast) return iter;              \
-        /* Move iter to the top of the linked list */   \
-        iter->prev->next = iter->next;                  \
-        if (iter->next)                                 \
-          iter->next->prev = iter->prev;                \
-        iter->next = ty->cast;                          \
-        iter->prev = 0;                                 \
-        if (ty->cast) ty->cast->prev = iter;            \
-        ty->cast = iter;                                \
-        return iter;                                    \
-      }                                                 \
-      iter = iter->next;                                \
-    }                                                   \
-  }                                                     \
-  return 0
-
 /*
   Check the typename
 */
 SWIGRUNTIME swig_cast_info *
 SWIG_TypeCheck(const char *c, swig_type_info *ty) {
-  SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty);
+  if (ty) {
+    swig_cast_info *iter = ty->cast;
+    while (iter) {
+      if (strcmp(iter->type->name, c) == 0) {
+        if (iter == ty->cast)
+          return iter;
+        /* Move iter to the top of the linked list */
+        iter->prev->next = iter->next;
+        if (iter->next)
+          iter->next->prev = iter->prev;
+        iter->next = ty->cast;
+        iter->prev = 0;
+        if (ty->cast) ty->cast->prev = iter;
+        ty->cast = iter;
+        return iter;
+      }
+      iter = iter->next;
+    }
+  }
+  return 0;
 }
 
-/* Same as previous function, except strcmp is replaced with a pointer comparison */
+/* 
+  Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
+*/
 SWIGRUNTIME swig_cast_info *
-SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
-  SWIG_TypeCheck_Template(iter->type == from, into);
+SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *ty) {
+  if (ty) {
+    swig_cast_info *iter = ty->cast;
+    while (iter) {
+      if (iter->type == from) {
+        if (iter == ty->cast)
+          return iter;
+        /* Move iter to the top of the linked list */
+        iter->prev->next = iter->next;
+        if (iter->next)
+          iter->next->prev = iter->prev;
+        iter->next = ty->cast;
+        iter->prev = 0;
+        if (ty->cast) ty->cast->prev = iter;
+        ty->cast = iter;
+        return iter;
+      }
+      iter = iter->next;
+    }
+  }
+  return 0;
 }
 
 /*
@@ -703,9 +730,6 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
 #endif
 
 /* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
  * luarun.swg
  *
  * This file contains the runtime support for Lua modules
@@ -722,6 +746,62 @@ extern "C" {
 #include <stdlib.h>  /* for malloc */
 #include <assert.h>  /* for a few sanity tests */
 
+/* -----------------------------------------------------------------------------
+ * Lua flavors
+ * ----------------------------------------------------------------------------- */
+
+#define SWIG_LUA_FLAVOR_LUA 1
+#define SWIG_LUA_FLAVOR_ELUA 2
+#define SWIG_LUA_FLAVOR_ELUAC 3
+
+#if !defined(SWIG_LUA_TARGET)
+# error SWIG_LUA_TARGET not defined
+#endif
+
+#if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC)
+#  define SWIG_LUA_CONSTTAB_INT(B, C) LSTRKEY(B), LNUMVAL(C)
+#  define SWIG_LUA_CONSTTAB_FLOAT(B, C) LSTRKEY(B), LNUMVAL(C)
+#  define SWIG_LUA_CONSTTAB_STRING(B, C) LSTRKEY(B), LSTRVAL(C)
+#  define SWIG_LUA_CONSTTAB_CHAR(B, C) LSTRKEY(B), LNUMVAL(C)
+#else /* SWIG_LUA_FLAVOR_LUA */
+#  define SWIG_LUA_CONSTTAB_INT(B, C) SWIG_LUA_INT, (char *)B, (long)C, 0, 0, 0
+#  define SWIG_LUA_CONSTTAB_FLOAT(B, C) SWIG_LUA_FLOAT, (char *)B, 0, (double)C, 0, 0
+#  define SWIG_LUA_CONSTTAB_STRING(B, C) SWIG_LUA_STRING, (char *)B, 0, 0, (void *)C, 0
+#  define SWIG_LUA_CONSTTAB_CHAR(B, C) SWIG_LUA_CHAR, (char *)B, (long)C, 0, 0, 0
+#endif
+
+#if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC)
+#  define LRO_STRVAL(v) {{.p = (char *) v}, LUA_TSTRING}
+#  define LSTRVAL LRO_STRVAL
+#endif
+
+/* -----------------------------------------------------------------------------
+ * compatibility defines
+ * ----------------------------------------------------------------------------- */
+
+/* History of Lua C API length functions:  In Lua 5.0 (and before?)
+   there was "lua_strlen".  In Lua 5.1, this was renamed "lua_objlen",
+   but a compatibility define of "lua_strlen" was added.  In Lua 5.2,
+   this function was again renamed, to "lua_rawlen" (to emphasize that
+   it doesn't call the "__len" metamethod), and the compatibility
+   define of lua_strlen was removed.  All SWIG uses have been updated
+   to "lua_rawlen", and we add our own defines of that here for older
+   versions of Lua.  */
+#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 501
+# define lua_rawlen lua_strlen
+#elif LUA_VERSION_NUM == 501
+# define lua_rawlen lua_objlen
+#endif
+
+
+/* lua_pushglobaltable is the recommended "future-proof" way to get
+   the global table for Lua 5.2 and later.  Here we define
+   lua_pushglobaltable ourselves for Lua versions before 5.2.  */
+#if !defined(LUA_VERSION_NUM) || LUA_VERSION_NUM < 502
+# define lua_pushglobaltable(L) lua_pushvalue(L, LUA_GLOBALSINDEX)
+#endif
+
+
 /* -----------------------------------------------------------------------------
  * global swig types
  * ----------------------------------------------------------------------------- */
@@ -783,7 +863,7 @@ typedef struct {
 /* this is the struct for wrapping arbitary packed binary data
 (currently it is only used for member function pointers)
 the data ordering is similar to swig_lua_userdata, but it is currently not possible
-to tell the two structures apart within Swig, other than by looking at the type
+to tell the two structures apart within SWIG, other than by looking at the type
 */
 typedef struct {
   swig_type_info   *type;
@@ -888,12 +968,24 @@ SWIGINTERN int SWIG_Lua_module_get(lua_State* L)
    lua_tostring(L,2));
 */
   /* get the metatable */
-  assert(lua_istable(L,1));  /* just in case */
+#if ((SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC))
+  assert(lua_isrotable(L,1)); /* just in case */
+#else
+  assert(lua_istable(L,1)); /* default Lua action */
+#endif
   lua_getmetatable(L,1);  /* get the metatable */
-  assert(lua_istable(L,-1));  /* just in case */
+#if ((SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC))
+  assert(lua_isrotable(L,-1));  /* just in case */
+#else
+  assert(lua_istable(L,-1));
+#endif
   SWIG_Lua_get_table(L,".get");  /* get the .get table */
   lua_remove(L,3);  /* remove metatable */
+#if ((SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC))
+  if (lua_isrotable(L,-1))
+#else
   if (lua_istable(L,-1))
+#endif
   {
     /* look for the key in the .get table */
     lua_pushvalue(L,2);  /* key */
@@ -908,7 +1000,7 @@ SWIGINTERN int SWIG_Lua_module_get(lua_State* L)
   }
   lua_pop(L,1);  /* remove the .get */
   lua_pushnil(L);  /* return a nil */
-    return 1;
+  return 1;
 }
 
 /* the module.set method used for setting linked data */
@@ -920,12 +1012,24 @@ SWIGINTERN int SWIG_Lua_module_set(lua_State* L)
   (3) any for the new value
 */
   /* get the metatable */
-  assert(lua_istable(L,1));  /* just in case */
+#if ((SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC))
+  assert(lua_isrotable(L,1));  /* just in case */
+#else
+  assert(lua_istable(L,1)); /* default Lua action */
+#endif
   lua_getmetatable(L,1);  /* get the metatable */
-  assert(lua_istable(L,-1));  /* just in case */
+#if ((SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC))
+  assert(lua_isrotable(L,-1));  /* just in case */
+#else
+  assert(lua_istable(L,-1));
+#endif
   SWIG_Lua_get_table(L,".set");  /* get the .set table */
   lua_remove(L,4);  /* remove metatable */
+#if ((SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC))
+  if (lua_isrotable(L,-1))
+#else
   if (lua_istable(L,-1))
+#endif
   {
     /* look for the key in the .set table */
     lua_pushvalue(L,2);  /* key */
@@ -937,6 +1041,11 @@ SWIGINTERN int SWIG_Lua_module_set(lua_State* L)
       lua_call(L,1,0);
       return 0;
     }
+#if (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) 
+    else {
+      return 0; // Exits stoically if an invalid key is initialized.
+    }
+#endif
   }
   lua_settop(L,3);  /* reset back to start */
   /* we now have the table, key & new value, so just set directly */
@@ -944,7 +1053,8 @@ SWIGINTERN int SWIG_Lua_module_set(lua_State* L)
   return 0;
 }
 
-/* registering a module in lua */
+#if ((SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUA) && (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC))
+/* registering a module in lua. Pushes the module table on the stack. */
 SWIGINTERN void  SWIG_Lua_module_begin(lua_State* L,const char* name)
 {
   assert(lua_istable(L,-1));  /* just in case */
@@ -961,8 +1071,16 @@ SWIGINTERN void  SWIG_Lua_module_begin(lua_State* L,const char* name)
   lua_newtable(L);    /* the .set table */
   lua_rawset(L,-3);  /* add .set into metatable */
   lua_setmetatable(L,-2);  /* sets meta table in module */
+#ifdef SWIG_LUA_MODULE_GLOBAL
+  /* If requested, install the module directly into the global namespace. */
   lua_rawset(L,-3);        /* add module into parent */
   SWIG_Lua_get_table(L,name);   /* get the table back out */
+#else
+  /* Do not install the module table as global name. The stack top has
+     the module table with the name below. We pop the top and replace
+     the name with it. */
+  lua_replace(L,-2);
+#endif
 }
 
 /* ending the register */
@@ -990,6 +1108,7 @@ SWIGINTERN void SWIG_Lua_module_add_variable(lua_State* L,const char* name,lua_C
   }
   lua_pop(L,1);       /* tidy stack (remove meta) */
 }
+#endif
 
 /* adding a function module */
 SWIGINTERN void  SWIG_Lua_module_add_function(lua_State* L,const char* name,lua_CFunction fn)
@@ -1119,6 +1238,39 @@ SWIGINTERN int  SWIG_Lua_class_destruct(lua_State* L)
   return 0;
 }
 
+/* the class.__tostring method called by the interpreter and print */
+SWIGINTERN int  SWIG_Lua_class_tostring(lua_State* L)
+{
+/*  there should be 1 param passed in
+  (1) userdata (not the metatable) */
+  assert(lua_isuserdata(L,1));  /* just in case */
+  unsigned long userData = (unsigned long)lua_touserdata(L,1); /* get the userdata address for later */
+  lua_getmetatable(L,1);    /* get the meta table */
+  assert(lua_istable(L,-1));  /* just in case */
+  
+  lua_getfield(L, -1, ".type");
+  const char* className = lua_tostring(L, -1);
+  
+  char output[256];
+  sprintf(output, "<%s userdata: %lX>", className, userData);
+  
+  lua_pushstring(L, (const char*)output);
+  return 1;
+}
+
+/* to manually disown some userdata */
+SWIGINTERN int  SWIG_Lua_class_disown(lua_State* L)
+{
+/*  there should be 1 params passed in
+  (1) userdata (not the meta table) */
+  swig_lua_userdata* usr;
+  assert(lua_isuserdata(L,-1));  /* just in case */
+  usr=(swig_lua_userdata*)lua_touserdata(L,-1);  /* get it */
+  
+  usr->own = 0; /* clear our ownership */
+  return 0;
+}
+
 /* gets the swig class registry (or creates it) */
 SWIGINTERN void  SWIG_Lua_get_class_registry(lua_State* L)
 {
@@ -1244,11 +1396,15 @@ SWIGINTERN void  SWIG_Lua_class_register(lua_State* L,swig_lua_class* clss)
   /* add a table called ".fn" */
   lua_pushstring(L,".fn");
   lua_newtable(L);
+  /* add manual disown method */
+  SWIG_Lua_add_function(L,"__disown",SWIG_Lua_class_disown);
   lua_rawset(L,-3);
   /* add accessor fns for using the .get,.set&.fn */
   SWIG_Lua_add_function(L,"__index",SWIG_Lua_class_get);
   SWIG_Lua_add_function(L,"__newindex",SWIG_Lua_class_set);
   SWIG_Lua_add_function(L,"__gc",SWIG_Lua_class_destruct);
+  /* add tostring method for better output */
+  SWIG_Lua_add_function(L,"__tostring",SWIG_Lua_class_tostring);
   /* add it */
   lua_rawset(L,-3);  /* metatable into registry */
   lua_pop(L,1);      /* tidy stack (remove registry) */
@@ -1291,7 +1447,9 @@ SWIGRUNTIME void SWIG_Lua_NewPointerObj(lua_State* L,void* ptr,swig_type_info *t
   usr->ptr=ptr;  /* set the ptr */
   usr->type=type;
   usr->own=own;
+#if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC)
   _SWIG_Lua_AddMetatable(L,type); /* add metatable */
+#endif
 }
 
 /* takes a object from the lua stack & converts it into an object of the correct type
@@ -1368,7 +1526,7 @@ SWIGRUNTIME const char *SWIG_Lua_typename(lua_State *L, int tp)
   swig_lua_userdata* usr;
   if (lua_isuserdata(L,tp))
   {
-    usr=(swig_lua_userdata*)lua_touserdata(L,1);  /* get data */
+    usr=(swig_lua_userdata*)lua_touserdata(L,tp);  /* get data */
     if (usr && usr->type && usr->type->str)
       return usr->type->str;
     return "userdata (unknown type)";
@@ -1404,6 +1562,7 @@ SWIGRUNTIME int SWIG_Lua_equal(lua_State* L)
  * global variable support code: class/struct typemap functions
  * ----------------------------------------------------------------------------- */
 
+#if ((SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUA) && (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC))
 /* Install Constants */
 SWIGINTERN void
 SWIG_Lua_InstallConstants(lua_State* L, swig_lua_const_info constants[]) {
@@ -1445,6 +1604,7 @@ SWIG_Lua_InstallConstants(lua_State* L, swig_lua_const_info constants[]) {
     }
   }
 }
+#endif
 
 /* -----------------------------------------------------------------------------
  * executing lua code from within the wrapper
@@ -1501,7 +1661,6 @@ static swig_module_info swig_module = {swig_types, 4, 0, 0, 0, 0};
 
 #define SWIG_LUACODE   luaopen_ESL_luacode
 
-
 namespace swig {
 typedef struct{} LANGUAGE_OBJ;
 }
@@ -1510,17 +1669,25 @@ typedef struct{} LANGUAGE_OBJ;
 #include "esl.h"
 #include "esl_oop.h"
 
+
+SWIGINTERN int SWIG_lua_isnilstring(lua_State *L, int idx) {
+  int ret = lua_isstring(L, idx);
+  if (!ret)
+   ret = lua_isnil(L, idx);
+  return ret;
+}
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 static int _wrap_ESLevent_event_set(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   esl_event_t *arg2 = (esl_event_t *) 0 ;
   
-  SWIG_check_num_args("event",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("event",1,"ESLevent *");
-  if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("event",2,"esl_event_t *");
+  SWIG_check_num_args("ESLevent::event",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::event",1,"ESLevent *");
+  if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("ESLevent::event",2,"esl_event_t *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_event_set",1,SWIGTYPE_p_ESLevent);
@@ -1533,8 +1700,6 @@ static int _wrap_ESLevent_event_set(lua_State* L) {
   
   if (arg1) (arg1)->event = arg2;
   
-  SWIG_arg=0;
-  
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -1546,19 +1711,18 @@ fail:
 
 
 static int _wrap_ESLevent_event_get(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   esl_event_t *result = 0 ;
   
-  SWIG_check_num_args("event",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("event",1,"ESLevent *");
+  SWIG_check_num_args("ESLevent::event",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::event",1,"ESLevent *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_event_get",1,SWIGTYPE_p_ESLevent);
   }
   
   result = (esl_event_t *) ((arg1)->event);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_esl_event_t,0); SWIG_arg++; 
   return SWIG_arg;
   
@@ -1571,13 +1735,13 @@ fail:
 
 
 static int _wrap_ESLevent_serialized_string_set(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  SWIG_check_num_args("serialized_string",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("serialized_string",1,"ESLevent *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("serialized_string",2,"char *");
+  SWIG_check_num_args("ESLevent::serialized_string",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::serialized_string",1,"ESLevent *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLevent::serialized_string",2,"char *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_serialized_string_set",1,SWIGTYPE_p_ESLevent);
@@ -1585,7 +1749,7 @@ static int _wrap_ESLevent_serialized_string_set(lua_State* L) {
   
   arg2 = (char *)lua_tostring(L, 2);
   {
-    if (arg1->serialized_string) delete [] arg1->serialized_string;
+    delete [] arg1->serialized_string;
     if (arg2) {
       arg1->serialized_string = (char *) (new char[strlen((const char *)arg2)+1]);
       strcpy((char *)arg1->serialized_string, (const char *)arg2);
@@ -1593,7 +1757,6 @@ static int _wrap_ESLevent_serialized_string_set(lua_State* L) {
       arg1->serialized_string = 0;
     }
   }
-  SWIG_arg=0;
   
   return SWIG_arg;
   
@@ -1606,20 +1769,19 @@ fail:
 
 
 static int _wrap_ESLevent_serialized_string_get(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *result = 0 ;
   
-  SWIG_check_num_args("serialized_string",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("serialized_string",1,"ESLevent *");
+  SWIG_check_num_args("ESLevent::serialized_string",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::serialized_string",1,"ESLevent *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_serialized_string_get",1,SWIGTYPE_p_ESLevent);
   }
   
   result = (char *) ((arg1)->serialized_string);
-  SWIG_arg=0;
-  lua_pushstring(L,(const char*)result); SWIG_arg++;
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -1631,13 +1793,13 @@ fail:
 
 
 static int _wrap_ESLevent_mine_set(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   int arg2 ;
   
-  SWIG_check_num_args("mine",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("mine",1,"ESLevent *");
-  if(!lua_isnumber(L,2)) SWIG_fail_arg("mine",2,"int");
+  SWIG_check_num_args("ESLevent::mine",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::mine",1,"ESLevent *");
+  if(!lua_isnumber(L,2)) SWIG_fail_arg("ESLevent::mine",2,"int");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_mine_set",1,SWIGTYPE_p_ESLevent);
@@ -1646,8 +1808,6 @@ static int _wrap_ESLevent_mine_set(lua_State* L) {
   arg2 = (int)lua_tonumber(L, 2);
   if (arg1) (arg1)->mine = arg2;
   
-  SWIG_arg=0;
-  
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -1659,19 +1819,18 @@ fail:
 
 
 static int _wrap_ESLevent_mine_get(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   int result;
   
-  SWIG_check_num_args("mine",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("mine",1,"ESLevent *");
+  SWIG_check_num_args("ESLevent::mine",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::mine",1,"ESLevent *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_mine_get",1,SWIGTYPE_p_ESLevent);
   }
   
   result = (int) ((arg1)->mine);
-  SWIG_arg=0;
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
@@ -1684,20 +1843,19 @@ fail:
 
 
 static int _wrap_new_ESLevent__SWIG_0(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   char *arg1 = (char *) 0 ;
   char *arg2 = (char *) NULL ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("ESLevent",1,2)
-  if(!lua_isstring(L,1)) SWIG_fail_arg("ESLevent",1,"char const *");
-  if(lua_gettop(L)>=2 && !lua_isstring(L,2)) SWIG_fail_arg("ESLevent",2,"char const *");
+  SWIG_check_num_args("ESLevent::ESLevent",1,2)
+  if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("ESLevent::ESLevent",1,"char const *");
+  if(lua_gettop(L)>=2 && !SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLevent::ESLevent",2,"char const *");
   arg1 = (char *)lua_tostring(L, 1);
   if(lua_gettop(L)>=2){
     arg2 = (char *)lua_tostring(L, 2);
   }
   result = (ESLevent *)new ESLevent((char const *)arg1,(char const *)arg2);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -1710,14 +1868,14 @@ fail:
 
 
 static int _wrap_new_ESLevent__SWIG_1(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   esl_event_t *arg1 = (esl_event_t *) 0 ;
   int arg2 = (int) 0 ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("ESLevent",1,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent",1,"esl_event_t *");
-  if(lua_gettop(L)>=2 && !lua_isnumber(L,2)) SWIG_fail_arg("ESLevent",2,"int");
+  SWIG_check_num_args("ESLevent::ESLevent",1,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::ESLevent",1,"esl_event_t *");
+  if(lua_gettop(L)>=2 && !lua_isnumber(L,2)) SWIG_fail_arg("ESLevent::ESLevent",2,"int");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_esl_event_t,0))){
     SWIG_fail_ptr("new_ESLevent",1,SWIGTYPE_p_esl_event_t);
@@ -1727,7 +1885,6 @@ static int _wrap_new_ESLevent__SWIG_1(lua_State* L) {
     arg2 = (int)lua_tonumber(L, 2);
   }
   result = (ESLevent *)new ESLevent(arg1,arg2);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -1740,19 +1897,18 @@ fail:
 
 
 static int _wrap_new_ESLevent__SWIG_2(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("ESLevent",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent",1,"ESLevent *");
+  SWIG_check_num_args("ESLevent::ESLevent",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::ESLevent",1,"ESLevent *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("new_ESLevent",1,SWIGTYPE_p_ESLevent);
   }
   
   result = (ESLevent *)new ESLevent(arg1);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -1810,14 +1966,14 @@ static int _wrap_new_ESLevent(lua_State* L) {
   if ((argc >= 1) && (argc <= 2)) {
     int _v;
     {
-      _v = lua_isstring(L,argv[0]);
+      _v = SWIG_lua_isnilstring(L,argv[0]);
     }
     if (_v) {
       if (argc <= 1) {
         return _wrap_new_ESLevent__SWIG_0(L);
       }
       {
-        _v = lua_isstring(L,argv[1]);
+        _v = SWIG_lua_isnilstring(L,argv[1]);
       }
       if (_v) {
         return _wrap_new_ESLevent__SWIG_0(L);
@@ -1825,45 +1981,24 @@ static int _wrap_new_ESLevent(lua_State* L) {
     }
   }
   
-  lua_pushstring(L,"No matching function for overloaded 'new_ESLevent'");
+  lua_pushstring(L,"Wrong arguments for overloaded function 'new_ESLevent'\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ESLevent::ESLevent(char const *,char const *)\n"
+    "    ESLevent::ESLevent(esl_event_t *,int)\n"
+    "    ESLevent::ESLevent(ESLevent *)\n");
   lua_error(L);return 0;
 }
 
 
-static int _wrap_delete_ESLevent(lua_State* L) {
-  int SWIG_arg = -1;
-  ESLevent *arg1 = (ESLevent *) 0 ;
-  
-  SWIG_check_num_args("ESLevent",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent",1,"ESLevent *");
-  
-  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,SWIG_POINTER_DISOWN))){
-    SWIG_fail_ptr("delete_ESLevent",1,SWIGTYPE_p_ESLevent);
-  }
-  
-  delete arg1;
-  
-  SWIG_arg=0;
-  
-  return SWIG_arg;
-  
-  if(0) SWIG_fail;
-  
-fail:
-  lua_error(L);
-  return SWIG_arg;
-}
-
-
 static int _wrap_ESLevent_serialize(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *arg2 = (char *) NULL ;
   char *result = 0 ;
   
-  SWIG_check_num_args("serialize",1,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("serialize",1,"ESLevent *");
-  if(lua_gettop(L)>=2 && !lua_isstring(L,2)) SWIG_fail_arg("serialize",2,"char const *");
+  SWIG_check_num_args("ESLevent::serialize",1,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::serialize",1,"ESLevent *");
+  if(lua_gettop(L)>=2 && !SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLevent::serialize",2,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_serialize",1,SWIGTYPE_p_ESLevent);
@@ -1873,8 +2008,7 @@ static int _wrap_ESLevent_serialize(lua_State* L) {
     arg2 = (char *)lua_tostring(L, 2);
   }
   result = (char *)(arg1)->serialize((char const *)arg2);
-  SWIG_arg=0;
-  lua_pushstring(L,(const char*)result); SWIG_arg++;
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -1886,15 +2020,15 @@ fail:
 
 
 static int _wrap_ESLevent_setPriority(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   esl_priority_t arg2 = (esl_priority_t) ESL_PRIORITY_NORMAL ;
-  bool result;
   esl_priority_t *argp2 ;
+  bool result;
   
-  SWIG_check_num_args("setPriority",1,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setPriority",1,"ESLevent *");
-  if(lua_gettop(L)>=2 && !lua_isuserdata(L,2)) SWIG_fail_arg("setPriority",2,"esl_priority_t");
+  SWIG_check_num_args("ESLevent::setPriority",1,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::setPriority",1,"ESLevent *");
+  if(lua_gettop(L)>=2 && !lua_isuserdata(L,2)) SWIG_fail_arg("ESLevent::setPriority",2,"esl_priority_t");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_setPriority",1,SWIGTYPE_p_ESLevent);
@@ -1907,8 +2041,7 @@ static int _wrap_ESLevent_setPriority(lua_State* L) {
     arg2 = *argp2;
   }
   result = (bool)(arg1)->setPriority(arg2);
-  SWIG_arg=0;
-  lua_pushboolean(L,(int)(result==true)); SWIG_arg++;
+  lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -1920,16 +2053,16 @@ fail:
 
 
 static int _wrap_ESLevent_getHeader(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *arg2 = (char *) 0 ;
   int arg3 = (int) -1 ;
   char *result = 0 ;
   
-  SWIG_check_num_args("getHeader",2,3)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("getHeader",1,"ESLevent *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("getHeader",2,"char const *");
-  if(lua_gettop(L)>=3 && !lua_isnumber(L,3)) SWIG_fail_arg("getHeader",3,"int");
+  SWIG_check_num_args("ESLevent::getHeader",2,3)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::getHeader",1,"ESLevent *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLevent::getHeader",2,"char const *");
+  if(lua_gettop(L)>=3 && !lua_isnumber(L,3)) SWIG_fail_arg("ESLevent::getHeader",3,"int");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_getHeader",1,SWIGTYPE_p_ESLevent);
@@ -1940,8 +2073,7 @@ static int _wrap_ESLevent_getHeader(lua_State* L) {
     arg3 = (int)lua_tonumber(L, 3);
   }
   result = (char *)(arg1)->getHeader((char const *)arg2,arg3);
-  SWIG_arg=0;
-  lua_pushstring(L,(const char*)result); SWIG_arg++;
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -1953,20 +2085,19 @@ fail:
 
 
 static int _wrap_ESLevent_getBody(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *result = 0 ;
   
-  SWIG_check_num_args("getBody",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("getBody",1,"ESLevent *");
+  SWIG_check_num_args("ESLevent::getBody",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::getBody",1,"ESLevent *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_getBody",1,SWIGTYPE_p_ESLevent);
   }
   
   result = (char *)(arg1)->getBody();
-  SWIG_arg=0;
-  lua_pushstring(L,(const char*)result); SWIG_arg++;
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -1978,20 +2109,19 @@ fail:
 
 
 static int _wrap_ESLevent_getType(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *result = 0 ;
   
-  SWIG_check_num_args("getType",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("getType",1,"ESLevent *");
+  SWIG_check_num_args("ESLevent::getType",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::getType",1,"ESLevent *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_getType",1,SWIGTYPE_p_ESLevent);
   }
   
   result = (char *)(arg1)->getType();
-  SWIG_arg=0;
-  lua_pushstring(L,(const char*)result); SWIG_arg++;
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -2003,14 +2133,14 @@ fail:
 
 
 static int _wrap_ESLevent_addBody(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *arg2 = (char *) 0 ;
   bool result;
   
-  SWIG_check_num_args("addBody",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("addBody",1,"ESLevent *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("addBody",2,"char const *");
+  SWIG_check_num_args("ESLevent::addBody",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::addBody",1,"ESLevent *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLevent::addBody",2,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_addBody",1,SWIGTYPE_p_ESLevent);
@@ -2018,8 +2148,7 @@ static int _wrap_ESLevent_addBody(lua_State* L) {
   
   arg2 = (char *)lua_tostring(L, 2);
   result = (bool)(arg1)->addBody((char const *)arg2);
-  SWIG_arg=0;
-  lua_pushboolean(L,(int)(result==true)); SWIG_arg++;
+  lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -2031,16 +2160,16 @@ fail:
 
 
 static int _wrap_ESLevent_addHeader(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   bool result;
   
-  SWIG_check_num_args("addHeader",3,3)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("addHeader",1,"ESLevent *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("addHeader",2,"char const *");
-  if(!lua_isstring(L,3)) SWIG_fail_arg("addHeader",3,"char const *");
+  SWIG_check_num_args("ESLevent::addHeader",3,3)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::addHeader",1,"ESLevent *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLevent::addHeader",2,"char const *");
+  if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLevent::addHeader",3,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_addHeader",1,SWIGTYPE_p_ESLevent);
@@ -2049,8 +2178,7 @@ static int _wrap_ESLevent_addHeader(lua_State* L) {
   arg2 = (char *)lua_tostring(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   result = (bool)(arg1)->addHeader((char const *)arg2,(char const *)arg3);
-  SWIG_arg=0;
-  lua_pushboolean(L,(int)(result==true)); SWIG_arg++;
+  lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -2062,16 +2190,16 @@ fail:
 
 
 static int _wrap_ESLevent_pushHeader(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   bool result;
   
-  SWIG_check_num_args("pushHeader",3,3)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("pushHeader",1,"ESLevent *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("pushHeader",2,"char const *");
-  if(!lua_isstring(L,3)) SWIG_fail_arg("pushHeader",3,"char const *");
+  SWIG_check_num_args("ESLevent::pushHeader",3,3)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::pushHeader",1,"ESLevent *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLevent::pushHeader",2,"char const *");
+  if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLevent::pushHeader",3,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_pushHeader",1,SWIGTYPE_p_ESLevent);
@@ -2080,8 +2208,7 @@ static int _wrap_ESLevent_pushHeader(lua_State* L) {
   arg2 = (char *)lua_tostring(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   result = (bool)(arg1)->pushHeader((char const *)arg2,(char const *)arg3);
-  SWIG_arg=0;
-  lua_pushboolean(L,(int)(result==true)); SWIG_arg++;
+  lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -2093,16 +2220,16 @@ fail:
 
 
 static int _wrap_ESLevent_unshiftHeader(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   bool result;
   
-  SWIG_check_num_args("unshiftHeader",3,3)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("unshiftHeader",1,"ESLevent *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("unshiftHeader",2,"char const *");
-  if(!lua_isstring(L,3)) SWIG_fail_arg("unshiftHeader",3,"char const *");
+  SWIG_check_num_args("ESLevent::unshiftHeader",3,3)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::unshiftHeader",1,"ESLevent *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLevent::unshiftHeader",2,"char const *");
+  if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLevent::unshiftHeader",3,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_unshiftHeader",1,SWIGTYPE_p_ESLevent);
@@ -2111,8 +2238,7 @@ static int _wrap_ESLevent_unshiftHeader(lua_State* L) {
   arg2 = (char *)lua_tostring(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   result = (bool)(arg1)->unshiftHeader((char const *)arg2,(char const *)arg3);
-  SWIG_arg=0;
-  lua_pushboolean(L,(int)(result==true)); SWIG_arg++;
+  lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -2124,14 +2250,14 @@ fail:
 
 
 static int _wrap_ESLevent_delHeader(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *arg2 = (char *) 0 ;
   bool result;
   
-  SWIG_check_num_args("delHeader",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("delHeader",1,"ESLevent *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("delHeader",2,"char const *");
+  SWIG_check_num_args("ESLevent::delHeader",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::delHeader",1,"ESLevent *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLevent::delHeader",2,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_delHeader",1,SWIGTYPE_p_ESLevent);
@@ -2139,8 +2265,7 @@ static int _wrap_ESLevent_delHeader(lua_State* L) {
   
   arg2 = (char *)lua_tostring(L, 2);
   result = (bool)(arg1)->delHeader((char const *)arg2);
-  SWIG_arg=0;
-  lua_pushboolean(L,(int)(result==true)); SWIG_arg++;
+  lua_pushboolean(L,(int)(result!=0)); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -2152,20 +2277,19 @@ fail:
 
 
 static int _wrap_ESLevent_firstHeader(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *result = 0 ;
   
-  SWIG_check_num_args("firstHeader",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("firstHeader",1,"ESLevent *");
+  SWIG_check_num_args("ESLevent::firstHeader",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::firstHeader",1,"ESLevent *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_firstHeader",1,SWIGTYPE_p_ESLevent);
   }
   
   result = (char *)(arg1)->firstHeader();
-  SWIG_arg=0;
-  lua_pushstring(L,(const char*)result); SWIG_arg++;
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -2177,20 +2301,19 @@ fail:
 
 
 static int _wrap_ESLevent_nextHeader(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLevent *arg1 = (ESLevent *) 0 ;
   char *result = 0 ;
   
-  SWIG_check_num_args("nextHeader",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("nextHeader",1,"ESLevent *");
+  SWIG_check_num_args("ESLevent::nextHeader",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLevent::nextHeader",1,"ESLevent *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLevent,0))){
     SWIG_fail_ptr("ESLevent_nextHeader",1,SWIGTYPE_p_ESLevent);
   }
   
   result = (char *)(arg1)->nextHeader();
-  SWIG_arg=0;
-  lua_pushstring(L,(const char*)result); SWIG_arg++;
+  lua_pushstring(L,(const char *)result); SWIG_arg++;
   return SWIG_arg;
   
   if(0) SWIG_fail;
@@ -2231,24 +2354,23 @@ static const char *swig_ESLevent_base_names[] = {0};
 static swig_lua_class _wrap_class_ESLevent = { "ESLevent", &SWIGTYPE_p_ESLevent,_wrap_new_ESLevent, swig_delete_ESLevent, swig_ESLevent_methods, swig_ESLevent_attributes, swig_ESLevent_bases, swig_ESLevent_base_names };
 
 static int _wrap_new_ESLconnection__SWIG_0(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   char *arg1 = (char *) 0 ;
   int arg2 ;
   char *arg3 = (char *) 0 ;
   char *arg4 = (char *) 0 ;
   ESLconnection *result = 0 ;
   
-  SWIG_check_num_args("ESLconnection",4,4)
-  if(!lua_isstring(L,1)) SWIG_fail_arg("ESLconnection",1,"char const *");
-  if(!lua_isnumber(L,2)) SWIG_fail_arg("ESLconnection",2,"int const");
-  if(!lua_isstring(L,3)) SWIG_fail_arg("ESLconnection",3,"char const *");
-  if(!lua_isstring(L,4)) SWIG_fail_arg("ESLconnection",4,"char const *");
+  SWIG_check_num_args("ESLconnection::ESLconnection",4,4)
+  if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("ESLconnection::ESLconnection",1,"char const *");
+  if(!lua_isnumber(L,2)) SWIG_fail_arg("ESLconnection::ESLconnection",2,"int const");
+  if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::ESLconnection",3,"char const *");
+  if(!SWIG_lua_isnilstring(L,4)) SWIG_fail_arg("ESLconnection::ESLconnection",4,"char const *");
   arg1 = (char *)lua_tostring(L, 1);
   arg2 = (int const)lua_tonumber(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   arg4 = (char *)lua_tostring(L, 4);
   result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3,(char const *)arg4);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLconnection,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2261,21 +2383,20 @@ fail:
 
 
 static int _wrap_new_ESLconnection__SWIG_1(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   char *arg1 = (char *) 0 ;
   int arg2 ;
   char *arg3 = (char *) 0 ;
   ESLconnection *result = 0 ;
   
-  SWIG_check_num_args("ESLconnection",3,3)
-  if(!lua_isstring(L,1)) SWIG_fail_arg("ESLconnection",1,"char const *");
-  if(!lua_isnumber(L,2)) SWIG_fail_arg("ESLconnection",2,"int const");
-  if(!lua_isstring(L,3)) SWIG_fail_arg("ESLconnection",3,"char const *");
+  SWIG_check_num_args("ESLconnection::ESLconnection",3,3)
+  if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("ESLconnection::ESLconnection",1,"char const *");
+  if(!lua_isnumber(L,2)) SWIG_fail_arg("ESLconnection::ESLconnection",2,"int const");
+  if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::ESLconnection",3,"char const *");
   arg1 = (char *)lua_tostring(L, 1);
   arg2 = (int const)lua_tonumber(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   result = (ESLconnection *)new ESLconnection((char const *)arg1,arg2,(char const *)arg3);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLconnection,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2288,24 +2409,23 @@ fail:
 
 
 static int _wrap_new_ESLconnection__SWIG_2(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   char *arg1 = (char *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   char *arg4 = (char *) 0 ;
   ESLconnection *result = 0 ;
   
-  SWIG_check_num_args("ESLconnection",4,4)
-  if(!lua_isstring(L,1)) SWIG_fail_arg("ESLconnection",1,"char const *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("ESLconnection",2,"char const *");
-  if(!lua_isstring(L,3)) SWIG_fail_arg("ESLconnection",3,"char const *");
-  if(!lua_isstring(L,4)) SWIG_fail_arg("ESLconnection",4,"char const *");
+  SWIG_check_num_args("ESLconnection::ESLconnection",4,4)
+  if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("ESLconnection::ESLconnection",1,"char const *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::ESLconnection",2,"char const *");
+  if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::ESLconnection",3,"char const *");
+  if(!SWIG_lua_isnilstring(L,4)) SWIG_fail_arg("ESLconnection::ESLconnection",4,"char const *");
   arg1 = (char *)lua_tostring(L, 1);
   arg2 = (char *)lua_tostring(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   arg4 = (char *)lua_tostring(L, 4);
   result = (ESLconnection *)new ESLconnection((char const *)arg1,(char const *)arg2,(char const *)arg3,(char const *)arg4);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLconnection,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2318,21 +2438,20 @@ fail:
 
 
 static int _wrap_new_ESLconnection__SWIG_3(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   char *arg1 = (char *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   ESLconnection *result = 0 ;
   
-  SWIG_check_num_args("ESLconnection",3,3)
-  if(!lua_isstring(L,1)) SWIG_fail_arg("ESLconnection",1,"char const *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("ESLconnection",2,"char const *");
-  if(!lua_isstring(L,3)) SWIG_fail_arg("ESLconnection",3,"char const *");
+  SWIG_check_num_args("ESLconnection::ESLconnection",3,3)
+  if(!SWIG_lua_isnilstring(L,1)) SWIG_fail_arg("ESLconnection::ESLconnection",1,"char const *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::ESLconnection",2,"char const *");
+  if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::ESLconnection",3,"char const *");
   arg1 = (char *)lua_tostring(L, 1);
   arg2 = (char *)lua_tostring(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   result = (ESLconnection *)new ESLconnection((char const *)arg1,(char const *)arg2,(char const *)arg3);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLconnection,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2345,15 +2464,14 @@ fail:
 
 
 static int _wrap_new_ESLconnection__SWIG_4(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   int arg1 ;
   ESLconnection *result = 0 ;
   
-  SWIG_check_num_args("ESLconnection",1,1)
-  if(!lua_isnumber(L,1)) SWIG_fail_arg("ESLconnection",1,"int");
+  SWIG_check_num_args("ESLconnection::ESLconnection",1,1)
+  if(!lua_isnumber(L,1)) SWIG_fail_arg("ESLconnection::ESLconnection",1,"int");
   arg1 = (int)lua_tonumber(L, 1);
   result = (ESLconnection *)new ESLconnection(arg1);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLconnection,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2384,7 +2502,7 @@ static int _wrap_new_ESLconnection(lua_State* L) {
   if (argc == 3) {
     int _v;
     {
-      _v = lua_isstring(L,argv[0]);
+      _v = SWIG_lua_isnilstring(L,argv[0]);
     }
     if (_v) {
       {
@@ -2392,7 +2510,7 @@ static int _wrap_new_ESLconnection(lua_State* L) {
       }
       if (_v) {
         {
-          _v = lua_isstring(L,argv[2]);
+          _v = SWIG_lua_isnilstring(L,argv[2]);
         }
         if (_v) {
           return _wrap_new_ESLconnection__SWIG_1(L);
@@ -2403,15 +2521,15 @@ static int _wrap_new_ESLconnection(lua_State* L) {
   if (argc == 3) {
     int _v;
     {
-      _v = lua_isstring(L,argv[0]);
+      _v = SWIG_lua_isnilstring(L,argv[0]);
     }
     if (_v) {
       {
-        _v = lua_isstring(L,argv[1]);
+        _v = SWIG_lua_isnilstring(L,argv[1]);
       }
       if (_v) {
         {
-          _v = lua_isstring(L,argv[2]);
+          _v = SWIG_lua_isnilstring(L,argv[2]);
         }
         if (_v) {
           return _wrap_new_ESLconnection__SWIG_3(L);
@@ -2422,7 +2540,7 @@ static int _wrap_new_ESLconnection(lua_State* L) {
   if (argc == 4) {
     int _v;
     {
-      _v = lua_isstring(L,argv[0]);
+      _v = SWIG_lua_isnilstring(L,argv[0]);
     }
     if (_v) {
       {
@@ -2430,11 +2548,11 @@ static int _wrap_new_ESLconnection(lua_State* L) {
       }
       if (_v) {
         {
-          _v = lua_isstring(L,argv[2]);
+          _v = SWIG_lua_isnilstring(L,argv[2]);
         }
         if (_v) {
           {
-            _v = lua_isstring(L,argv[3]);
+            _v = SWIG_lua_isnilstring(L,argv[3]);
           }
           if (_v) {
             return _wrap_new_ESLconnection__SWIG_0(L);
@@ -2446,19 +2564,19 @@ static int _wrap_new_ESLconnection(lua_State* L) {
   if (argc == 4) {
     int _v;
     {
-      _v = lua_isstring(L,argv[0]);
+      _v = SWIG_lua_isnilstring(L,argv[0]);
     }
     if (_v) {
       {
-        _v = lua_isstring(L,argv[1]);
+        _v = SWIG_lua_isnilstring(L,argv[1]);
       }
       if (_v) {
         {
-          _v = lua_isstring(L,argv[2]);
+          _v = SWIG_lua_isnilstring(L,argv[2]);
         }
         if (_v) {
           {
-            _v = lua_isstring(L,argv[3]);
+            _v = SWIG_lua_isnilstring(L,argv[3]);
           }
           if (_v) {
             return _wrap_new_ESLconnection__SWIG_2(L);
@@ -2468,50 +2586,30 @@ static int _wrap_new_ESLconnection(lua_State* L) {
     }
   }
   
-  lua_pushstring(L,"No matching function for overloaded 'new_ESLconnection'");
+  lua_pushstring(L,"Wrong arguments for overloaded function 'new_ESLconnection'\n"
+    "  Possible C/C++ prototypes are:\n"
+    "    ESLconnection::ESLconnection(char const *,int const,char const *,char const *)\n"
+    "    ESLconnection::ESLconnection(char const *,int const,char const *)\n"
+    "    ESLconnection::ESLconnection(char const *,char const *,char const *,char const *)\n"
+    "    ESLconnection::ESLconnection(char const *,char const *,char const *)\n"
+    "    ESLconnection::ESLconnection(int)\n");
   lua_error(L);return 0;
 }
 
 
-static int _wrap_delete_ESLconnection(lua_State* L) {
-  int SWIG_arg = -1;
-  ESLconnection *arg1 = (ESLconnection *) 0 ;
-  
-  SWIG_check_num_args("ESLconnection",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection",1,"ESLconnection *");
-  
-  if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,SWIG_POINTER_DISOWN))){
-    SWIG_fail_ptr("delete_ESLconnection",1,SWIGTYPE_p_ESLconnection);
-  }
-  
-  delete arg1;
-  
-  SWIG_arg=0;
-  
-  return SWIG_arg;
-  
-  if(0) SWIG_fail;
-  
-fail:
-  lua_error(L);
-  return SWIG_arg;
-}
-
-
 static int _wrap_ESLconnection_socketDescriptor(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   int result;
   
-  SWIG_check_num_args("socketDescriptor",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("socketDescriptor",1,"ESLconnection *");
+  SWIG_check_num_args("ESLconnection::socketDescriptor",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::socketDescriptor",1,"ESLconnection *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_socketDescriptor",1,SWIGTYPE_p_ESLconnection);
   }
   
   result = (int)(arg1)->socketDescriptor();
-  SWIG_arg=0;
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
@@ -2524,19 +2622,18 @@ fail:
 
 
 static int _wrap_ESLconnection_connected(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   int result;
   
-  SWIG_check_num_args("connected",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("connected",1,"ESLconnection *");
+  SWIG_check_num_args("ESLconnection::connected",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::connected",1,"ESLconnection *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_connected",1,SWIGTYPE_p_ESLconnection);
   }
   
   result = (int)(arg1)->connected();
-  SWIG_arg=0;
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
@@ -2549,19 +2646,18 @@ fail:
 
 
 static int _wrap_ESLconnection_getInfo(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("getInfo",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("getInfo",1,"ESLconnection *");
+  SWIG_check_num_args("ESLconnection::getInfo",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::getInfo",1,"ESLconnection *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_getInfo",1,SWIGTYPE_p_ESLconnection);
   }
   
   result = (ESLevent *)(arg1)->getInfo();
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2574,14 +2670,14 @@ fail:
 
 
 static int _wrap_ESLconnection_send(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  SWIG_check_num_args("send",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("send",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("send",2,"char const *");
+  SWIG_check_num_args("ESLconnection::send",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::send",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::send",2,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_send",1,SWIGTYPE_p_ESLconnection);
@@ -2589,7 +2685,6 @@ static int _wrap_ESLconnection_send(lua_State* L) {
   
   arg2 = (char *)lua_tostring(L, 2);
   result = (int)(arg1)->send((char const *)arg2);
-  SWIG_arg=0;
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
@@ -2602,14 +2697,14 @@ fail:
 
 
 static int _wrap_ESLconnection_sendRecv(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("sendRecv",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("sendRecv",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("sendRecv",2,"char const *");
+  SWIG_check_num_args("ESLconnection::sendRecv",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::sendRecv",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::sendRecv",2,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_sendRecv",1,SWIGTYPE_p_ESLconnection);
@@ -2617,7 +2712,6 @@ static int _wrap_ESLconnection_sendRecv(lua_State* L) {
   
   arg2 = (char *)lua_tostring(L, 2);
   result = (ESLevent *)(arg1)->sendRecv((char const *)arg2);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2630,16 +2724,16 @@ fail:
 
 
 static int _wrap_ESLconnection_api(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) NULL ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("api",2,3)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("api",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("api",2,"char const *");
-  if(lua_gettop(L)>=3 && !lua_isstring(L,3)) SWIG_fail_arg("api",3,"char const *");
+  SWIG_check_num_args("ESLconnection::api",2,3)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::api",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::api",2,"char const *");
+  if(lua_gettop(L)>=3 && !SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::api",3,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_api",1,SWIGTYPE_p_ESLconnection);
@@ -2650,7 +2744,6 @@ static int _wrap_ESLconnection_api(lua_State* L) {
     arg3 = (char *)lua_tostring(L, 3);
   }
   result = (ESLevent *)(arg1)->api((char const *)arg2,(char const *)arg3);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2663,18 +2756,18 @@ fail:
 
 
 static int _wrap_ESLconnection_bgapi(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) NULL ;
   char *arg4 = (char *) NULL ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("bgapi",2,4)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("bgapi",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("bgapi",2,"char const *");
-  if(lua_gettop(L)>=3 && !lua_isstring(L,3)) SWIG_fail_arg("bgapi",3,"char const *");
-  if(lua_gettop(L)>=4 && !lua_isstring(L,4)) SWIG_fail_arg("bgapi",4,"char const *");
+  SWIG_check_num_args("ESLconnection::bgapi",2,4)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::bgapi",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::bgapi",2,"char const *");
+  if(lua_gettop(L)>=3 && !SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::bgapi",3,"char const *");
+  if(lua_gettop(L)>=4 && !SWIG_lua_isnilstring(L,4)) SWIG_fail_arg("ESLconnection::bgapi",4,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_bgapi",1,SWIGTYPE_p_ESLconnection);
@@ -2688,7 +2781,6 @@ static int _wrap_ESLconnection_bgapi(lua_State* L) {
     arg4 = (char *)lua_tostring(L, 4);
   }
   result = (ESLevent *)(arg1)->bgapi((char const *)arg2,(char const *)arg3,(char const *)arg4);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2701,14 +2793,14 @@ fail:
 
 
 static int _wrap_ESLconnection_sendEvent(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   ESLevent *arg2 = (ESLevent *) 0 ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("sendEvent",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("sendEvent",1,"ESLconnection *");
-  if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("sendEvent",2,"ESLevent *");
+  SWIG_check_num_args("ESLconnection::sendEvent",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::sendEvent",1,"ESLconnection *");
+  if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("ESLconnection::sendEvent",2,"ESLevent *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_sendEvent",1,SWIGTYPE_p_ESLconnection);
@@ -2720,7 +2812,6 @@ static int _wrap_ESLconnection_sendEvent(lua_State* L) {
   }
   
   result = (ESLevent *)(arg1)->sendEvent(arg2);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2733,16 +2824,16 @@ fail:
 
 
 static int _wrap_ESLconnection_sendMSG(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   ESLevent *arg2 = (ESLevent *) 0 ;
   char *arg3 = (char *) NULL ;
   int result;
   
-  SWIG_check_num_args("sendMSG",2,3)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("sendMSG",1,"ESLconnection *");
-  if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("sendMSG",2,"ESLevent *");
-  if(lua_gettop(L)>=3 && !lua_isstring(L,3)) SWIG_fail_arg("sendMSG",3,"char const *");
+  SWIG_check_num_args("ESLconnection::sendMSG",2,3)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::sendMSG",1,"ESLconnection *");
+  if(!SWIG_isptrtype(L,2)) SWIG_fail_arg("ESLconnection::sendMSG",2,"ESLevent *");
+  if(lua_gettop(L)>=3 && !SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::sendMSG",3,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_sendMSG",1,SWIGTYPE_p_ESLconnection);
@@ -2757,7 +2848,6 @@ static int _wrap_ESLconnection_sendMSG(lua_State* L) {
     arg3 = (char *)lua_tostring(L, 3);
   }
   result = (int)(arg1)->sendMSG(arg2,(char const *)arg3);
-  SWIG_arg=0;
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
@@ -2770,19 +2860,18 @@ fail:
 
 
 static int _wrap_ESLconnection_recvEvent(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("recvEvent",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("recvEvent",1,"ESLconnection *");
+  SWIG_check_num_args("ESLconnection::recvEvent",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::recvEvent",1,"ESLconnection *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_recvEvent",1,SWIGTYPE_p_ESLconnection);
   }
   
   result = (ESLevent *)(arg1)->recvEvent();
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2795,14 +2884,14 @@ fail:
 
 
 static int _wrap_ESLconnection_recvEventTimed(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   int arg2 ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("recvEventTimed",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("recvEventTimed",1,"ESLconnection *");
-  if(!lua_isnumber(L,2)) SWIG_fail_arg("recvEventTimed",2,"int");
+  SWIG_check_num_args("ESLconnection::recvEventTimed",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::recvEventTimed",1,"ESLconnection *");
+  if(!lua_isnumber(L,2)) SWIG_fail_arg("ESLconnection::recvEventTimed",2,"int");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_recvEventTimed",1,SWIGTYPE_p_ESLconnection);
@@ -2810,7 +2899,6 @@ static int _wrap_ESLconnection_recvEventTimed(lua_State* L) {
   
   arg2 = (int)lua_tonumber(L, 2);
   result = (ESLevent *)(arg1)->recvEventTimed(arg2);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2823,16 +2911,16 @@ fail:
 
 
 static int _wrap_ESLconnection_filter(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("filter",3,3)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("filter",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("filter",2,"char const *");
-  if(!lua_isstring(L,3)) SWIG_fail_arg("filter",3,"char const *");
+  SWIG_check_num_args("ESLconnection::filter",3,3)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::filter",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::filter",2,"char const *");
+  if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::filter",3,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_filter",1,SWIGTYPE_p_ESLconnection);
@@ -2841,7 +2929,6 @@ static int _wrap_ESLconnection_filter(lua_State* L) {
   arg2 = (char *)lua_tostring(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   result = (ESLevent *)(arg1)->filter((char const *)arg2,(char const *)arg3);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2854,16 +2941,16 @@ fail:
 
 
 static int _wrap_ESLconnection_events(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  SWIG_check_num_args("events",3,3)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("events",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("events",2,"char const *");
-  if(!lua_isstring(L,3)) SWIG_fail_arg("events",3,"char const *");
+  SWIG_check_num_args("ESLconnection::events",3,3)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::events",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::events",2,"char const *");
+  if(!SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::events",3,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_events",1,SWIGTYPE_p_ESLconnection);
@@ -2872,7 +2959,6 @@ static int _wrap_ESLconnection_events(lua_State* L) {
   arg2 = (char *)lua_tostring(L, 2);
   arg3 = (char *)lua_tostring(L, 3);
   result = (int)(arg1)->events((char const *)arg2,(char const *)arg3);
-  SWIG_arg=0;
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
@@ -2885,18 +2971,18 @@ fail:
 
 
 static int _wrap_ESLconnection_execute(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) NULL ;
   char *arg4 = (char *) NULL ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("execute",2,4)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("execute",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("execute",2,"char const *");
-  if(lua_gettop(L)>=3 && !lua_isstring(L,3)) SWIG_fail_arg("execute",3,"char const *");
-  if(lua_gettop(L)>=4 && !lua_isstring(L,4)) SWIG_fail_arg("execute",4,"char const *");
+  SWIG_check_num_args("ESLconnection::execute",2,4)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::execute",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::execute",2,"char const *");
+  if(lua_gettop(L)>=3 && !SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::execute",3,"char const *");
+  if(lua_gettop(L)>=4 && !SWIG_lua_isnilstring(L,4)) SWIG_fail_arg("ESLconnection::execute",4,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_execute",1,SWIGTYPE_p_ESLconnection);
@@ -2910,7 +2996,6 @@ static int _wrap_ESLconnection_execute(lua_State* L) {
     arg4 = (char *)lua_tostring(L, 4);
   }
   result = (ESLevent *)(arg1)->execute((char const *)arg2,(char const *)arg3,(char const *)arg4);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2923,18 +3008,18 @@ fail:
 
 
 static int _wrap_ESLconnection_executeAsync(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) NULL ;
   char *arg4 = (char *) NULL ;
   ESLevent *result = 0 ;
   
-  SWIG_check_num_args("executeAsync",2,4)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("executeAsync",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("executeAsync",2,"char const *");
-  if(lua_gettop(L)>=3 && !lua_isstring(L,3)) SWIG_fail_arg("executeAsync",3,"char const *");
-  if(lua_gettop(L)>=4 && !lua_isstring(L,4)) SWIG_fail_arg("executeAsync",4,"char const *");
+  SWIG_check_num_args("ESLconnection::executeAsync",2,4)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::executeAsync",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::executeAsync",2,"char const *");
+  if(lua_gettop(L)>=3 && !SWIG_lua_isnilstring(L,3)) SWIG_fail_arg("ESLconnection::executeAsync",3,"char const *");
+  if(lua_gettop(L)>=4 && !SWIG_lua_isnilstring(L,4)) SWIG_fail_arg("ESLconnection::executeAsync",4,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_executeAsync",1,SWIGTYPE_p_ESLconnection);
@@ -2948,7 +3033,6 @@ static int _wrap_ESLconnection_executeAsync(lua_State* L) {
     arg4 = (char *)lua_tostring(L, 4);
   }
   result = (ESLevent *)(arg1)->executeAsync((char const *)arg2,(char const *)arg3,(char const *)arg4);
-  SWIG_arg=0;
   SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++; 
   return SWIG_arg;
   
@@ -2961,14 +3045,14 @@ fail:
 
 
 static int _wrap_ESLconnection_setAsyncExecute(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  SWIG_check_num_args("setAsyncExecute",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setAsyncExecute",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("setAsyncExecute",2,"char const *");
+  SWIG_check_num_args("ESLconnection::setAsyncExecute",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::setAsyncExecute",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::setAsyncExecute",2,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_setAsyncExecute",1,SWIGTYPE_p_ESLconnection);
@@ -2976,7 +3060,6 @@ static int _wrap_ESLconnection_setAsyncExecute(lua_State* L) {
   
   arg2 = (char *)lua_tostring(L, 2);
   result = (int)(arg1)->setAsyncExecute((char const *)arg2);
-  SWIG_arg=0;
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
@@ -2989,14 +3072,14 @@ fail:
 
 
 static int _wrap_ESLconnection_setEventLock(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  SWIG_check_num_args("setEventLock",2,2)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("setEventLock",1,"ESLconnection *");
-  if(!lua_isstring(L,2)) SWIG_fail_arg("setEventLock",2,"char const *");
+  SWIG_check_num_args("ESLconnection::setEventLock",2,2)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::setEventLock",1,"ESLconnection *");
+  if(!SWIG_lua_isnilstring(L,2)) SWIG_fail_arg("ESLconnection::setEventLock",2,"char const *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_setEventLock",1,SWIGTYPE_p_ESLconnection);
@@ -3004,7 +3087,6 @@ static int _wrap_ESLconnection_setEventLock(lua_State* L) {
   
   arg2 = (char *)lua_tostring(L, 2);
   result = (int)(arg1)->setEventLock((char const *)arg2);
-  SWIG_arg=0;
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
@@ -3017,19 +3099,18 @@ fail:
 
 
 static int _wrap_ESLconnection_disconnect(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   ESLconnection *arg1 = (ESLconnection *) 0 ;
   int result;
   
-  SWIG_check_num_args("disconnect",1,1)
-  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("disconnect",1,"ESLconnection *");
+  SWIG_check_num_args("ESLconnection::disconnect",1,1)
+  if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("ESLconnection::disconnect",1,"ESLconnection *");
   
   if (!SWIG_IsOK(SWIG_ConvertPtr(L,1,(void**)&arg1,SWIGTYPE_p_ESLconnection,0))){
     SWIG_fail_ptr("ESLconnection_disconnect",1,SWIGTYPE_p_ESLconnection);
   }
   
   result = (int)(arg1)->disconnect();
-  SWIG_arg=0;
   lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
   return SWIG_arg;
   
@@ -3074,14 +3155,13 @@ static const char *swig_ESLconnection_base_names[] = {0};
 static swig_lua_class _wrap_class_ESLconnection = { "ESLconnection", &SWIGTYPE_p_ESLconnection,_wrap_new_ESLconnection, swig_delete_ESLconnection, swig_ESLconnection_methods, swig_ESLconnection_attributes, swig_ESLconnection_bases, swig_ESLconnection_base_names };
 
 static int _wrap_eslSetLogLevel(lua_State* L) {
-  int SWIG_arg = -1;
+  int SWIG_arg = 0;
   int arg1 ;
   
   SWIG_check_num_args("eslSetLogLevel",1,1)
   if(!lua_isnumber(L,1)) SWIG_fail_arg("eslSetLogLevel",1,"int");
   arg1 = (int)lua_tonumber(L, 1);
   eslSetLogLevel(arg1);
-  SWIG_arg=0;
   
   return SWIG_arg;
   
@@ -3097,7 +3177,7 @@ fail:
 }
 #endif
 
-static const struct luaL_reg swig_commands[] = {
+static const struct luaL_Reg swig_commands[] = {
     { "eslSetLogLevel", _wrap_eslSetLogLevel},
     {0,0}
 };
@@ -3386,16 +3466,24 @@ extern "C" {
 #endif
 /* this is the initialization function
   added at the very end of the code
-  the function is always called SWIG_init, but an eariler #define will rename it
+  the function is always called SWIG_init, but an earlier #define will rename it
 */
-SWIGEXPORT int SWIG_init(lua_State* L)
+#if ((SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUA) || (SWIG_LUA_TARGET == SWIG_LUA_FLAVOR_ELUAC))
+LUALIB_API int SWIG_init(lua_State* L)
+#else
+SWIGEXPORT int SWIG_init(lua_State* L) /* default Lua action */
+#endif
 {
+#if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC) /* valid for both Lua and eLua */
   int i;
   /* start with global table */
-  lua_pushvalue(L,LUA_GLOBALSINDEX);
+  lua_pushglobaltable (L);
   /* SWIG's internal initalisation */
   SWIG_InitializeModule((void*)L);
   SWIG_PropagateClientData();
+#endif
+
+#if ((SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUA) && (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC))
   /* add a global fn */
   SWIG_Lua_add_function(L,"swig_type",SWIG_Lua_type);
   SWIG_Lua_add_function(L,"swig_equals",SWIG_Lua_equal);
@@ -3409,7 +3497,10 @@ SWIGEXPORT int SWIG_init(lua_State* L)
   for (i = 0; swig_variables[i].name; i++){
     SWIG_Lua_module_add_variable(L,swig_variables[i].name,swig_variables[i].get,swig_variables[i].set);
   }
-  /* set up base class pointers (the hierachy) */
+#endif
+
+#if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC)
+  /* set up base class pointers (the hierarchy) */
   for (i = 0; swig_types[i]; i++){
     if (swig_types[i]->clientdata){
       SWIG_Lua_init_base_class(L,(swig_lua_class*)(swig_types[i]->clientdata));
@@ -3421,14 +3512,24 @@ SWIGEXPORT int SWIG_init(lua_State* L)
       SWIG_Lua_class_register(L,(swig_lua_class*)(swig_types[i]->clientdata));
     }
   }
+#endif
+
+#if ((SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUA) && (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC))
   /* constants */
   SWIG_Lua_InstallConstants(L,swig_constants);
+#endif
+
+#if (SWIG_LUA_TARGET != SWIG_LUA_FLAVOR_ELUAC)
   /* invoke user-specific initialization */
   SWIG_init_user(L);
   /* end module */
-  lua_pop(L,1);  /* tidy stack (remove module table)*/
-  lua_pop(L,1);  /* tidy stack (remove global table)*/
+  /* Note: We do not clean up the stack here (Lua will do this for us). At this
+     point, we have the globals table and out module table on the stack. Returning
+     one value makes the module table the result of the require command. */
   return 1;
+#else
+  return 0;
+#endif
 }
 
 #ifdef __cplusplus