![]() |
Lua Utils
Biblioteca utilitária para facilitar a integração de Lua com C++
|
Classe para interface com ambientes Lua, modelando uma referência para um objeto. More...
#include <luaObjRef.h>
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. | |
LuaObjRef & | operator= (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) | |
LuaEnv * | env () 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. | |
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.
LuaObjRef::LuaObjRef | ( | LuaEnv * | lua, |
int | index, | ||
bool | ref = false |
||
) |
Cria objeto encapsulando o objeto presente no indice recebido como parâmetro.
lua | Ambiente Lua |
index | Indice do objeto na pilha (aceita indices negativos que são internamente convertidos para seu equivalente positivo) |
ref | Se 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. |
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.