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

Classe para interface com ambientes Lua, modelando uma função. More...

#include <luaFunction.h>

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

Public Member Functions

 LuaFunction ()
 Construtor default.
 
 LuaFunction (const LuaFunction &other)
 Construtor de cópia. Gera nova referência para a mesma tabela Lua.
 
 LuaFunction (LuaEnv *lua, int index, bool ref=false)
 Cria objeto encapsulando a tabela presente no indice recebido como parâmetro. More...
 
 ~LuaFunction ()
 Destrutor.
 
bool call (int nresults, QString &err) const
 Chama função, sem passar nenhum argumento. More...
 
bool call (QVariant a1, int nresults, QString &err) const
 Overload de call() recebendo 1 parâmetro a ser passado para a função.
 
bool call (QVariant a1, QVariant a2, int nresults, QString &err) const
 Overload de call() recebendo 2 parâmetros a serem passados para a função.
 
bool call (QVariant a1, QVariant a2, QVariant a3, int nresults, QString &err) const
 Overload de call() recebendo 3 parâmetros a serem passados para a função.
 
bool call (QVariant a1, QVariant a2, QVariant a3, QVariant a4, int nresults, QString &err) const
 Overload de call() recebendo 4 parâmetros a serem passados para a função.
 
bool call (QVariant a1, QVariant a2, QVariant a3, QVariant a4, QVariant a5, int nresults, QString &err) const
 Overload de call() recebendo 5 parâmetros a serem passados para a função.
 
bool call (QVariant a1, QVariant a2, QVariant a3, QVariant a4, QVariant a5, QVariant a6, int nresults, QString &err) const
 Overload de call() recebendo 6 parâmetros a serem passados para a função.
 
- Public Member Functions inherited from LuaObjRef
 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...
 

Static Public Member Functions

static bool callFunction (LuaEnv *lua, QString name, int nresults, QString &err)
 Chama função identificada por seu nome, sem passar nenhum argumento. More...
 
static bool callFunction (LuaEnv *lua, QString name, QVariant a1, int nresults, QString &err)
 Overload de callFunction recebendo 1 parâmetro a ser passado para a função.
 
static bool callFunction (LuaEnv *lua, QString name, QVariant a1, QVariant a2, int nresults, QString &err)
 Overload de callFunction recebendo 2 parâmetros a serem passados para a função.
 
static bool callFunction (LuaEnv *lua, QString name, QVariant a1, QVariant a2, QVariant a3, int nresults, QString &err)
 Overload de callFunction recebendo 3 parâmetros a serem passados para a função.
 
static bool callFunction (LuaEnv *lua, QString name, QVariant a1, QVariant a2, QVariant a3, QVariant a4, int nresults, QString &err)
 Overload de callFunction recebendo 4 parâmetros a serem passados para a função.
 
static bool callFunction (LuaEnv *lua, QString name, QVariant a1, QVariant a2, QVariant a3, QVariant a4, QVariant a5, int nresults, QString &err)
 Overload de callFunction recebendo 5 parâmetros a serem passados para a função.
 
static bool callFunction (LuaEnv *lua, QString name, QVariant a1, QVariant a2, QVariant a3, QVariant a4, QVariant a5, QVariant a6, int nresults, QString &err)
 Overload de callFunction recebendo 6 parâmetros a serem passados para a função.
 
static bool doCall (LuaEnv *lua, int nparams, int nresults, QString &err)
 Chama função, passando nparams (que já devem estar na pilha) e esperando nresults resultados. Assume que a função já está na pilha sob os parâmetros. More...
 

Additional Inherited Members

- Protected Member Functions inherited from LuaObjRef
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 inherited from LuaObjRef
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 função.

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

Constructor & Destructor Documentation

◆ LuaFunction()

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

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

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

Member Function Documentation

◆ call()

bool LuaFunction::call ( int  nresults,
QString err 
) const

Chama função, sem passar nenhum argumento.

Resultados são mantidos na pilha. Em caso de erro a mensagem é retirada da pilha e retornada em err.

Parameters
nresultsNumero de resultados da função
errRetorna mensagem explicativa no caso de erro
Returns
Retorna true se a chamada foi executada com sucesso, false caso contrário

◆ callFunction()

bool LuaFunction::callFunction ( LuaEnv lua,
QString  name,
int  nresults,
QString err 
)
static

Chama função identificada por seu nome, sem passar nenhum argumento.

Resultados são mantidos na pilha. Em caso de erro a mensagem é retirada da pilha e retornada em err.

Parameters
luaAmbiente Lua no qual a função será chamada
nameNome da função a ser chamada
nresultsNumero de resultados da função
errRetorna mensagem explicativa no caso de erro
Returns
Retorna true se a chamada foi executada com sucesso, false caso contrário

◆ doCall()

bool LuaFunction::doCall ( LuaEnv lua,
int  nparams,
int  nresults,
QString err 
)
static

Chama função, passando nparams (que já devem estar na pilha) e esperando nresults resultados. Assume que a função já está na pilha sob os parâmetros.

Resultados são mantidos na pilha. Em caso de erro a mensagem é retirada da pilha e retornada em err.

Parameters
luaAmbiente Lua no qual a função será chamada
nparamsNumero de parâmetros na pilha
nresultsNumero de resultados da função
errRetorna mensagem explicativa no caso de erro
Returns
Retorna true se a chamada foi executada com sucesso, false caso contrário

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