Версия:

Модуль lua/utils

Модуль lua/utils

void *luaL_pushcdata(struct lua_State *L, uint32_t ctypeid)

Принудительная передача cdata заданного ctypeid в стек.

CTypeID должен быть использован хотя бы один раз из FFI. Выделенная область памяти возвращается неинициализированной. Поддерживаются только числа и указатели.

Параметры:
  • L (lua_State*) – Lua_State
  • ctypeid (uint32_t) – CTypeID из FFI для cdata
Результат:

область памяти, ассоциированная с cdata

См. также luaL_checkcdata()

void *luaL_checkcdata(struct lua_State *L, int idx, uint32_t *ctypeid)

Проверка, является ли аргумент функции idx cdata.

Параметры:
  • L (lua_State*) – Lua_State
  • idx (int) – индекс стека
  • ctypeid (uint32_t*) – аргумент вывода. CTypeID из FFI для возвращаемого cdata
Результат:

область памяти, ассоциированная с cdata

См. также luaL_pushcdata()

void luaL_setcdatagc(struct lua_State *L, int idx)

Определение функции-финализатора для cdata.

Аналог вызова ffi.gc(obj, function). Функция-финализатор должна быть на вершине стека.

Параметры:
  • L (lua_State*) – Lua_State
  • idx (int) – индекс стека
uint32_t luaL_ctypeid(struct lua_State *L, const char *ctypename)

Возврат CTypeID (FFI) заданного типа СDATA.

Параметры:
  • L (lua_State*) – Lua_State
  • char* ctypename (const) – Имя типа в C в виде строки (например, «struct request» или «uint32_t»)
Результат:

CTypeID

См. также luaL_pushcdata(), luaL_checkcdata()

int luaL_cdef(struct lua_State *L, const char *ctypename)

Объявление символов для FFI.

Параметры:
  • L (lua_State*) – Lua_State
  • char* ctypename (const) – C-определения (например, «struct stat»)
Результат:

0, если выполнено

Результат:

LUA_ERRRUN, LUA_ERRMEM` или ``LUA_ERRERR, в противном случае.

См. также ffi.cdef(def)

void luaL_pushuint64(struct lua_State *L, uint64_t val)

Принудительная передача uint64_t в стек.

Параметры:
  • L (lua_State*) – Lua_State
  • val (uint64_t) – передаваемое значение
void luaL_pushint64(struct lua_State *L, int64_t val)

Принудительная передача int64_t в стек.

Параметры:
  • L (lua_State*) – Lua_State
  • val (int64_t) – передаваемое значение
uint64_t luaL_checkuint64(struct lua_State *L, int idx)

Проверка, является ли аргумент idx uint64 или конвертируемой строкой, и возврат этого числа.

выбрасывает:ошибку, если аргумент нельзя конвертировать
uint64_t luaL_checkint64(struct lua_State *L, int idx)

Проверка, является ли аргумент idx int64 или конвертируемой строкой, и возврат этого числа.

выбрасывает:ошибку, если аргумент нельзя конвертировать
uint64_t luaL_touint64(struct lua_State *L, int idx)

Проверка, является ли аргумент idx uint64 или конвертируемой строкой, и возврат этого числа.

Результат:конвертированное число или 0, если аргумент нельзя конвертировать
int64_t luaL_toint64(struct lua_State *L, int idx)

Проверка, является ли аргумент idx int64 или конвертируемой строкой, и возврат этого числа.

Результат:конвертированное число или 0, если аргумент нельзя конвертировать
void luaT_pushtuple(struct lua_State *L, box_tuple_t *tuple)

Принудительная передача кортежа в стек.

Параметры:
  • L (lua_State*) – Lua_State
выбрасывает:

ошибка при нехватке памяти

См. также luaT_istuple

box_tuple_t *luaT_istuple(struct lua_State *L, int idx)

Проверка, является ли idx кортежем.

Параметры:
  • L (lua_State*) – Lua_State
  • idx (int) – индекс стека
Результат:

не NULL, если idx – это кортеж

Результат:

NULL, если idx – это не кортеж

int luaT_error(lua_State *L)

Повторение последней ошибки в Tarantool’е в виде Lua-объекта.

См. также lua_error(),
box_error_last().
int luaT_cpcall(lua_State *L, lua_CFunction func, void *ud)

Аналог lua_cpcall(), но с соответствующей поддержкой ошибок Tarantool’а.

lua_State *luaT_state(void)

Получение глобального состояния Lua, используемого Tarantool’ом.