| ExtUtils-XSpp documentation | view source | Contained in the ExtUtils-XSpp distribution. |
ExtUtils::XSpp::Node::Function - Node representing a function
An ExtUtils::XSpp::Node subclass representing a single function declaration such as
int foo();
More importantly, ExtUtils::XSpp::Node::Method inherits from this class, so all in here equally applies to method nodes.
Creates a new ExtUtils::XSpp::Node::Function.
Named parameters: cpp_name indicating the C++ name of the function,
perl_name indicating the Perl name of the function (defaults to the
same as cpp_name), arguments can be a reference to an
array of ExtUtils::XSpp::Node::Argument objects and finally
ret_type indicates the (C++) return type of the function.
Additionally, there are several optional decorators for a function
declaration (see ExtUtils::XSpp for a list). These can be
passed to the constructor as code, cleanup, postcall,
and catch. catch is special in that it must be a reference
to an array of class names.
Fetches the ExtUtils::XSpp::Typemap object for the return type and the arguments from the typemap registry and stores a reference to those objects.
Fetches the ExtUtils::XSpp::Exception object for
the %catch directives associated with this function.
Adds a list of exception names to the list of exception handlers.
This is mainly called by a class' add_methods method.
If the function is hard-wired to have no exception handlers,
any extra handlers from the class are ignored.
Returns a string with a C++ method declaration for the node.
Returns the name of the Perl function to generate.
Returns whether the object at hand is a method. Hard-wired
to be false for ExtUtils::XSpp::Node::Function object,
but overridden in the ExtUtils::XSpp::Node::Method sub-class.
Returns true if the function has any argument that uses the XS length feature.
Returns the C++ name of the function.
Returns the Perl name of the function (defaults to same as C++).
Sets the Perl name of the function.
Returns the internal array reference of ExtUtils::XSpp::Node::Argument objects that represent the function arguments.
Returns the C++ return type.
Returns the %code decorator if any.
Sets the implementation for the method call (equivalent to using
%code); takes the code as an array reference containing the lines.
Returns the %cleanup decorator if any.
Returns the %postcall decorator if any.
Returns the set of exception types that were associated
with the function via %catch. (array reference)
Sets the static-ness attribute of the function.
Can be either undef (i.e. not static), "package_static",
or "class_static".
Returns whether the function is package static. A package static function can be invoked as:
My::Package::Function( ... );
Returns whether the function is class static. A class static function can be invoked as:
My::Package->Function( ... );
| ExtUtils-XSpp documentation | view source | Contained in the ExtUtils-XSpp distribution. |