Mercurial > hg > freeDiameter
changeset 621:04dbea46c7a2
Cleanup many SWIG definitions from main .h files
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Tue, 07 Dec 2010 11:13:58 +0900 |
parents | bc7328e600f0 |
children | cfbf7ed5dccd |
files | extensions/dbg_interactive/dbg_interactive.c extensions/dbg_interactive/diwrap.i include/freeDiameter/freeDiameter.h include/freeDiameter/libfreeDiameter.h |
diffstat | 4 files changed, 32 insertions(+), 73 deletions(-) [+] |
line wrap: on
line diff
--- a/extensions/dbg_interactive/dbg_interactive.c Mon Dec 06 14:45:49 2010 +0900 +++ b/extensions/dbg_interactive/dbg_interactive.c Tue Dec 07 11:13:58 2010 +0900 @@ -65,18 +65,19 @@ TRACE_ENTRY("%p", conffile); Py_Initialize(); + +#if PY_VERSION_HEX >= 0x03000000 + PyInit__diwrap(); +#else /* PY_VERSION_HEX */ init_diwrap(); +#endif /* PY_VERSION_HEX */ + /* In future version, it might be better to use the diwrap.py file generated by SWIG here to get the proxy classes definitions */ PyRun_SimpleString("from _diwrap import *\n"); if (TRACE_BOOL(INFO)) { - PyRun_SimpleString("print \"[dbg_interactive] fD \",FD_PROJECT_VERSION_MAJOR,\".\",FD_PROJECT_VERSION_MINOR,\".\",FD_PROJECT_VERSION_REV\n"); + PyRun_SimpleString("print \"[dbg_interactive] \",FD_PROJECT_NAME,FD_PROJECT_VERSION_MAJOR,FD_PROJECT_VERSION_MINOR,FD_PROJECT_VERSION_REV\n"); } - /* - PyRun_SimpleString("config = cvar.fd_g_config\n"); - PyRun_SimpleString("dict = fd_config_cnf_dict_get(config)\n"); - PyRun_SimpleString("fd_dict_dump(dict)\n"); - */ CHECK_POSIX( pthread_create(&pyinterp, NULL, myinterp, conffile) ); return 0;
--- a/extensions/dbg_interactive/diwrap.i Mon Dec 06 14:45:49 2010 +0900 +++ b/extensions/dbg_interactive/diwrap.i Tue Dec 07 11:13:58 2010 +0900 @@ -36,19 +36,35 @@ /* This interface file is processed by SWIG to create a python wrapper interface to freeDiameter framework. */ %module diwrap -/* Include standard types used in freeDiameter headers */ +/* Include standard types & functions used in freeDiameter headers */ %include <stdint.i> - -/* Allow modification of the wrapper for OUTPUT vars */ -%include "typemaps.i" %{ /* Define types etc. */ +#define SWIG #include <freeDiameter/extension.h> %} +/* Some functions are not available through the wrapper */ +%ignore fd_lib_init; +%ignore fd_lib_fini; +%ignore fd_sess_start; + +/* Inline functions seems to give problems to SWIG -- just remove the inline definition */ +%define __inline__ +%enddef + +/* Make some global-variables read-only */ +%immutable fd_g_config; +%immutable peer_state_str; + +/* Overwrite a few functions prototypes for usability */ +extern void fd_list_init ( struct fd_list * list, void * obj = NULL ); + + /* Retrieve the compile-time definitions of freeDiameter */ %include "freeDiameter/freeDiameter-host.h" %include "freeDiameter/libfreeDiameter.h" %include "freeDiameter/freeDiameter.h" +
--- a/include/freeDiameter/freeDiameter.h Mon Dec 06 14:45:49 2010 +0900 +++ b/include/freeDiameter/freeDiameter.h Tue Dec 07 11:13:58 2010 +0900 @@ -46,7 +46,6 @@ #define GNUTLS_VERSION LIBGNUTLS_VERSION #endif /* GNUTLS_VERSION */ -#ifndef SWIG /* GNUTLS calls debug level */ #ifndef GNUTLS_DBG_LEVEL #define GNUTLS_DBG_LEVEL ANNOYING @@ -68,7 +67,6 @@ TRACE_DEBUG(GNUTLS_DBG_LEVEL, "GNUTLS call: " #__call__ ); \ (__call__); \ } -#endif /* !SWIG */ /* Structure to hold the configuration of the freeDiameter daemon */ struct fd_config { @@ -127,13 +125,7 @@ struct dictionary *cnf_dict; /* pointer to the global dictionary */ struct fifo *cnf_main_ev; /* events for the daemon's main (struct fd_event items) */ }; -#ifdef SWIG -%immutable; -#endif /* SWIG */ extern struct fd_config *fd_g_config; /* The pointer to access the global configuration, initalized in main */ -#ifdef SWIG -%mutable; -#endif /* SWIG */ /***************************************/ @@ -181,13 +173,7 @@ , "STATE_REOPEN" \ , "STATE_ZOMBIE" \ }; -#ifndef SWIG extern const char *peer_state_str[]; -#else /* SWIG */ -%immutable; -extern const char **peer_state_str; -%mutable; -#endif /* !SWIG */ #define STATE_STR(state) \ (((unsigned)(state)) <= STATE_MAX ? peer_state_str[((unsigned)(state)) ] : "<Invalid>") @@ -696,17 +682,16 @@ struct fd_endpoint { struct fd_list chain; /* link in cnf_endpoints list */ -#ifndef SWIG union { sSS ss; /* the socket information. List is always ordered by ss value (memcmp) -- see fd_ep_add_merge */ sSA4 sin; sSA6 sin6; sSA sa; - }; -#else /* !SWIG */ - /* SWIG does not support unions inside struct, we only define sa in this case */ - sSA sa; -#endif /* !SWIG */ + } +#ifdef SWIG /* nested anonymous unions are not supported yet */ + s +#endif /* SWIG */ + ; #define EP_FL_CONF (1 << 0) /* This endpoint is statically configured in a configuration file */ #define EP_FL_DISC (1 << 1) /* This endpoint was resolved from the Diameter Identity or other DNS query */
--- a/include/freeDiameter/libfreeDiameter.h Mon Dec 06 14:45:49 2010 +0900 +++ b/include/freeDiameter/libfreeDiameter.h Tue Dec 07 11:13:58 2010 +0900 @@ -80,8 +80,6 @@ /*============================================================*/ /* INIT */ /*============================================================*/ -#ifndef SWIG /* This section is not included in wrapper */ - /* This function must be called first, before any call to another library function */ /* If the parameter is not 0, the support for signals (fd_sig_register) is enabled, otherwise it is disabled */ @@ -92,7 +90,6 @@ void fd_lib_fini(void); -#endif /* !SWIG */ /*============================================================*/ /* DEBUG */ /*============================================================*/ @@ -117,9 +114,7 @@ * None. */ void fd_log_debug ( char * format, ... ); -#ifndef SWIG extern pthread_mutex_t fd_log_lock; -#endif /* !SWIG */ extern char * fd_debug_one_function; extern char * fd_debug_one_file; @@ -138,10 +133,8 @@ * RETURN VALUE: * None. */ -#ifndef SWIG void fd_log_threadname ( char * name ); extern pthread_key_t fd_log_thname; -#endif /* !SWIG */ /* * FUNCTION: fd_log_time @@ -164,11 +157,9 @@ /* DEBUG MACROS */ /*============================================================*/ -#ifndef SWIG #ifndef ASSERT #define ASSERT(x) assert(x) #endif /* ASSERT */ -#endif /* !SWIG */ /* levels definitions */ #define NONE 0 /* Display no debug message */ @@ -179,22 +170,17 @@ #define CALL 9 /* Display calls to most functions (with CHECK macros) */ /* Default level is INFO */ -#ifndef SWIG #ifndef TRACE_LEVEL #define TRACE_LEVEL INFO #endif /* TRACE_LEVEL */ -#endif /* !SWIG */ /* The level of the file being compiled. */ -#ifndef SWIG static int local_debug_level = TRACE_LEVEL; -#endif /* !SWIG */ /* A global level, changed by configuration or cmd line for example. default is 0. */ extern int fd_g_debug_lvl; /* Some portability code to get nice function name in __PRETTY_FUNCTION__ */ -#ifndef SWIG #if __STDC_VERSION__ < 199901L # if __GNUC__ >= 2 # define __func__ __FUNCTION__ @@ -205,17 +191,13 @@ #ifndef __PRETTY_FUNCTION__ #define __PRETTY_FUNCTION__ __func__ #endif /* __PRETTY_FUNCTION__ */ -#endif /* !SWIG */ /* A version of __FILE__ without the full path */ -#ifndef SWIG static char * file_bname = NULL; #define __STRIPPED_FILE__ (file_bname ?: (file_bname = basename(__FILE__))) -#endif /* !SWIG */ /* Boolean for tracing at a certain level */ -#ifndef SWIG #ifdef DEBUG #define TRACE_BOOL(_level_) ( ((_level_) <= local_debug_level + fd_g_debug_lvl) \ || (fd_debug_one_function && !strcmp(fd_debug_one_function, __PRETTY_FUNCTION__)) \ @@ -223,13 +205,11 @@ #else /* DEBUG */ #define TRACE_BOOL(_level_) ((_level_) <= local_debug_level + fd_g_debug_lvl) #endif /* DEBUG */ -#endif /* !SWIG */ /************* The general debug macro, each call results in two lines of debug messages (change the macro for more compact output) *************/ -#ifndef SWIG #ifdef DEBUG /* In DEBUG mode, we add (a lot of) meta-information along each trace. This makes multi-threading problems easier to debug. */ #define TRACE_DEBUG(level,format,args... ) { \ @@ -259,12 +239,10 @@ } \ } #endif /* DEBUG */ -#endif /* !SWIG */ /************* Derivatives from this macro ************/ -#ifndef SWIG /* Helper for function entry -- for very detailed trace of the execution */ #define TRACE_ENTRY(_format,_args... ) \ TRACE_DEBUG(FCTS, "[enter] %s(" _format ") {" #_args "}", __PRETTY_FUNCTION__, ##_args ); @@ -396,7 +374,6 @@ } #endif /* STRIP_DEBUG_CODE */ -#endif /* !SWIG */ /*============================================================*/ /* ERROR CHECKING MACRO */ @@ -405,7 +382,6 @@ /* Macros to check a return value and branch out in case of error. * These macro should be used only when errors are improbable, not for expected errors. */ -#ifndef SWIG /* Check the return value of a system function and execute fallback in case of error */ #define CHECK_SYS_DO( __call__, __fallback__ ) { \ @@ -499,14 +475,12 @@ CHECK_FCT_DO( __v__ = (__call__), return __v__ ); \ } -#endif /* !SWIG */ /*============================================================*/ /* OTHER MACROS */ /*============================================================*/ -#ifndef SWIG /* helper macros (pre-processor hacks to allow macro arguments) */ #define __str( arg ) #arg @@ -590,13 +564,11 @@ #define BUFSIZ 96 #endif /* BUFSIZ */ -#endif /* !SWIG */ /*============================================================*/ /* THREADS */ /*============================================================*/ -#ifndef SWIG /* Terminate a thread */ static __inline__ int fd_thr_term(pthread_t * th) @@ -659,7 +631,6 @@ *(int *)sockptr = -1; } } -#endif /* !SWIG */ /*============================================================*/ /* SIGNALS */ @@ -668,9 +639,7 @@ /* Register a new callback to be called on reception of a given signal (it receives the signal as parameter) */ /* EALREADY will be returned if there is already a callback registered on this signal */ /* NOTE: the signal handler will be called from a new detached thread */ -#ifndef SWIG int fd_sig_register(int signal, char * modname, void (*callback)(int signal)); -#endif /* !SWIG */ /* Remove the handler for a given signal */ int fd_sig_unregister(int signal); @@ -1581,9 +1550,7 @@ typedef void session_state; /* The following function must be called to activate the session expiry mechanism */ -#ifndef SWIG int fd_sess_start(void); -#endif /* !SWIG */ /* * FUNCTION: fd_sess_handler_create @@ -2171,10 +2138,8 @@ * 0 : ok * EINVAL: a parameter is invalid */ -#ifndef SWIG int fd_msg_anscb_associate( struct msg * msg, void ( *anscb)(void *, struct msg **), void * data ); int fd_msg_anscb_get ( struct msg * msg, void (**anscb)(void *, struct msg **), void ** data ); -#endif /* !SWIG */ /* * FUNCTION: fd_msg_rt_associate, fd_msg_rt_get @@ -2191,9 +2156,7 @@ * 0 : ok * EINVAL: a parameter is invalid */ -#ifndef SWIG int fd_msg_rt_associate( struct msg * msg, struct rt_data ** rtd ); -#endif /* !SWIG */ int fd_msg_rt_get ( struct msg * msg, struct rt_data ** rtd ); /* @@ -2231,9 +2194,7 @@ * 0 : Operation complete. * !0 : an error occurred. */ -#ifndef SWIG int fd_msg_source_set( struct msg * msg, char * diamid, int add_rr, struct dictionary * dict ); -#endif /* !SWIG */ int fd_msg_source_get( struct msg * msg, char ** diamid ); /* @@ -2309,9 +2270,7 @@ * EINVAL : A parameter is invalid. * ENOTSUP : There is no appropriate callback registered with this AVP's type. */ -#ifndef SWIG int fd_msg_avp_value_encode ( void *data, struct avp *avp ); -#endif /* !SWIG */ /* * FUNCTION: fd_msg_avp_value_interpret * @@ -2329,9 +2288,7 @@ * EINVAL : A parameter is invalid. * ENOTSUP : There is no appropriate callback registered with this AVP's type. */ -#ifndef SWIG int fd_msg_avp_value_interpret ( struct avp *avp, void *data ); -#endif /* !SWIG */ /***************************************/