#include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "PerlBonoboInt.h" #include "BonoboDefs.h" #include "GtkDefs.h" #define POPT_AUTOHELP #include #undef POPT_AUTOHELP #include static void callXS (void (*subaddr)(CV* cv), CV *cv, SV **mark) { int items; dSP; PUSHMARK (mark); (*subaddr)(cv); PUTBACK; /* Forget the return values */ } #define CHECK_EXCEPTION(ev) \ if (ev._major != CORBA_NO_EXCEPTION) { \ SV *__sv = porbit_builtin_except (&ev); \ porbit_throw (__sv); \ } BonoboUINode* SvBonoboUINode (SV *data, BonoboUINode* n) { } MODULE = Bonobo PACKAGE = Bonobo PREFIX = bonobo_ BOOT: gnomelib_register_popt_table(oaf_popt_options, "Oaf options"); gboolean bonobo_init(Class, orb=NULL, poa=NULL, manager=NULL) SV * Class CORBA::ORB orb PortableServer::POA poa PortableServer::POAManager manager CODE: { /* oaf_init() */ if (!orb) { int argc, i; char **argv; AV * ARGV; SV * ARGV0; ARGV = perl_get_av("ARGV", FALSE); ARGV0 = perl_get_sv("0", FALSE); argc = av_len(ARGV)+2; argv = (char **)malloc (sizeof(char *)*argc); argv[0] = SvPV (ARGV0, PL_na); for (i=0;i<=av_len(ARGV);i++) argv[i+1] = SvPV(*av_fetch(ARGV, i, 0), PL_na); orb = oaf_init(argc, argv); free(argv); } RETVAL = bonobo_init(orb, poa, manager); bonobo_object_init(); bonobo_context_init(); Bonobo_InstallObjects(); Bonobo_InstallTypedefs(); } OUTPUT: RETVAL void bonobo_main(Class) SV * Class CODE: bonobo_main(); gboolean bonobo_activate(Class) SV * Class CODE: RETVAL = bonobo_activate(); OUTPUT: RETVAL void bonobo_setup_x_error_handler(Class) SV * Class CODE: bonobo_setup_x_error_handler(); CORBA::ORB bonobo_orb(Class) SV * Class CODE: RETVAL = bonobo_orb(); OUTPUT: RETVAL PortableServer::POA bonobo_poa(Class) SV * Class CODE: RETVAL = bonobo_poa(); OUTPUT: RETVAL PortableServer::POAManager bonobo_poa_manager(Class) SV * Class CODE: RETVAL = bonobo_poa_manager(); OUTPUT: RETVAL CORBA::Object bonobo_get_object (Class, name, interface=NULL) SV * Class char * name char * interface CODE: TRY(RETVAL = bonobo_get_object ( name, interface, &ev)); OUTPUT: RETVAL INCLUDE: ../build/boxed.xsh INCLUDE: ../build/objects.xsh INCLUDE: ../build/extension.xsh