Lua Utils
Biblioteca utilitária para facilitar a integração de Lua com C++
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
LuaObjRef Class Reference

Classe para interface com ambientes Lua, modelando uma referência para um objeto. More...

#include <luaObjRef.h>

Inheritance diagram for LuaObjRef:
Inheritance graph
[legend]
Collaboration diagram for LuaObjRef:
Collaboration graph
[legend]

Public Member Functions

 LuaObjRef ()
 Construtor default.
 
 LuaObjRef (const LuaObjRef &other)
 Construtor de cópia. Gera nova referência para o mesmo objeto.
 
 LuaObjRef (LuaEnv *lua, int index, bool ref=false)
 Cria objeto encapsulando o objeto presente no indice recebido como parâmetro. More...
 
 ~LuaObjRef ()
 Destrutor.
 
LuaObjRefoperator= (const LuaObjRef &)
 Operador de atribuição.
 
void makeRef ()
 Se objeto armazena apenas o índice na pilha, cria nova referência para o objeto e a armazena.
 
int ref () const
 Retorna a referência salva pelo objeto (pode ser LUA_NOREF)
 
void push () const
 Coloca referência para o objeto no topo da pilha em Lua.
 
bool isValid () const
 Retorna true se o objeto contiver uma referência válida (não foi construída com o construtor default)
 
LuaEnvenv () const
 Retorna o ambiente Lua a que este objeto pertence.
 
void adjustStackIndex (int offset)
 Adds the given (positive or negative) offset to the table's stackIndex. Should be used only for tables storing an index, and NOT for tables storing a reference. More...
 

Protected Member Functions

int objectPos ()
 Se o objeto já está na pilha (_ref == LUA_NOREF), simplesmente retorna sua posição. Senão (estamos mantendo uma referência para o objeto), coloca o mesmo no topo da pilha e retorna esta posição.
 

Protected Attributes

LuaEnv_lua
 Estado Lua que contém o objeto.
 
int _stackIndex
 Indice na pilha contendo o objeto. Valido se _ref == LUA_NOREF.
 
int _ref
 Referencia para o objeto.
 

Detailed Description

Classe para interface com ambientes Lua, modelando uma referência para um objeto.

Dependendo de como o objeto for construido, pode criar e guardar uma referência para o objeto ou simplesmente guardar a posição na pilha que o objeto ocupa. Neste segundo caso, o objeto é válido apenas enquanto o mesmo continuar na mesma posição da pilha.

Constructor & Destructor Documentation

◆ LuaObjRef()

LuaObjRef::LuaObjRef ( LuaEnv lua,
int  index,
bool  ref = false 
)

Cria objeto encapsulando o objeto presente no indice recebido como parâmetro.

Parameters
luaAmbiente Lua
indexIndice do objeto na pilha (aceita indices negativos que são internamente convertidos para seu equivalente positivo)
refSe true, armazena uma referência para o objeto. Se false, armazena apenas o índice da pilha onde o objeto está. Neste caso, o objeto se mantém válido apenas enquanto este estiver neste indice da pilha.

Member Function Documentation

◆ adjustStackIndex()

void LuaObjRef::adjustStackIndex ( int  offset)

Adds the given (positive or negative) offset to the table's stackIndex. Should be used only for tables storing an index, and NOT for tables storing a reference.

For those who know what they are doing. Usefull to adjust the table stack position if the Lua stack was altered by lua_remove() or lua_insert(), for exemple.


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