Класс object

Объект. Подробнее...

#include <object.h>

Полный список членов класса

Открытые члены

 object (lua_State *_lua)
 Создать объект.
virtual const char * get_external_type_name () const
 Получить внешнее имя класса.
virtual const char * get_type_name () const =0
 Получение имени типа внешнего объекта.

Открытые статические члены

static void push (lua_State *_lua, object *_o)
 Получить объект по указателю.
static objectcheck_parameter (lua_State *_lua, int _i, const char *_tname, bool _optional=false)
 Проверка типа параметра события (внешний объект).
static void init (lua_State *_lua)
 Инициировать среду объектов.

Закрытые статические члены

static void insert (lua_State *_lua, int _i)
 Добавить объект в таблицу объектов.

Подробное описание

Объект.

Объект используется для расширения стандартного набора типов данных Lua.

Существует таблица объектов, которая используется для преобразования указателя на объект C++ в объект Lua. Ключами таблицы являются указатели на объект C++, а значениями - объекты Lua. Ключи и значения таблицы являются слабыми ссылками и не влияют на сборку мусора. Для закрепления объектов в памяти должны использоваться другие ссылки.


Конструктор(ы)

object::object ( lua_State *  _lua  ) 

Создать объект.

Создает объект на вершине стека потока и включает его в таблицу объектов.

Аргументы:
_lua Стек дочернего потока.

Методы

static object* object::check_parameter ( lua_State *  _lua,
int  _i,
const char *  _tname,
bool  _optional = false 
) [static]

Проверка типа параметра события (внешний объект).

Прерывает выполнение потока и создает дамп, если параметр не является внешним объектом.

Аргументы:
_lua Стек потока.
_i Номер параметра.
_tname Имя типа внешнего объекта.
_optional Признак необязательного параметра.
Возвращает:
Указатель на пользовательский объект.
virtual const char* object::get_external_type_name (  )  const [inline, virtual]

Получить внешнее имя класса.

Возвращает внешнее имя класса, которое может быть исползовано для вывода сообщений для пользователя. В отличие от get_type_name может возвращать более развернутое название типа, учитывающее производные классы.

Возвращает:
Внешнее имя класса.
virtual const char* object::get_type_name (  )  const [pure virtual]

Получение имени типа внешнего объекта.

Возвращает:
Имя типа внешнего объекта.
void object::init ( lua_State *  _lua  )  [static]

Инициировать среду объектов.

Создает таблицу объектов и метатаблицу для переопределения операций. Должна вызываться один раз при инициализации основного потока.

Аргументы:
_lua Стек основного потока.
void object::insert ( lua_State *  _lua,
int  _i 
) [static, private]

Добавить объект в таблицу объектов.

Добавляет объект, расположеный на стеке потока, в таблицу объектов. Функция предполагает, что в указаной позиции стека находится объект luax_::object. Объект остается на стеке.

Аргументы:
_lua Стек дочернего потока.
_i Позиция объекта в стеке потока.
static void object::push ( lua_State *  _lua,
object _o 
) [static]

Получить объект по указателю.

Помещает на стек объект, соответствующий заданному указателю. Если объекта с таким указателем нет, то на стек помезается nil.

Аргументы:
_lua Стек потока.
_o Указатель на объект

Объявления и описания членов классов находятся в файлах:
Документация по faeton. Последние изменения: Sun Apr 10 01:05:30 2011. Создано системой  doxygen 1.6.3