Ardour  8.7-15-gadf511264b
Namespace::ClassBase Class Reference
Inheritance diagram for Namespace::ClassBase:
[legend]

Public Member Functions

 ClassBase (lua_State *L_)
 
 ClassBase (ClassBase const &other)
 
 ~ClassBase ()
 

Protected Member Functions

void createConstTable (char const *name)
 
void createClassTable (char const *name)
 
void createStaticTable (char const *name)
 
void pop (int n) const
 

Static Protected Member Functions

static int indexMetaMethod (lua_State *L)
 
static int newindexMetaMethod (lua_State *L)
 
template<class Params , class C >
static int ctorContainerProxy (lua_State *L)
 
template<class Params , class T >
static int ctorPlacementProxy (lua_State *L)
 
template<class Params , class T , class C >
static int ctorPtrPlacementProxy (lua_State *L)
 
template<class T >
static int ctorNilPtrPlacementProxy (lua_State *L)
 

Protected Attributes

lua_State *const L
 
int m_stackSize
 

Private Member Functions

ClassBaseoperator= (ClassBase const &other)
 

Friends

class Namespace
 

Detailed Description

Factored base to reduce template instantiations.

Definition at line 184 of file Namespace.h.

Constructor & Destructor Documentation

◆ ClassBase() [1/2]

Namespace::ClassBase::ClassBase ( lua_State L_)
inlineexplicit

Definition at line 513 of file Namespace.h.

◆ ClassBase() [2/2]

Namespace::ClassBase::ClassBase ( ClassBase const &  other)
inline

Copy Constructor.

Definition at line 523 of file Namespace.h.

◆ ~ClassBase()

Namespace::ClassBase::~ClassBase ( )
inline

Definition at line 535 of file Namespace.h.

Member Function Documentation

◆ createClassTable()

void Namespace::ClassBase::createClassTable ( char const *  name)
inlineprotected

Create the class table.

The Lua stack should have the const table on top.

Definition at line 378 of file Namespace.h.

◆ createConstTable()

void Namespace::ClassBase::createConstTable ( char const *  name)
inlineprotected

Create the const table.

Definition at line 349 of file Namespace.h.

◆ createStaticTable()

void Namespace::ClassBase::createStaticTable ( char const *  name)
inlineprotected

Create the static table.

The Lua stack should have: -1 class table -2 const table -3 enclosing namespace

Definition at line 418 of file Namespace.h.

◆ ctorContainerProxy()

template<class Params , class C >
static int Namespace::ClassBase::ctorContainerProxy ( lua_State L)
inlinestaticprotected

lua_CFunction to construct a class object wrapped in a container.

Definition at line 456 of file Namespace.h.

◆ ctorNilPtrPlacementProxy()

template<class T >
static int Namespace::ClassBase::ctorNilPtrPlacementProxy ( lua_State L)
inlinestaticprotected

Definition at line 487 of file Namespace.h.

◆ ctorPlacementProxy()

template<class Params , class T >
static int Namespace::ClassBase::ctorPlacementProxy ( lua_State L)
inlinestaticprotected

lua_CFunction to construct a class object in-place in the userdata.

Definition at line 470 of file Namespace.h.

◆ ctorPtrPlacementProxy()

template<class Params , class T , class C >
static int Namespace::ClassBase::ctorPtrPlacementProxy ( lua_State L)
inlinestaticprotected

Definition at line 478 of file Namespace.h.

◆ indexMetaMethod()

static int Namespace::ClassBase::indexMetaMethod ( lua_State L)
inlinestaticprotected

__index metamethod for a class.

This implements member functions, data members, and property members. Functions are stored in the metatable and const metatable. Data members and property members are in the __propget table.

If the key is not found, the search proceeds up the hierarchy of base classes.

Definition at line 212 of file Namespace.h.

◆ newindexMetaMethod()

static int Namespace::ClassBase::newindexMetaMethod ( lua_State L)
inlinestaticprotected

__newindex metamethod for classes.

This supports writable variables and properties on class objects. The corresponding object is passed in the first parameter to the set function.

Definition at line 303 of file Namespace.h.

◆ operator=()

ClassBase& Namespace::ClassBase::operator= ( ClassBase const &  other)
private

◆ pop()

void Namespace::ClassBase::pop ( int  n) const
inlineprotected

Pop the Lua stack.

Definition at line 498 of file Namespace.h.

Friends And Related Function Documentation

◆ Namespace

friend class Namespace
friend

Definition at line 190 of file Namespace.h.

Member Data Documentation

◆ L

lua_State* const Namespace::ClassBase::L
protected

Definition at line 192 of file Namespace.h.

◆ m_stackSize

int Namespace::ClassBase::m_stackSize
mutableprotected

Definition at line 193 of file Namespace.h.


The documentation for this class was generated from the following file: