|
NAMEExtUtils::XSpp::Node::Function - Node representing a functionDESCRIPTIONAn ExtUtils::XSpp::Node subclass representing a single function declaration such asint foo(); More importantly, ExtUtils::XSpp::Node::Method inherits from this class, so all in here equally applies to method nodes. METHODSnewCreates 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. resolve_typemapsFetches the ExtUtils::XSpp::Typemap object for the return type and the arguments from the typemap registry and stores a reference to those objects.resolve_exceptionsFetches the ExtUtils::XSpp::Exception object for the %catch directives associated with this function.add_exception_handlersAdds 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.print_declarationReturns a string with a C++ method declaration for the node.perl_function_nameReturns the name of the Perl function to generate.is_methodReturns 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.has_argument_with_lengthReturns true if the function has any argument that uses the XS length feature.ACCESSORScpp_nameReturns the C++ name of the function.perl_nameReturns the Perl name of the function (defaults to same as C++).set_perl_nameSets the Perl name of the function.argumentsReturns the internal array reference of ExtUtils::XSpp::Node::Argument objects that represent the function arguments.ret_typeReturns the C++ return type.codeReturns the %code decorator if any.set_codeSets the implementation for the method call (equivalent to using %code); takes the code as an array reference containing the lines.cleanupReturns the %cleanup decorator if any.postcallReturns the %postcall decorator if any.catchReturns the set of exception types that were associated with the function via %catch. (array reference)aliasesReturns a hashref of "name => position" function name aliases (see %alias and perlxs ALIAS keyword). Does not include the main function name.set_staticSets the "static"-ness attribute of the function. Can be either undef (i.e. not static), "package_static", or "class_static".package_staticReturns whether the function is package static. A package static function can be invoked as:My::Package::Function( ... ); class_staticReturns whether the function is class static. A class static function can be invoked as:My::Package->Function( ... ); ret_typemapReturns the typemap for the return value of the function.set_ret_typemap( typemap )Sets the typemap for the return value of the function.arg_typemap( index )Returns the typemap for one function arguments.set_arg_typemap( index, typemap )Sets the typemap for one function argument.
Visit the GSP FreeBSD Man Page Interface. |