mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 09:36:46 +00:00
update esl swig to swig 2.0 and reswig
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
/* ----------------------------------------------------------------------------
|
||||
* This file was automatically generated by SWIG (http://www.swig.org).
|
||||
* Version 2.0.7
|
||||
*
|
||||
* This file is not intended to be easily readable and contains a number of
|
||||
* Version 2.0.12
|
||||
*
|
||||
* 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
|
||||
* changes to this file unless you know what you are doing--modify the SWIG
|
||||
* interface file instead.
|
||||
* changes to this file unless you know what you are doing--modify the SWIG
|
||||
* interface file instead.
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
#define SWIGLUA
|
||||
@@ -67,28 +67,28 @@ template <typename T> T SwigValueInit() {
|
||||
#ifndef SWIGUNUSED
|
||||
# if defined(__GNUC__)
|
||||
# if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
|
||||
# define SWIGUNUSED __attribute__ ((__unused__))
|
||||
# define SWIGUNUSED __attribute__ ((__unused__))
|
||||
# else
|
||||
# define SWIGUNUSED
|
||||
# endif
|
||||
# elif defined(__ICC)
|
||||
# define SWIGUNUSED __attribute__ ((__unused__))
|
||||
# define SWIGUNUSED __attribute__ ((__unused__))
|
||||
# else
|
||||
# define SWIGUNUSED
|
||||
# define SWIGUNUSED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef SWIG_MSC_UNSUPPRESS_4505
|
||||
# if defined(_MSC_VER)
|
||||
# pragma warning(disable : 4505) /* unreferenced local function has been removed */
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef SWIGUNUSEDPARM
|
||||
# ifdef __cplusplus
|
||||
# define SWIGUNUSEDPARM(p)
|
||||
# else
|
||||
# define SWIGUNUSEDPARM(p) p SWIGUNUSED
|
||||
# define SWIGUNUSEDPARM(p) p SWIGUNUSED
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -131,7 +131,7 @@ template <typename T> T SwigValueInit() {
|
||||
# define SWIGSTDCALL __stdcall
|
||||
# else
|
||||
# define SWIGSTDCALL
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Deal with Microsoft's attempt at deprecating C standard runtime functions */
|
||||
@@ -169,7 +169,7 @@ 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'.
|
||||
|
||||
|
||||
But only do this if strictly necessary, ie, if you have problems
|
||||
with your compiler or suchlike.
|
||||
*/
|
||||
@@ -195,16 +195,16 @@ template <typename T> T SwigValueInit() {
|
||||
#define SWIG_POINTER_OWN 0x1
|
||||
|
||||
|
||||
/*
|
||||
/*
|
||||
Flags/methods for returning states.
|
||||
|
||||
The SWIG conversion methods, as ConvertPtr, return an 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 versions of SWIG, code such as the following was usually written:
|
||||
|
||||
if (SWIG_ConvertPtr(obj,vptr,ty.flags) != -1) {
|
||||
@@ -237,23 +237,23 @@ template <typename T> T SwigValueInit() {
|
||||
} else {
|
||||
// fail code
|
||||
}
|
||||
|
||||
|
||||
I.e., now SWIG_ConvertPtr can return new objects and you can
|
||||
identify the case and take care of the deallocation. Of course that
|
||||
also requires SWIG_ConvertPtr to return new result values, such as
|
||||
|
||||
int SWIG_ConvertPtr(obj, ptr,...) {
|
||||
if (<obj is ok>) {
|
||||
if (<need new object>) {
|
||||
*ptr = <ptr to new allocated object>;
|
||||
return SWIG_NEWOBJ;
|
||||
} else {
|
||||
*ptr = <ptr to old object>;
|
||||
return SWIG_OLDOBJ;
|
||||
}
|
||||
} else {
|
||||
return SWIG_BADOBJ;
|
||||
}
|
||||
int SWIG_ConvertPtr(obj, ptr,...) {
|
||||
if (<obj is ok>) {
|
||||
if (<need new object>) {
|
||||
*ptr = <ptr to new allocated object>;
|
||||
return SWIG_NEWOBJ;
|
||||
} else {
|
||||
*ptr = <ptr to old object>;
|
||||
return SWIG_OLDOBJ;
|
||||
}
|
||||
} else {
|
||||
return SWIG_BADOBJ;
|
||||
}
|
||||
}
|
||||
|
||||
Of course, returning the plain '0(success)/-1(fail)' still works, but you can be
|
||||
@@ -267,17 +267,17 @@ template <typename T> T SwigValueInit() {
|
||||
int fooi(int);
|
||||
|
||||
and you call
|
||||
|
||||
|
||||
food(1) // cast rank '1' (1 -> 1.0)
|
||||
fooi(1) // cast rank '0'
|
||||
|
||||
just use the SWIG_AddCast()/SWIG_CheckState()
|
||||
*/
|
||||
|
||||
#define SWIG_OK (0)
|
||||
#define SWIG_OK (0)
|
||||
#define SWIG_ERROR (-1)
|
||||
#define SWIG_IsOK(r) (r >= 0)
|
||||
#define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError)
|
||||
#define SWIG_ArgError(r) ((r != SWIG_ERROR) ? r : SWIG_TypeError)
|
||||
|
||||
/* The CastRankLimit says how many bits are used for the cast rank */
|
||||
#define SWIG_CASTRANKLIMIT (1 << 8)
|
||||
@@ -308,14 +308,14 @@ template <typename T> T SwigValueInit() {
|
||||
# endif
|
||||
# define SWIG_CASTRANKMASK ((SWIG_CASTRANKLIMIT) -1)
|
||||
# define SWIG_CastRank(r) (r & SWIG_CASTRANKMASK)
|
||||
SWIGINTERNINLINE int SWIG_AddCast(int r) {
|
||||
SWIGINTERNINLINE int SWIG_AddCast(int r) {
|
||||
return SWIG_IsOK(r) ? ((SWIG_CastRank(r) < SWIG_MAXCASTRANK) ? (r + 1) : SWIG_ERROR) : r;
|
||||
}
|
||||
SWIGINTERNINLINE int SWIG_CheckState(int r) {
|
||||
return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
|
||||
SWIGINTERNINLINE int SWIG_CheckState(int r) {
|
||||
return SWIG_IsOK(r) ? SWIG_CastRank(r) + 1 : 0;
|
||||
}
|
||||
#else /* no cast-rank mode */
|
||||
# define SWIG_AddCast
|
||||
# define SWIG_AddCast(r) (r)
|
||||
# define SWIG_CheckState(r) (SWIG_IsOK(r) ? 1 : 0)
|
||||
#endif
|
||||
|
||||
@@ -359,7 +359,7 @@ typedef struct swig_module_info {
|
||||
void *clientdata; /* Language specific module data */
|
||||
} swig_module_info;
|
||||
|
||||
/*
|
||||
/*
|
||||
Compare two type names skipping the space characters, therefore
|
||||
"char*" == "char *" and "Class<int>" == "Class<int >", etc.
|
||||
|
||||
@@ -379,18 +379,18 @@ SWIG_TypeNameComp(const char *f1, const char *l1,
|
||||
|
||||
/*
|
||||
Check type equivalence in a name list like <name1>|<name2>|...
|
||||
Return 0 if not equal, 1 if equal
|
||||
Return 0 if equal, -1 if nb < tb, 1 if nb > tb
|
||||
*/
|
||||
SWIGRUNTIME int
|
||||
SWIG_TypeEquiv(const char *nb, const char *tb) {
|
||||
int equiv = 0;
|
||||
SWIG_TypeCmp(const char *nb, const char *tb) {
|
||||
int equiv = 1;
|
||||
const char* te = tb + strlen(tb);
|
||||
const char* ne = nb;
|
||||
while (!equiv && *ne) {
|
||||
while (equiv != 0 && *ne) {
|
||||
for (nb = ne; *ne; ++ne) {
|
||||
if (*ne == '|') break;
|
||||
}
|
||||
equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
|
||||
equiv = SWIG_TypeNameComp(nb, ne, tb, te);
|
||||
if (*ne) ++ne;
|
||||
}
|
||||
return equiv;
|
||||
@@ -398,24 +398,13 @@ SWIG_TypeEquiv(const char *nb, const char *tb) {
|
||||
|
||||
/*
|
||||
Check type equivalence in a name list like <name1>|<name2>|...
|
||||
Return 0 if equal, -1 if nb < tb, 1 if nb > tb
|
||||
Return 0 if not equal, 1 if equal
|
||||
*/
|
||||
SWIGRUNTIME int
|
||||
SWIG_TypeCompare(const char *nb, const char *tb) {
|
||||
int equiv = 0;
|
||||
const char* te = tb + strlen(tb);
|
||||
const char* ne = nb;
|
||||
while (!equiv && *ne) {
|
||||
for (nb = ne; *ne; ++ne) {
|
||||
if (*ne == '|') break;
|
||||
}
|
||||
equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
|
||||
if (*ne) ++ne;
|
||||
}
|
||||
return equiv;
|
||||
SWIG_TypeEquiv(const char *nb, const char *tb) {
|
||||
return SWIG_TypeCmp(nb, tb) == 0 ? 1 : 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Check the typename
|
||||
*/
|
||||
@@ -443,7 +432,7 @@ SWIG_TypeCheck(const char *c, swig_type_info *ty) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
Identical to SWIG_TypeCheck, except strcmp is replaced with a pointer comparison
|
||||
*/
|
||||
SWIGRUNTIME swig_cast_info *
|
||||
@@ -478,7 +467,7 @@ SWIG_TypeCast(swig_cast_info *ty, void *ptr, int *newmemory) {
|
||||
return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr, newmemory);
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
Dynamic pointer casting. Down an inheritance hierarchy
|
||||
*/
|
||||
SWIGRUNTIME swig_type_info *
|
||||
@@ -522,7 +511,7 @@ SWIG_TypePrettyName(const swig_type_info *type) {
|
||||
return type->name;
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
Set the clientdata field for a type
|
||||
*/
|
||||
SWIGRUNTIME void
|
||||
@@ -530,14 +519,14 @@ SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
|
||||
swig_cast_info *cast = ti->cast;
|
||||
/* if (ti->clientdata == clientdata) return; */
|
||||
ti->clientdata = clientdata;
|
||||
|
||||
|
||||
while (cast) {
|
||||
if (!cast->converter) {
|
||||
swig_type_info *tc = cast->type;
|
||||
if (!tc->clientdata) {
|
||||
SWIG_TypeClientData(tc, clientdata);
|
||||
}
|
||||
}
|
||||
}
|
||||
cast = cast->next;
|
||||
}
|
||||
}
|
||||
@@ -546,18 +535,18 @@ SWIG_TypeNewClientData(swig_type_info *ti, void *clientdata) {
|
||||
SWIG_TypeClientData(ti, clientdata);
|
||||
ti->owndata = 1;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Search for a swig_type_info structure only by mangled name
|
||||
Search is a O(log #types)
|
||||
|
||||
We start searching at module start, and finish searching when start == end.
|
||||
|
||||
We start searching at module start, and finish searching when start == end.
|
||||
Note: if start == end at the beginning of the function, we go all the way around
|
||||
the circular list.
|
||||
*/
|
||||
SWIGRUNTIME swig_type_info *
|
||||
SWIG_MangledTypeQueryModule(swig_module_info *start,
|
||||
swig_module_info *end,
|
||||
SWIG_MangledTypeQueryModule(swig_module_info *start,
|
||||
swig_module_info *end,
|
||||
const char *name) {
|
||||
swig_module_info *iter = start;
|
||||
do {
|
||||
@@ -566,11 +555,11 @@ SWIG_MangledTypeQueryModule(swig_module_info *start,
|
||||
register size_t r = iter->size - 1;
|
||||
do {
|
||||
/* since l+r >= 0, we can (>> 1) instead (/ 2) */
|
||||
register size_t i = (l + r) >> 1;
|
||||
register size_t i = (l + r) >> 1;
|
||||
const char *iname = iter->types[i]->name;
|
||||
if (iname) {
|
||||
register int compare = strcmp(name, iname);
|
||||
if (compare == 0) {
|
||||
if (compare == 0) {
|
||||
return iter->types[i];
|
||||
} else if (compare < 0) {
|
||||
if (i) {
|
||||
@@ -595,14 +584,14 @@ SWIG_MangledTypeQueryModule(swig_module_info *start,
|
||||
Search for a swig_type_info structure for either a mangled name or a human readable name.
|
||||
It first searches the mangled names of the types, which is a O(log #types)
|
||||
If a type is not found it then searches the human readable names, which is O(#types).
|
||||
|
||||
We start searching at module start, and finish searching when start == end.
|
||||
|
||||
We start searching at module start, and finish searching when start == end.
|
||||
Note: if start == end at the beginning of the function, we go all the way around
|
||||
the circular list.
|
||||
*/
|
||||
SWIGRUNTIME swig_type_info *
|
||||
SWIG_TypeQueryModule(swig_module_info *start,
|
||||
swig_module_info *end,
|
||||
SWIG_TypeQueryModule(swig_module_info *start,
|
||||
swig_module_info *end,
|
||||
const char *name) {
|
||||
/* STEP 1: Search the name field using binary search */
|
||||
swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
|
||||
@@ -621,12 +610,12 @@ SWIG_TypeQueryModule(swig_module_info *start,
|
||||
iter = iter->next;
|
||||
} while (iter != end);
|
||||
}
|
||||
|
||||
|
||||
/* neither found a match */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
Pack binary data into a string
|
||||
*/
|
||||
SWIGRUNTIME char *
|
||||
@@ -642,7 +631,7 @@ SWIG_PackData(char *c, void *ptr, size_t sz) {
|
||||
return c;
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
Unpack binary data from a string
|
||||
*/
|
||||
SWIGRUNTIME const char *
|
||||
@@ -656,21 +645,21 @@ SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
|
||||
uu = ((d - '0') << 4);
|
||||
else if ((d >= 'a') && (d <= 'f'))
|
||||
uu = ((d - ('a'-10)) << 4);
|
||||
else
|
||||
else
|
||||
return (char *) 0;
|
||||
d = *(c++);
|
||||
if ((d >= '0') && (d <= '9'))
|
||||
uu |= (d - '0');
|
||||
else if ((d >= 'a') && (d <= 'f'))
|
||||
uu |= (d - ('a'-10));
|
||||
else
|
||||
else
|
||||
return (char *) 0;
|
||||
*u = uu;
|
||||
}
|
||||
return c;
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
Pack 'void *' into a string buffer.
|
||||
*/
|
||||
SWIGRUNTIME char *
|
||||
@@ -802,6 +791,36 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/* --------------------------------------------------------------------------
|
||||
* Helper functions for error handling
|
||||
* -------------------------------------------------------------------------- */
|
||||
|
||||
/* Push the string STR on the Lua stack, like lua_pushstring, but
|
||||
prefixed with the the location of the innermost Lua call-point
|
||||
(as formated by luaL_where). */
|
||||
SWIGRUNTIME void
|
||||
SWIG_Lua_pusherrstring (lua_State *L, const char *str)
|
||||
{
|
||||
luaL_where (L, 1);
|
||||
lua_pushstring (L, str);
|
||||
lua_concat (L, 2);
|
||||
}
|
||||
|
||||
/* Push a formatted string generated from FMT and following args on
|
||||
the Lua stack, like lua_pushfstring, but prefixed with the the
|
||||
location of the innermost Lua call-point (as formated by luaL_where). */
|
||||
SWIGRUNTIME void
|
||||
SWIG_Lua_pushferrstring (lua_State *L, const char *fmt, ...)
|
||||
{
|
||||
va_list argp;
|
||||
va_start(argp, fmt);
|
||||
luaL_where(L, 1);
|
||||
lua_pushvfstring(L, fmt, argp);
|
||||
va_end(argp);
|
||||
lua_concat(L, 2);
|
||||
}
|
||||
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* global swig types
|
||||
* ----------------------------------------------------------------------------- */
|
||||
@@ -841,6 +860,15 @@ typedef struct {
|
||||
lua_CFunction setmethod;
|
||||
} swig_lua_attribute;
|
||||
|
||||
// Can be used to create namespaces. Currently used to
|
||||
// wrap class static methods/variables/constants
|
||||
typedef struct {
|
||||
const char *name;
|
||||
swig_lua_method *ns_methods;
|
||||
swig_lua_attribute *ns_attributes;
|
||||
swig_lua_const_info *ns_constants;
|
||||
} swig_lua_namespace;
|
||||
|
||||
typedef struct swig_lua_class {
|
||||
const char *name;
|
||||
swig_type_info **type;
|
||||
@@ -848,11 +876,12 @@ typedef struct swig_lua_class {
|
||||
void (*destructor)(void *);
|
||||
swig_lua_method *methods;
|
||||
swig_lua_attribute *attributes;
|
||||
swig_lua_namespace cls_static;
|
||||
struct swig_lua_class **bases;
|
||||
const char **base_names;
|
||||
} swig_lua_class;
|
||||
|
||||
/* this is the struct for wrappering all pointers in SwigLua
|
||||
/* this is the struct for wrapping all pointers in SwigLua
|
||||
*/
|
||||
typedef struct {
|
||||
swig_type_info *type;
|
||||
@@ -860,7 +889,7 @@ typedef struct {
|
||||
void *ptr;
|
||||
} swig_lua_userdata;
|
||||
|
||||
/* this is the struct for wrapping arbitary packed binary data
|
||||
/* this is the struct for wrapping arbitrary 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
|
||||
@@ -886,19 +915,20 @@ typedef struct {
|
||||
|
||||
/* Contract support */
|
||||
#define SWIG_contract_assert(expr, msg) \
|
||||
if (!(expr)) { lua_pushstring(L, (char *) msg); goto fail; } else
|
||||
if (!(expr)) { SWIG_Lua_pusherrstring(L, (char *) msg); goto fail; } else
|
||||
|
||||
|
||||
/* helper #defines */
|
||||
#define SWIG_fail {goto fail;}
|
||||
#define SWIG_fail_arg(func_name,argnum,type) \
|
||||
{lua_pushfstring(L,"Error in %s (arg %d), expected '%s' got '%s'",\
|
||||
{SWIG_Lua_pushferrstring(L,"Error in %s (arg %d), expected '%s' got '%s'",\
|
||||
func_name,argnum,type,SWIG_Lua_typename(L,argnum));\
|
||||
goto fail;}
|
||||
#define SWIG_fail_ptr(func_name,argnum,type) \
|
||||
SWIG_fail_arg(func_name,argnum,(type && type->str)?type->str:"void*")
|
||||
#define SWIG_check_num_args(func_name,a,b) \
|
||||
if (lua_gettop(L)<a || lua_gettop(L)>b) \
|
||||
{lua_pushfstring(L,"Error in %s expected %d..%d args, got %d",func_name,a,b,lua_gettop(L));\
|
||||
{SWIG_Lua_pushferrstring(L,"Error in %s expected %d..%d args, got %d",func_name,a,b,lua_gettop(L));\
|
||||
goto fail;}
|
||||
|
||||
|
||||
@@ -944,15 +974,14 @@ SWIG_Lua_SetModule(lua_State* L, swig_module_info *module) {
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
/* this function is called when trying to set an immutable.
|
||||
default value is to print an error.
|
||||
default action is to print an error.
|
||||
This can removed with a compile flag SWIGLUA_IGNORE_SET_IMMUTABLE */
|
||||
SWIGINTERN int SWIG_Lua_set_immutable(lua_State* L)
|
||||
{
|
||||
/* there should be 1 param passed in: the new value */
|
||||
#ifndef SWIGLUA_IGNORE_SET_IMMUTABLE
|
||||
lua_pop(L,1); /* remove it */
|
||||
lua_pushstring(L,"This variable is immutable");
|
||||
lua_error(L);
|
||||
luaL_error(L,"This variable is immutable");
|
||||
#endif
|
||||
return 0; /* should not return anything */
|
||||
}
|
||||
@@ -1116,6 +1145,138 @@ SWIGINTERN void SWIG_Lua_module_add_function(lua_State* L,const char* name,lua_
|
||||
SWIG_Lua_add_function(L,name,fn);
|
||||
}
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* global variable support code: namespaces
|
||||
* ----------------------------------------------------------------------------- */
|
||||
|
||||
SWIGINTERN int SWIG_Lua_namespace_get(lua_State* L)
|
||||
{
|
||||
/* there should be 2 params passed in
|
||||
(1) table (not the meta table)
|
||||
(2) string name of the attribute
|
||||
*/
|
||||
assert(lua_istable(L,-2)); /* just in case */
|
||||
lua_getmetatable(L,-2);
|
||||
assert(lua_istable(L,-1));
|
||||
SWIG_Lua_get_table(L,".get"); /* find the .get table */
|
||||
assert(lua_istable(L,-1));
|
||||
/* look for the key in the .get table */
|
||||
lua_pushvalue(L,2); /* key */
|
||||
lua_rawget(L,-2);
|
||||
lua_remove(L,-2); /* stack tidy, remove .get table */
|
||||
if (lua_iscfunction(L,-1))
|
||||
{ /* found it so call the fn & return its value */
|
||||
lua_call(L,0,1); /* 1 value in (userdata),1 out (result) */
|
||||
lua_remove(L,-2); /* stack tidy, remove metatable */
|
||||
return 1;
|
||||
}
|
||||
lua_pop(L,1); /* remove whatever was there */
|
||||
/* ok, so try the .fn table */
|
||||
SWIG_Lua_get_table(L,".fn"); /* find the .get table */
|
||||
assert(lua_istable(L,-1)); /* just in case */
|
||||
lua_pushvalue(L,2); /* key */
|
||||
lua_rawget(L,-2); /* look for the fn */
|
||||
lua_remove(L,-2); /* stack tidy, remove .fn table */
|
||||
if (lua_isfunction(L,-1)) /* note: whether it's a C function or lua function */
|
||||
{ /* found it so return the fn & let lua call it */
|
||||
lua_remove(L,-2); /* stack tidy, remove metatable */
|
||||
return 1;
|
||||
}
|
||||
lua_pop(L,1); /* remove whatever was there */
|
||||
return 0;
|
||||
}
|
||||
|
||||
SWIGINTERN int SWIG_Lua_namespace_set(lua_State* L)
|
||||
{
|
||||
/* there should be 3 params passed in
|
||||
(1) table (not the meta table)
|
||||
(2) string name of the attribute
|
||||
(3) any for the new value
|
||||
*/
|
||||
|
||||
assert(lua_istable(L,1));
|
||||
lua_getmetatable(L,1); /* get the meta table */
|
||||
assert(lua_istable(L,-1));
|
||||
|
||||
SWIG_Lua_get_table(L,".set"); /* find the .set table */
|
||||
if (lua_istable(L,-1))
|
||||
{
|
||||
/* look for the key in the .set table */
|
||||
lua_pushvalue(L,2); /* key */
|
||||
lua_rawget(L,-2);
|
||||
if (lua_iscfunction(L,-1))
|
||||
{ /* found it so call the fn & return its value */
|
||||
lua_pushvalue(L,3); /* value */
|
||||
lua_call(L,1,0);
|
||||
return 0;
|
||||
}
|
||||
lua_pop(L,1); /* remove the value */
|
||||
}
|
||||
lua_pop(L,1); /* remove the value .set table */
|
||||
return 0;
|
||||
}
|
||||
|
||||
SWIGINTERN void SWIG_Lua_InstallConstants(lua_State* L, swig_lua_const_info constants[]); // forward declaration
|
||||
SWIGINTERN void SWIG_Lua_add_class_variable(lua_State* L,const char* name,lua_CFunction getFn,lua_CFunction setFn); // forward declaration
|
||||
|
||||
/* helper function - register namespace methods and attributes into namespace */
|
||||
SWIGINTERN int SWIG_Lua_add_namespace_details(lua_State* L, swig_lua_namespace* ns)
|
||||
{
|
||||
int i = 0;
|
||||
assert(lua_istable(L,-1));
|
||||
/* There must be table at the top of the stack */
|
||||
SWIG_Lua_InstallConstants(L, ns->ns_constants);
|
||||
|
||||
lua_getmetatable(L,-1);
|
||||
|
||||
/* add fns */
|
||||
for(i=0;ns->ns_attributes[i].name;i++){
|
||||
SWIG_Lua_add_class_variable(L,ns->ns_attributes[i].name,ns->ns_attributes[i].getmethod,ns->ns_attributes[i].setmethod);
|
||||
}
|
||||
|
||||
/* add methods to the metatable */
|
||||
SWIG_Lua_get_table(L,".fn"); /* find the .fn table */
|
||||
assert(lua_istable(L,-1)); /* just in case */
|
||||
for(i=0;ns->ns_methods[i].name;i++){
|
||||
SWIG_Lua_add_function(L,ns->ns_methods[i].name,ns->ns_methods[i].method);
|
||||
}
|
||||
lua_pop(L,1);
|
||||
|
||||
/* clear stack - remove metatble */
|
||||
lua_pop(L,1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* helper function. creates namespace table and add it to module table */
|
||||
SWIGINTERN int SWIG_Lua_namespace_register(lua_State* L, swig_lua_namespace* ns)
|
||||
{
|
||||
assert(lua_istable(L,-1)); /* just in case. This is supposed to be module table */
|
||||
lua_checkstack(L,5);
|
||||
lua_pushstring(L, ns->name);
|
||||
lua_newtable(L); /* namespace itself */
|
||||
lua_newtable(L); /* metatable for namespace */
|
||||
|
||||
/* add a table called ".get" */
|
||||
lua_pushstring(L,".get");
|
||||
lua_newtable(L);
|
||||
lua_rawset(L,-3);
|
||||
/* add a table called ".set" */
|
||||
lua_pushstring(L,".set");
|
||||
lua_newtable(L);
|
||||
lua_rawset(L,-3);
|
||||
/* add a table called ".fn" */
|
||||
lua_pushstring(L,".fn");
|
||||
lua_newtable(L);
|
||||
lua_rawset(L,-3);
|
||||
|
||||
/* add accessor fns for using the .get,.set&.fn */
|
||||
SWIG_Lua_add_function(L,"__index",SWIG_Lua_namespace_get);
|
||||
SWIG_Lua_add_function(L,"__newindex",SWIG_Lua_namespace_set);
|
||||
|
||||
lua_setmetatable(L,-2); /* set metatable */
|
||||
lua_rawset(L,-3); /* add namespace to module table */
|
||||
return 0;
|
||||
}
|
||||
/* -----------------------------------------------------------------------------
|
||||
* global variable support code: classes
|
||||
* ----------------------------------------------------------------------------- */
|
||||
@@ -1271,6 +1432,23 @@ SWIGINTERN int SWIG_Lua_class_disown(lua_State* L)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Constructor proxy. Used when class name entry in module is not class constructor,
|
||||
but special table instead. */
|
||||
SWIGINTERN int SWIG_Lua_constructor_proxy(lua_State* L)
|
||||
{
|
||||
/* unlimited number of parameters
|
||||
First one is our proxy table and we should remove it
|
||||
Other we should pass to real constructor
|
||||
*/
|
||||
assert(lua_istable(L,1));
|
||||
lua_pushstring(L,".constructor");
|
||||
lua_rawget(L,1);
|
||||
assert(!lua_isnil(L,-1));
|
||||
lua_replace(L,1); /* replace our table with real constructor */
|
||||
lua_call(L,lua_gettop(L)-1,1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* gets the swig class registry (or creates it) */
|
||||
SWIGINTERN void SWIG_Lua_get_class_registry(lua_State* L)
|
||||
{
|
||||
@@ -1315,6 +1493,21 @@ SWIGINTERN void SWIG_Lua_add_class_variable(lua_State* L,const char* name,lua_C
|
||||
}
|
||||
}
|
||||
|
||||
/* helper to recursively add class static details (static attributes, operations and constants) */
|
||||
SWIGINTERN void SWIG_Lua_add_class_static_details(lua_State* L, swig_lua_class* clss)
|
||||
{
|
||||
int i = 0;
|
||||
/* The class namespace table must be on the top of the stack */
|
||||
assert(lua_istable(L,-1));
|
||||
/* call all the base classes first: we can then override these later: */
|
||||
for(i=0;clss->bases[i];i++)
|
||||
{
|
||||
SWIG_Lua_add_class_static_details(L,clss->bases[i]);
|
||||
}
|
||||
|
||||
SWIG_Lua_add_namespace_details(L, &clss->cls_static);
|
||||
}
|
||||
|
||||
/* helper to recursively add class details (attributes & operations) */
|
||||
SWIGINTERN void SWIG_Lua_add_class_details(lua_State* L,swig_lua_class* clss)
|
||||
{
|
||||
@@ -1365,18 +1558,45 @@ SWIGINTERN void SWIG_Lua_init_base_class(lua_State* L,swig_lua_class* clss)
|
||||
swig_type_info *info = SWIG_TypeQueryModule(module,module,clss->base_names[i]);
|
||||
if (info) clss->bases[i] = (swig_lua_class *) info->clientdata;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* performs the entire class registration process */
|
||||
SWIGINTERN void SWIG_Lua_class_register(lua_State* L,swig_lua_class* clss)
|
||||
/* Register class static methods,attributes etc as well as constructor proxy */
|
||||
SWIGINTERN void SWIG_Lua_class_register_static(lua_State* L, swig_lua_class* clss)
|
||||
{
|
||||
lua_checkstack(L,5); /* just in case */
|
||||
assert(lua_istable(L,-1)); /* just in case */
|
||||
assert(strcmp(clss->name, clss->cls_static.name) == 0); /* in class those 2 must be equal */
|
||||
|
||||
SWIG_Lua_namespace_register(L,&clss->cls_static);
|
||||
|
||||
SWIG_Lua_get_table(L,clss->name); // Get namespace table back
|
||||
assert(lua_istable(L,-1)); /* just in case */
|
||||
|
||||
/* add its constructor to module with the name of the class
|
||||
so you can do MyClass(...) as well as new_MyClass(...)
|
||||
BUT only if a constructor is defined
|
||||
(this overcomes the problem of pure virtual classes without constructors)*/
|
||||
if (clss->constructor)
|
||||
SWIG_Lua_add_function(L,clss->name,clss->constructor);
|
||||
{
|
||||
SWIG_Lua_add_function(L,".constructor", clss->constructor);
|
||||
lua_getmetatable(L,-1);
|
||||
assert(lua_istable(L,-1)); /* just in case */
|
||||
SWIG_Lua_add_function(L,"__call", SWIG_Lua_constructor_proxy);
|
||||
lua_pop(L,1);
|
||||
}
|
||||
|
||||
assert(lua_istable(L,-1)); /* just in case */
|
||||
SWIG_Lua_add_class_static_details(L, clss);
|
||||
|
||||
/* clear stack */
|
||||
lua_pop(L,1);
|
||||
}
|
||||
|
||||
/* performs the entire class registration process */
|
||||
SWIGINTERN void SWIG_Lua_class_register(lua_State* L,swig_lua_class* clss)
|
||||
{
|
||||
SWIG_Lua_class_register_static(L,clss);
|
||||
|
||||
SWIG_Lua_get_class_registry(L); /* get the registry */
|
||||
lua_pushstring(L,clss->name); /* get the name */
|
||||
@@ -1487,9 +1707,8 @@ SWIGRUNTIME void* SWIG_Lua_MustGetPtr(lua_State* L,int index,swig_type_info *typ
|
||||
int argnum,const char* func_name){
|
||||
void* result;
|
||||
if (!SWIG_IsOK(SWIG_ConvertPtr(L,index,&result,type,flags))){
|
||||
lua_pushfstring(L,"Error in %s, expected a %s at argument number %d\n",
|
||||
func_name,(type && type->str)?type->str:"void*",argnum);
|
||||
lua_error(L);
|
||||
luaL_error (L,"Error in %s, expected a %s at argument number %d\n",
|
||||
func_name,(type && type->str)?type->str:"void*",argnum);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -1613,8 +1832,8 @@ SWIG_Lua_InstallConstants(lua_State* L, swig_lua_const_info constants[]) {
|
||||
#ifndef SWIG_DOSTRING_FAIL /* Allows redefining of error function */
|
||||
#define SWIG_DOSTRING_FAIL(S) fprintf(stderr,"%s\n",S)
|
||||
#endif
|
||||
/* Executes a C string in Lua a really simple way of calling lua from C
|
||||
Unfortunately lua keeps changing its API's, so we need a conditional compile
|
||||
/* Executes a C string in Lua which is a really simple way of calling lua from C
|
||||
Unfortunately lua keeps changing its APIs, so we need a conditional compile
|
||||
In lua 5.0.X its lua_dostring()
|
||||
In lua 5.1.X its luaL_dostring()
|
||||
*/
|
||||
@@ -1981,7 +2200,7 @@ static int _wrap_new_ESLevent(lua_State* L) {
|
||||
}
|
||||
}
|
||||
|
||||
lua_pushstring(L,"Wrong arguments for overloaded function 'new_ESLevent'\n"
|
||||
SWIG_Lua_pusherrstring(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"
|
||||
@@ -2349,9 +2568,18 @@ static swig_lua_attribute swig_ESLevent_attributes[] = {
|
||||
{ "mine", _wrap_ESLevent_mine_get, _wrap_ESLevent_mine_set},
|
||||
{0,0,0}
|
||||
};
|
||||
static swig_lua_attribute swig_ESLevent_cls_attributes[] = {
|
||||
{0,0,0}
|
||||
};
|
||||
static swig_lua_method swig_ESLevent_cls_methods[] = {
|
||||
{0,0}
|
||||
};
|
||||
static swig_lua_const_info swig_ESLevent_cls_constants[] = {
|
||||
{0,0,0,0,0,0}
|
||||
};
|
||||
static swig_lua_class *swig_ESLevent_bases[] = {0};
|
||||
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 swig_lua_class _wrap_class_ESLevent = { "ESLevent", &SWIGTYPE_p_ESLevent,_wrap_new_ESLevent, swig_delete_ESLevent, swig_ESLevent_methods, swig_ESLevent_attributes, { "ESLevent", swig_ESLevent_cls_methods, swig_ESLevent_cls_attributes, swig_ESLevent_cls_constants }, swig_ESLevent_bases, swig_ESLevent_base_names };
|
||||
|
||||
static int _wrap_new_ESLconnection__SWIG_0(lua_State* L) {
|
||||
int SWIG_arg = 0;
|
||||
@@ -2586,7 +2814,7 @@ static int _wrap_new_ESLconnection(lua_State* L) {
|
||||
}
|
||||
}
|
||||
|
||||
lua_pushstring(L,"Wrong arguments for overloaded function 'new_ESLconnection'\n"
|
||||
SWIG_Lua_pusherrstring(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"
|
||||
@@ -3150,9 +3378,18 @@ static swig_lua_method swig_ESLconnection_methods[] = {
|
||||
static swig_lua_attribute swig_ESLconnection_attributes[] = {
|
||||
{0,0,0}
|
||||
};
|
||||
static swig_lua_attribute swig_ESLconnection_cls_attributes[] = {
|
||||
{0,0,0}
|
||||
};
|
||||
static swig_lua_method swig_ESLconnection_cls_methods[] = {
|
||||
{0,0}
|
||||
};
|
||||
static swig_lua_const_info swig_ESLconnection_cls_constants[] = {
|
||||
{0,0,0,0,0,0}
|
||||
};
|
||||
static swig_lua_class *swig_ESLconnection_bases[] = {0};
|
||||
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 swig_lua_class _wrap_class_ESLconnection = { "ESLconnection", &SWIGTYPE_p_ESLconnection,_wrap_new_ESLconnection, swig_delete_ESLconnection, swig_ESLconnection_methods, swig_ESLconnection_attributes, { "ESLconnection", swig_ESLconnection_cls_methods, swig_ESLconnection_cls_attributes, swig_ESLconnection_cls_constants }, swig_ESLconnection_bases, swig_ESLconnection_base_names };
|
||||
|
||||
static int _wrap_eslSetLogLevel(lua_State* L) {
|
||||
int SWIG_arg = 0;
|
||||
@@ -3221,18 +3458,18 @@ static swig_cast_info *swig_cast_initial[] = {
|
||||
|
||||
/* -----------------------------------------------------------------------------
|
||||
* Type initialization:
|
||||
* This problem is tough by the requirement that no dynamic
|
||||
* memory is used. Also, since swig_type_info structures store pointers to
|
||||
* This problem is tough by the requirement that no dynamic
|
||||
* memory is used. Also, since swig_type_info structures store pointers to
|
||||
* swig_cast_info structures and swig_cast_info structures store pointers back
|
||||
* to swig_type_info structures, we need some lookup code at initialization.
|
||||
* The idea is that swig generates all the structures that are needed.
|
||||
* The runtime then collects these partially filled structures.
|
||||
* The SWIG_InitializeModule function takes these initial arrays out of
|
||||
* to swig_type_info structures, we need some lookup code at initialization.
|
||||
* The idea is that swig generates all the structures that are needed.
|
||||
* The runtime then collects these partially filled structures.
|
||||
* The SWIG_InitializeModule function takes these initial arrays out of
|
||||
* swig_module, and does all the lookup, filling in the swig_module.types
|
||||
* array with the correct data and linking the correct swig_cast_info
|
||||
* structures together.
|
||||
*
|
||||
* The generated swig_type_info structures are assigned staticly to an initial
|
||||
* The generated swig_type_info structures are assigned staticly to an initial
|
||||
* array. We just loop through that array, and handle each type individually.
|
||||
* First we lookup if this type has been already loaded, and if so, use the
|
||||
* loaded structure instead of the generated one. Then we have to fill in the
|
||||
@@ -3242,17 +3479,17 @@ static swig_cast_info *swig_cast_initial[] = {
|
||||
* a column is one of the swig_cast_info structures for that type.
|
||||
* The cast_initial array is actually an array of arrays, because each row has
|
||||
* a variable number of columns. So to actually build the cast linked list,
|
||||
* we find the array of casts associated with the type, and loop through it
|
||||
* we find the array of casts associated with the type, and loop through it
|
||||
* adding the casts to the list. The one last trick we need to do is making
|
||||
* sure the type pointer in the swig_cast_info struct is correct.
|
||||
*
|
||||
* First off, we lookup the cast->type name to see if it is already loaded.
|
||||
* First off, we lookup the cast->type name to see if it is already loaded.
|
||||
* There are three cases to handle:
|
||||
* 1) If the cast->type has already been loaded AND the type we are adding
|
||||
* casting info to has not been loaded (it is in this module), THEN we
|
||||
* replace the cast->type pointer with the type pointer that has already
|
||||
* been loaded.
|
||||
* 2) If BOTH types (the one we are adding casting info to, and the
|
||||
* 2) If BOTH types (the one we are adding casting info to, and the
|
||||
* cast->type) are loaded, THEN the cast info has already been loaded by
|
||||
* the previous module so we just ignore it.
|
||||
* 3) Finally, if cast->type has not already been loaded, then we add that
|
||||
@@ -3278,8 +3515,6 @@ SWIG_InitializeModule(void *clientdata) {
|
||||
swig_module_info *module_head, *iter;
|
||||
int found, init;
|
||||
|
||||
clientdata = clientdata;
|
||||
|
||||
/* check to see if the circular list has been setup, if not, set it up */
|
||||
if (swig_module.next==0) {
|
||||
/* Initialize the swig_module */
|
||||
@@ -3317,7 +3552,7 @@ SWIG_InitializeModule(void *clientdata) {
|
||||
module_head->next = &swig_module;
|
||||
}
|
||||
|
||||
/* When multiple interpeters are used, a module could have already been initialized in
|
||||
/* When multiple interpreters are used, a module could have already been initialized in
|
||||
a different interpreter, but not yet have a pointer in this interpreter.
|
||||
In this case, we do not want to continue adding types... everything should be
|
||||
set up already */
|
||||
@@ -3331,7 +3566,7 @@ SWIG_InitializeModule(void *clientdata) {
|
||||
swig_type_info *type = 0;
|
||||
swig_type_info *ret;
|
||||
swig_cast_info *cast;
|
||||
|
||||
|
||||
#ifdef SWIGRUNTIME_DEBUG
|
||||
printf("SWIG_InitializeModule: type %d %s\n", i, swig_module.type_initial[i]->name);
|
||||
#endif
|
||||
@@ -3358,7 +3593,7 @@ SWIG_InitializeModule(void *clientdata) {
|
||||
/* Insert casting types */
|
||||
cast = swig_module.cast_initial[i];
|
||||
while (cast->type) {
|
||||
|
||||
|
||||
/* Don't need to add information already in the list */
|
||||
ret = 0;
|
||||
#ifdef SWIGRUNTIME_DEBUG
|
||||
|
Reference in New Issue
Block a user