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

Classe para interface com ambientes Lua, modelando uma tabela. More...

#include <luaTable.h>

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

Public Member Functions

 LuaTable ()
 Construtor default.
 
 LuaTable (const LuaTable &other)
 Construtor de cópia. Gera nova referência para a mesma tabela Lua.
 
 LuaTable (LuaEnv *lua, int index, bool ref=false)
 Cria objeto encapsulando a tabela presente no indice recebido como parâmetro. More...
 
 LuaTable (LuaEnv *lua)
 Cria uma NOVA tabela no topo da pilha e constroi objeto encapsulando a mesma. More...
 
 ~LuaTable ()
 Destrutor.
 
QVariant getIndex (int index, LuaEnv::StackOption opt=LuaEnv::STACK_AUTO)
 Retorna o valor contido na posição "index" da tabela. More...
 
QVariant getField (const char *name, LuaEnv::StackOption opt=LuaEnv::STACK_AUTO)
 Retorna o valor contido no campo "name" da tabela. More...
 
void pushField (const char *name)
 Similar to getField(), instead of returning the value as a QVariant, pushes it on the stack.
 
QVariant getField (QString name, LuaEnv::StackOption opt=LuaEnv::STACK_AUTO)
 Método sobrecarregado recebendo um QString.
 
void pushField (QString name)
 Método sobrecarregado recebendo um QString.
 
QVariant toVariant () const
 Retorna um Qvariant.
 
QStringList toStringList ()
 Retorna conteúdo dos campos numéricos da tabela inclusos em uma lista de strings. More...
 
QList< double > toDoubleList ()
 Retorna conteúdo dos campos numéricos da tabela inclusos em uma lista de double. More...
 
QList< bool > toBoolList ()
 Retorna conteúdo dos campos numéricos da tabela inclusos em uma lista de bool. More...
 
QVariantList toVariantList ()
 Retorna conteúdo dos campos numéricos da tabela inclusos em uma lista de QVariant. More...
 
void fromStringList (const QStringList &list)
 Preenche tabela associando índices 1..n com valores presentes na lista recebida.
 
void fromVariantList (const QVariantList &list)
 Preenche tabela associando indices com o conteudo da lista recebida. More...
 
void fromVariantMap (const QVariantMap &map, bool useIntegerKeys=false)
 Preenche tabela associando chaves com o conteudo do mapa recebido. More...
 
void setIndex (int index, const QVariant &val, bool raw=false)
 Seta o valor contido na posição "index" da tabela.
 
void setField (const char *name, const QVariant &val, bool raw=false)
 Seta o valor contido na posição "name" da tabela.
 
void setField (const QVariant &key, const QVariant &val, bool raw=false)
 Seta o valor contido na posição key da tabela.
 
void setField (QString name, const QVariant &val, bool raw=false)
 Método sobrecarregado recebendo um QString.
 
bool callMethod (const char *name, int nresults, QString &err)
 Chama método, sem passar nenhum argumento além da própria tabela (self). More...
 
bool callMethod (const char *name, QVariant a1, int nresults, QString &err)
 Overload de callMethod() recebendo 1 parâmetro a ser passado para a função.
 
bool callMethod (const char *name, QVariant a1, QVariant a2, int nresults, QString &err)
 Overload de callMethod() recebendo 2 parâmetros a serem passados para a função.
 
bool callMethod (const char *name, QVariant a1, QVariant a2, QVariant a3, int nresults, QString &err)
 Overload de callMethod() recebendo 3 parâmetros a serem passados para a função.
 
bool callMethod (const char *name, QVariant a1, QVariant a2, QVariant a3, QVariant a4, int nresults, QString &err)
 Overload de callMethod() recebendo 4 parâmetros a serem passados para a função.
 
bool callMethod (const char *name, QVariant a1, QVariant a2, QVariant a3, QVariant a4, QVariant a5, int nresults, QString &err)
 Overload de callMethod() recebendo 5 parâmetros a serem passados para a função.
 
bool callMethod (const char *name, QVariant a1, QVariant a2, QVariant a3, QVariant a4, QVariant a5, QVariant a6, int nresults, QString &err)
 Overload de callMethod() recebendo 6 parâmetros a serem passados para a função.
 
bool callMethod (const char *name, QVariant a1, QVariant a2, QVariant a3, QVariant a4, QVariant a5, QVariant a6, QVariant a7, int nresults, QString &err)
 Overload de callMethod() recebendo 7 parâmetros a serem passados para a função.
 
bool callFunction (const char *name, int nresults, QString &err)
 Chama função, sem passar nenhum argumento. More...
 
bool callFunction (const char *name, QVariant a1, int nresults, QString &err)
 Overload de callFunction() recebendo 1 parâmetro a ser passado para a função.
 
bool callFunction (const char *name, QVariant a1, QVariant a2, int nresults, QString &err)
 Overload de callFunction() recebendo 2 parâmetros a serem passados para a função.
 
