ExtUtils::XSpp::Node::Function - Node representing a function
An ExtUtils::XSpp::Node subclass representing a single function declaration such as
More importantly, ExtUtils::XSpp::Node::Method inherits from this class, so all in here equally applies to method nodes.
Creates a new
cpp_name indicating the C++ name of the function,
perl_name indicating the Perl name of the function (defaults to the same as
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
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.
%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.
%cleanup decorator if any.
%postcall decorator if any.
Returns the set of exception types that were associated with the function via
%catch. (array reference)
Returns a hashref of
name => position function name aliases (see %alias and perlxs ALIAS keyword). Does not include the main function name.
static-ness attribute of the function. Can be either undef (i.e. not 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( ... );