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( ... );
Returns the typemap for the return value of the function.
Sets the typemap for the return value of the function.
Returns the typemap for one function arguments.
Sets the typemap for one function argument.