bool callFunction (const char *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.
 
bool callFunction (const char *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.
 
bool callFunction (const char *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.
 
bool callFunction (const char *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.
 
bool callFunction (const char *name, QVariant a1, QVariant a2, QVariant a3, QVariant a4, QVariant a5, QVariant a6, QVariant a7, int nresults, QString &err)
 Overload de callFunction() recebendo 7 parâmetros a serem passados para a função.
 
int size ()
 Retorna o tamanho da tabela. More...
 
template<class T >
bool traverse (T &obj)
 Passa por todos os itens da tabela chamando obj(Qvariant key, QVariant val), onde key e val contém o par (chave, valor) obtido da tabela através do uso da função lua_next. Se a chamada retornar false, aborta o loop. More...
 
bool callMethodPrepare (const char *name, bool pushTable, QString &err)
 Prepara cahamada de método da tabela, colocando função e self (se pushTable == true) no topo da pilha.
 
- 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...
 

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 tabela.

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

Constructor & Destructor Documentation

◆ LuaTable() [1/2]

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

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

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

◆ LuaTable() [2/2]

LuaTable::LuaTable ( LuaEnv lua)

Cria uma NOVA tabela no topo da pilha e constroi objeto encapsulando a mesma.

Parameters
luaAmbiente Lua

Member Function Documentation

◆ callFunction()

bool LuaTable::callFunction ( const char *  name,
int  nresults,
QString err 
)

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
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

◆ callMethod()

bool LuaTable::callMethod ( const char *  name,
int  nresults,
QString err 
)

Chama método, sem passar nenhum argumento além da própria tabela (self).

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

Parameters
nameNome do método a ser chamado
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

◆ fromVariantList()

void LuaTable::fromVariantList ( const QVariantList &  list)

Preenche tabela associando indices com o conteudo da lista recebida.

Esta função espera que a lista recebida contenha strings, números, booleanos, QVariants nulos, QVariantMaps ou QVariantLists (conforme esperado se a lista tiver sido criado por uma chamada a LuaEnv::clearReferences()). Mapas e listas são processados recursivamente. Valores com tipos distintos dos acima são simplesmente ignorados.

◆ fromVariantMap()

void LuaTable::fromVariantMap ( const QVariantMap &  map,
bool  useIntegerKeys = false 
)

Preenche tabela associando chaves com o conteudo do mapa recebido.

Esta função espera que o mapa recebido contenha strings, números, booleanos, QVariants nulos, QVariantMaps ou QVariantLists (conforme esperado se o mapa tiver sido criado por uma chamada a LuaEnv::clearReferences()). Mapas e listas são processados recursivamente. Valores com tipos distintos dos acima são simplesmente ignorados.

If useIntegerKeys is set to ture, if the key in the map can be translated to an integer value, that integer will be used as key instead of the original string with that integer.

◆ getField()

QVariant LuaTable::getField ( const char *  name,
LuaEnv::StackOption  opt = LuaEnv::STACK_AUTO 
)

Retorna o valor contido no campo "name" da tabela.

Valor é ou não mantido da pilha de acordo com o valor do parâmetro opt, conforme descrito em

See also
LuaEnv::getGlobal()

◆ getIndex()

QVariant LuaTable::getIndex ( int  index,
LuaEnv::StackOption  opt = LuaEnv::STACK_AUTO 
)

Retorna o valor contido na posição "index" da tabela.

Valor é ou não mantido da pilha de acordo com o valor do parâmetro opt, conforme descrito em

See also
LuaEnv::getGlobal()

◆ size()

int LuaTable::size ( )

Retorna o tamanho da tabela.

Válida apenas para tabelas que funcionam como um array (tabelas cujo primeiro valor está no índice 1 e não possui "buracos")

◆ toBoolList()

QList< bool > LuaTable::toBoolList ( )

Retorna conteúdo dos campos numéricos da tabela inclusos em uma lista de bool.

Válida apenas para tabelas que funcionam como um array (tabelas cujo primeiro valor está no índice 1 e não possui "buracos"), que contenham valores conversíveis para bool

◆ toDoubleList()

QList< double > LuaTable::toDoubleList ( )

Retorna conteúdo dos campos numéricos da tabela inclusos em uma lista de double.

Válida apenas para tabelas que funcionam como um array (tabelas cujo primeiro valor está no índice 1 e não possui "buracos"), que contenham valores conversíveis para double

◆ toStringList()

QStringList LuaTable::toStringList ( )

Retorna conteúdo dos campos numéricos da tabela inclusos em uma lista de strings.

Válida apenas para tabelas que funcionam como um array (tabelas cujo primeiro valor está no índice 1 e não possui "buracos"), que contenham valores conversíveis para string

◆ toVariantList()

QVariantList LuaTable::toVariantList ( )

Retorna conteúdo dos campos numéricos da tabela inclusos em uma lista de QVariant.

Válida apenas para tabelas que funcionam como um array (tabelas cujo primeiro valor está no índice 1 e não possui "buracos")

◆ traverse()

template<class T >
bool LuaTable::traverse ( T &  obj)

Passa por todos os itens da tabela chamando obj(Qvariant key, QVariant val), onde key e val contém o par (chave, valor) obtido da tabela através do uso da função lua_next. Se a chamada retornar false, aborta o loop.

Obs: obj() deve ser balanceada, ou seja o estado da pilha após a chamada do objeto deve ser o mesmo que em sua entrada

Retorna false se o loop foi abortado, true se todos os objetos foram percorridos


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