Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
ExtUtils::XSpp::Node::UsertContributed Perl DExtUtils::XSpp::Node::Function(3)

NAME
       ExtUtils::XSpp::Node::Function -	Node representing a function

DESCRIPTION
       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.

METHODS
   new
       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.

   resolve_typemaps
       Fetches the ExtUtils::XSpp::Typemap object for the return type and the
       arguments from the typemap registry and stores a	reference to those
       objects.

   resolve_exceptions
       Fetches the ExtUtils::XSpp::Exception object for	the %catch directives
       associated with this function.

   add_exception_handlers
       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.

   print_declaration
       Returns a string	with a C++ method declaration for the node.

   perl_function_name
       Returns the name	of the Perl function to	generate.

   is_method
       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.

   has_argument_with_length
       Returns true if the function has	any argument that uses the XS length
       feature.

ACCESSORS
   cpp_name
       Returns the C++ name of the function.

   perl_name
       Returns the Perl	name of	the function (defaults to same as C++).

   set_perl_name
       Sets the	Perl name of the function.

   arguments
       Returns the internal array reference of ExtUtils::XSpp::Node::Argument
       objects that represent the function arguments.

   ret_type
       Returns the C++ return type.

   code
       Returns the %code decorator if any.

   set_code
       Sets the	implementation for the method call (equivalent to using
       %code); takes the code as an array reference containing the lines.

   cleanup
       Returns the %cleanup decorator if any.

   postcall
       Returns the %postcall decorator if any.

   catch
       Returns the set of exception types that were associated with the
       function	via %catch. (array reference)

   aliases
       Returns a hashref of "name => position" function	name aliases (see
       %alias and perlxs ALIAS keyword).  Does not include the main function
       name.

   set_static
       Sets the	"static"-ness attribute	of the function.  Can be either	undef
       (i.e. not static), "package_static", or "class_static".

   package_static
       Returns whether the function is package static.	A package static
       function	can be invoked as:

	   My::Package::Function( ... );

   class_static
       Returns whether the function is class static. A class static function
       can be invoked as:

	   My::Package->Function( ... );

   ret_typemap
       Returns 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.

perl v5.32.0			  2020-08-09 ExtUtils::XSpp::Node::Function(3)

NAME | DESCRIPTION | METHODS | ACCESSORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=ExtUtils::XSpp::Node::Function&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help