NAME
SOOT::API - Perl interface to Perl-ROOT wrapper internals
SYNOPSIS
DESCRIPTION
This package exposes some of the internals of the Perl-ROOT wrapper to Perl. All functions are to be considered experimental, mostly for internal use only, and certainly subject to change. If you need a stable API, contact the author(s).
EXPORT
None by default.
You may chose to import individual functions (see below) or all exported functions. You can import all functions with
FUNCTIONS
type(object)
Tries to guess the SOOT type of its argument and returns a string such as "INTEGER"
.
cproto(object)
Tries to guess the SOOT type of its argument and returns a string such as "int"
or "TGraph"
.
prevent_destruction(object)
Manually marks a given Perl object as not responsible for freeing the underlying ROOT object. If this is necessary, that's a bug in SOOT. This is a natural cause of memory leaks...
print_ptrtable_state()
Prints the full state of the SOOT-internal garbage collection pointer table.
is_same_object(obj1, obj2)
Returns true of the given two Perl objects point to the same underlying TObject. Note that this function may produce segmentation faults if you pass in non-TObjects. Instead, you can use the overloaded nature of TObject wrappers and compare to objects with
$obj1
==
$obj2
for the same effect, but without the fragility.
is_soot_class(className)
Returns a boolean indicating whether the given class has been initialized as a SOOT class. If not, you can do so manually with
SOOT->Load(
$className
)
OTHER API CLASSES
SOOT::API::ClassIterator
SOOT::API::ClassIterator
is a very simple iterator class that lets you iterate over all wrapped ROOT class names:
my
$iter
= SOOT::API::ClassIterator->new;
while
(
defined
(
my
$class
=
$iter
->
next
)) {
# use $class
}
SOOT::Struct
SOOT::Struct provides an interface to defining and accessing C-structs from Perl. Example:
my
$struct
= SOOT::Struct->new(
name
=>
'person_t'
,
fields
=> {
'name'
=>
'Char_t[20]'
,
'age'
=>
'UInt_t'
,
},
);
$struct
->compile;
my
$person
= person_t->new;
$person
->name(
"Steffen"
);
# stores in struct via SOOT
$person
->name(),
"\n"
;
# fetches via SOOT
SEE ALSO
AUTHOR
Steffen Mueller, <smueller@cpan.org>
COPYRIGHT AND LICENSE
Copyright (C) 2010 by Steffen Mueller
SOOT, the Perl-ROOT wrapper, is free software; you can redistribute it and/or modify it under the same terms as ROOT itself, that is, the GNU Lesser General Public License. A copy of the full license text is available from the distribution as the LICENSE file.