// [[[ HEADER ]]]
using
std::cout;
using
std::cerr;
using
std::endl;
#ifndef __CPP__INCLUDED__RPerl__CompileUnit__Module__Class__CPP_h
#define __CPP__INCLUDED__RPerl__CompileUnit__Module__Class__CPP_h 0.003_000
// [[[ INCLUDES ]]]
// BASE CLASS DOES NOT INCLUDE RPerl.cpp OR HelperFunctions.cpp
#include <rperltypes_mode.h> // for definitions of __PERL__TYPES or __CPP__TYPES
#include <rperloperations.h> // for operations
#include <rperltypes.h> // for data types and structures
# ifdef __PERL__TYPES
// [[[<<< BEGIN PERL TYPES >>>]]]
// [[[<<< BEGIN PERL TYPES >>>]]]
// [[[<<< BEGIN PERL TYPES >>>]]]
// [[[ OO INHERITANCE ]]]
// BASE CLASS HAS NO INHERITANCE
class
RPerl__CompileUnit__Module__Class__CPP
{
public
:
// [[[ OO METHODS ]]]
// <<< OO PROPERTIES, ACCESSORS & MUTATORS >>>
// BASE CLASS HAS NO PROPERTIES
// <<< CONSTRUCTOR & DESTRUCTOR >>>
RPerl__CompileUnit__Module__Class__CPP() {}
~RPerl__CompileUnit__Module__Class__CPP() {}
// <<< CLASS NAME REPORTER >>>
virtual
SV* myclassname() {
return
newSVpv(
"RPerl::CompileUnit::Module::Class"
, 0); }
//private:
// [[[ OO PROPERTIES ]]]
// BASE CLASS HAS NO PROPERTIES
};
// [[[ SUBROUTINES ]]]
// DEV NOTE: this is inherited by all RPerl C++ classes, which allows us to call C++ classname(object) as generated from RPerl class($object)
SV* classname(RPerl__CompileUnit__Module__Class__CPP* my_object) {
return
my_object->myclassname(); }
// [[[<<< END PERL TYPES >>>]]]
// [[[<<< END PERL TYPES >>>]]]
// [[[<<< END PERL TYPES >>>]]]
# elif defined __CPP__TYPES
// [[[<<< BEGIN CPP TYPES >>>]]]
// [[[<<< BEGIN CPP TYPES >>>]]]
// [[[<<< BEGIN CPP TYPES >>>]]]
// [[[ RAWPTR DEFINES ]]]
#define get_raw() get()
#define set_raw(X) reset(X)
// [[[ OO INHERITANCE ]]]
// BASE CLASS HAS NO INHERITANCE
class
RPerl__CompileUnit__Module__Class__CPP
{
public
:
// [[[ OO METHODS ]]]
// <<< OO PROPERTIES, ACCESSORS & MUTATORS >>>
// BASE CLASS HAS NO PROPERTIES
// <<< CONSTRUCTOR & DESTRUCTOR >>>
RPerl__CompileUnit__Module__Class__CPP() {}
~RPerl__CompileUnit__Module__Class__CPP() {}
// <<< CLASS NAME REPORTER >>>
virtual
string myclassname() {
return
(
const
string)
"RPerl::CompileUnit::Module::Class"
; }
//private:
// [[[ OO PROPERTIES ]]]
// BASE CLASS HAS NO PROPERTIES
};
// [[[ SUBROUTINES ]]]
// DEV NOTE: this is inherited by all RPerl C++ classes, which allows us to call C++ classname(object) as generated from RPerl class($object)
string classname(RPerl__CompileUnit__Module__Class__CPP* my_object) {
return
my_object->myclassname(); }
// [[[<<< END CPP TYPES >>>]]]
// [[[<<< END CPP TYPES >>>]]]
// [[[<<< END CPP TYPES >>>]]]
# else
Purposefully_die_from_a_compile-time_error,_due_to_neither___PERL__TYPES_nor___CPP__TYPES_being_defined.__We_need_to_define_exactly_one!
# endif
#endif