CORBA-omniORB
view release on metacpan or search on metacpan
EXTEND(SP, 2);
PUSHs(sv_2mortal(newSVuv(PTR2UV(pomni_unlock))));
PUSHs(sv_2mortal(newSVuv(PTR2UV(pomni_relock))));
MODULE = CORBA::omniORB PACKAGE = CORBA
SV *
ORB_init (id)
char *id
CODE:
{
SV *weakref = get_sv("CORBA::omniORB::_the_orb", TRUE);
if (SvROK(weakref)) {
RETVAL = newSV(0);
sv_setsv(RETVAL, weakref);
}
else {
if (CORBA::is_nil(pomni_orb)) {
int i;
AV *ARGV = get_av("ARGV", FALSE);
SV *ARGV0 = get_sv("0", FALSE);
AV *ARGV_copy = newAV();
sv_2mortal((SV*)ARGV_copy);
for (i = 0; i <= av_len(ARGV); i++)
av_store(ARGV_copy, i, newSVsv(*av_fetch(ARGV, i, 0)));
int argc = av_len(ARGV_copy) + 2;
char **argv = (char **) malloc (sizeof(char *) * argc);
argv[0] = SvPV (ARGV0, PL_na);
for (i = 0; i <= av_len(ARGV_copy); i++ )
argv[i+1] = SvPV( *av_fetch(ARGV_copy, i, 0), PL_na );
try {
pomni_orb = CORBA::ORB_init (argc, argv, id);
} catch (CORBA::SystemException &ex) {
if (argv)
free (argv);
pomni_throw (aTHX_
pomni_system_except (aTHX_
ex._rep_id(),
ex.minor(),
ex.completed()));
}
av_clear (ARGV);
for (i = 1; i < argc; i++)
av_store (ARGV, i - 1, newSVpv(argv[i], 0));
if (argv)
free (argv);
}
RETVAL = newSV(0);
sv_setref_pv(RETVAL, "CORBA::ORB",
(void *) CORBA::ORB::_duplicate(pomni_orb));
sv_setsv(weakref, RETVAL);
sv_rvweaken(weakref);
}
}
OUTPUT:
RETVAL
bool
is_nil (self)
CORBA::Object self;
CODE:
RETVAL = CORBA::is_nil (self);
OUTPUT:
RETVAL
MODULE = CORBA::omniORB PACKAGE = CORBA::Any
SV *
new (pkg, type, value)
CORBA::TypeCode type
SV *value
CODE:
CORBA::Any any(type, 0);
if (!pomni_to_any (aTHX_ &any, value)) {
croak("Error constructing Any");
}
RETVAL = pomni_any_to_sv(aTHX_ any);
OUTPUT:
RETVAL
SV *
value (self)
SV *self
CODE:
CORBA::Any any;
pomni_any_from_sv(aTHX_ &any, self);
RETVAL = pomni_from_any (aTHX_ &any);
OUTPUT:
RETVAL
CORBA::TypeCode
type (self)
SV *self
CODE:
CORBA::Any any;
pomni_any_from_sv(aTHX_ &any, self);
RETVAL = any.type();
OUTPUT:
RETVAL
MODULE = CORBA::omniORB PACKAGE = CORBA::ORB
char *
object_to_string (self, obj)
CORBA::ORB self
CORBA::Object obj
CODE:
CORBA::String_var string = self->object_to_string (obj);
RETVAL = (char *) string;
OUTPUT:
RETVAL
( run in 1.526 second using v1.01-cache-2.11-cpan-54e63673c56 )