![]() |
Lua Utils
Biblioteca utilitária para facilitar a integração de Lua com C++
|
#include <luaEnv.h>
Public Member Functions | |
AutoLuaEnv (int libOptions=LIB_ALL) | |
Construtor. Cria um novo ambiente lua que será destruído junto com o objeto. More... | |
~AutoLuaEnv () | |
Destrutor. Fecha o ambiente lua. | |
![]() | |
LuaEnv () | |
Construtor padrão. Cria objeto com ambiente Lua vazio. More... | |
LuaEnv (lua_State *state) | |
Construtor. Cria um LuaEnv a partir de um ambiente Lua pré-existente. | |
~LuaEnv () | |
Destrutor. Ambiente Lua NÃO é fechado automaticamente. | |
bool | newState (int libOptions=LIB_ALL) |
Cria um novo ambiente lua e o inicializa com as funções das bibliotecas especificadas Se a biblioteca está compilada com uso de espaço extra, zera este espaço. More... | |
void | closeState () |
Fecha o estado Lua. | |
void | removeSymbols (const QStringList &symbolNames) |
Atribui nil aos símbolos presentes na tabela recebida, removendo-os do ambiente. More... | |
void | setState (lua_State *state) |
Altera o ambiente Lua armazenado. Ambiente anterior, se existente, NÃO é fechado. | |
lua_State * | state () |
Retorna o estado Lua armazenado. | |
operator lua_State * () | |
Operador para converter um LuaEnv em um lua_State. | |
void | redirectOutput (RedirectedOutputCb cb, void *context) |
Redireciona o output produzido pelo script para a callback especificada. | |
void | replaceDofile (QString table="", ScriptNameFilterCb scriptNameFilter=NULL, void *scriptNameFilterContext=NULL) |
Substitui o método dofile() para que este passe a usar a função runRsrcScript() para carregar arquivos. Se table != "", usa a mesma como ambiente de destino para variáveis globais. Se scriptNameFilter for diferente de NULL, esta função será chamada, a cada dofile, para que o usuário possa alterar o nome do script usado para mensagens de erro. | |
void | setDofileTable (QString table) |
Updates the table where dofile functions should be executed. | |
void | setRsrcPath (const QStringList &pathList) |
Altera a lista de paths utilizados para busca de resoures na função runRsrcScript() | |
const QStringList & | rsrcPath () const |
Retorna lista de paths considerados para carga de resurces por runRsrcScript() | |
bool | runScript (QString file, QString table, QString &err) |
Carrega e executa script contido no arquivo recebido como parâmetro. More... | |
bool | runRsrcScript (QString file, QString table, QString &err) |
Carrega e executa script contido no resource recebido como parâmetro. More... | |
bool | runVerifiedRsrcScript (QString file, QString table, QString hash, bool encoded, QString &err) |
Carrega e executa script contido no resource recebido como parâmetro, decodificando o mesmo (se necessário) e conferindo se o hash do script confere com o hash recebido como parâmetro. More... | |
bool | runScriptStr (QString script, QString table, QString &err) |
Sobrecarrega runScriptStr() passando "" como nome do script. | |
bool | runScriptStr (QString script, QString table, QString name, QString &err) |
Carrega e executa script contido na string recebida como parâmetro. More... | |
bool | runScriptStr (QByteArray &script, QString table, QString name, QString &err) |
Carrega e executa script contido no byte array recebido como parâmetro. More... | |
void | setLoadTableEnv (int tableRef=LUA_NOREF) |
Cadastra referência para uma tabela que será utilizada como ambiente global pelas diversas funções de carga de scripts. Utilize LUA_NOREF para cancelar o uso desta tabela. Se uma referência válida for setada, esta terá precedência sobre qualquer nome de tabela passado como parâmetro para as funções de carga de script. | |
void | registerFunctions (const FunctionRegister *reg, const char *table=NULL) |
Se table for igual a NULL, cadastra funções presentes na lista reg no ambiente global. Caso contrário, cria tabela, seta a mesma na variável global table e cadastra as funções nesta nova tabela. | |
void | registerFunction (const char *globalName, lua_CFunction func, void *userdata_1=NULL, void *userdata_2=NULL) |
Associa a função func com a variável global globalName. More... | |
QVariant | getGlobal (const char *name, StackOption opt=STACK_AUTO) |
Obtem o valor da variavel global recebida como parâmetro. More... | |
QVariant | getGlobal (QString name, StackOption opt=STACK_AUTO) |
Método sobrecarregado recebendo um QString. | |
void | setGlobal (const char *name, const QVariant &val) |
Seta variável global com o valor recebido como parâmetro. More... | |
void | setGlobal (QString name, const QVariant &val) |
Método sobrecarregado recebendo um QString. | |
QVariant | toVariant (StackOption opt, int index=-1) |
Retorna o valor contido no topo da pilha como um QVariant. Se index for diferente de -1, retorna o valor associado com este índice. More... | |
void | pushVariant (const QVariant &val) |
Coloca val no topo da pilha. | |
void | pop (int num=1) |
Remove num elementos da pilha. | |
int | top () |
Retorna índice do elemento no topo da pilha. | |
void | setTop (int index) |
Altera topo da pilha para o indice recebido como parâmetro. | |
QVariant | getLocal (const char *name, StackOption opt=STACK_AUTO) |
Obtem o valor da variavel local recebida como parâmetro através do uso da interface de debug do Lua. More... | |
QVariant | getLocal (QString name, StackOption opt=STACK_AUTO) |
Método sobrecarregado recebendo um QString. | |
Additional Inherited Members | |
![]() | |
enum | StackOption { STACK_POP, STACK_NOPOP, STACK_AUTO } |
Opções de manipulação de pilha. More... | |
enum | LibraryOptions { LIB_BASE = 0x01, LIB_TABLE = 0x02, LIB_IO = 0x04, LIB_OS = 0x08, LIB_STRING = 0x10, LIB_MATH = 0x20, LIB_DEBUG = 0x40, LIB_PACKAGE = 0x80, LIB_ALL = 0xFF } |
Opçoes de bibliotecas a serem carregadas na inicialização do estado. More... | |
typedef luaL_Reg | FunctionRegister |
Tipo para tabela de funções a serem registradas no ambiente. | |
typedef void(* | RedirectedOutputCb) (void *context, QString str) |
Tipo para callback chamada para redirecionamento de output. | |
typedef QString(* | ScriptNameFilterCb) (void *context, QString scriptName) |
Tipo para callback chamada para ajustar o nome do script usado em mensagens de erro para arquivos carregados pela função dofile substituida por replaceDofile() | |
![]() | |
static bool | isIdentifier (QString str) |
Returns true if the given string can be used as a Lua identifier, false if not. More... | |
static QString | quote (QString str) |
Retorna uma versão da string recebida envolta por aspas ("xxx") e contendo os escape codes necessários. | |
static QVariant & | clearReferences (QVariant &obj, bool useLists, bool firstLevelIsMap, bool allowFunctions) |
Removes table and function references from the given QVariant. More... | |
Aplicação do modelo RAII à classe LuaEnv. No construtor cria um novo ambiente Lua e o inicializa. No destrutor fecha o ambiente
|
inline |
Construtor. Cria um novo ambiente lua que será destruído junto com o objeto.
Para uma descrição do parâmetro libOptions, veja a descrição da função LuaEnv::newState()