Manual Pages for UNIX Darwin command on man build::Wx::XSP::XSpp
MyWebUniversity

Manual Pages for UNIX Darwin command on man build::Wx::XSP::XSpp

build::Wx::XSP::XSpp(3)User Contributed Perl Documentatiobnuild::Wx::XSP::XSpp(3)

NAME

XSpp - XS for C++

SYNOPSIS

In Foo.xs (all in one line):

INCLUDE: perl xsubppp.pl -typemap=typemap.xsp

Foo.xsp | OOVVEERRVVIIEEWW XS++ is just a thin layer over plain XS, hence to use it you are supposed to know, at the very least, C++ and XS. This means that you will need typemaps for bbootthh xsubpp and xsubppp. TTYYPPEEMMAAPPSS There is nothing special about typemap files (i.e. you can put typemaps directly in your .xsp file), but it is handy to have common typemaps in a separate file, to avoid duplication.

%typemap{}{simple};

Just let XS++ that this is a valid type, the type will be passed unchanged to XS code eexxcceepptt that any "const" qualifiers will be stripped.

%typemap{}{parsed}{%%};

When "C++ type 1" is used, replace it with "C++ type 2" in the generated XS code.

%typemap{}{reference};

Handle C++ references: the XS variable will be declared as a pointer, and it will be explicitly dereferenced in the function call. If it is used in the return value, the function will create ccooppyy of the returned value using a copy constructor.

DESCRIPTION

Anything that does not look like a XS++ directive or a class declaration is passed verbatim to XS. If you want XS++ to ignore code that looks like a XS++ directive or class declaration, simply surround it with a raw block delimiter like this:

%{

XS++ won't interpret this

%}

%%ccooddee

See under CCllaasssseess.

%%ffiillee

%file{file/path.h};

...

%file{file/path2};

...

%file{-}

By default XS++ output goes to standard output; to change this, use the

%file directive; use "-" for standard output.

%%mmoodduullee

%module{ModuleName};

Will be used to generate the "MODULE=ModuleName" XS directives.

%%nnaammee

%name{Perl::Class} class MyClass { ... };

%name{Perl::Func} int foo();

Specifies the perl name under which the C++ class/function will be accessible.

%%ttyyppeemmaapp

See TTYYPPEEMMAAPPSS above. CCllaasssseess

%name{My::Class} class MyClass

{

// can be called in Perl as My::Class->new( ... );

MyClass( int arg );

// My::Class->newMyClass( ... );

%name{newMyClass} MyClass( const char* str, int arg );

// standard DESTROY method ~MyClass(); int GetInt();

void SetValue( int arg = -1 );

%name{SetString} void SetValue( const char* string = NULL );

// Supply a C or C block for the XS int MyMethod( int a, int b )

%code{% RETVAL = a + b; %}

%cleanup{% /* do something */ %};

};

perl v5.8.8 2007-03-10 build::Wx::XSP::XSpp(3)




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™