![]() |
DreamShell 4.0 - API Doc - Версия для печати +- DC-SWAT Forum (http://www.dc-swat.ru/forum) +-- Форум: DreamShell (/forum-3.html) +--- Форум: Programming (/forum-28.html) +--- Тема: DreamShell 4.0 - API Doc (/thread-87.html) |
DreamShell 4.0 - API Doc - SWAT - 10.03.2009 12:45 Полные списки функций без описания можно посмотреть здесь: http://www.dc-swat.ru/ds/doc/ В первую очередь постараюсь сделать описание функций ядра DreamShell, ибо описание остальных библиотек есть в инете. Напоминаю, как и в предыдущей версии DreamShell, функции С в lua доступны в соответствующих названиям модулей объектах. Допустим все функции модуля DS, доступны в lua через префикс "DS." (без кавычек) и т. д. DreamShell 4.0 - API Doc - SWAT - 18.03.2009 13:04 Списки Файл list.h в SDK. Списки используются во многих местах DreamShell, в модулях, в событиях, в приложениях, в процессах... Поэтому я начал с них. Зная принцип их работы, можно будет понять многие связанные функции, без особого труда в дальнейшем. Итак. Структура элемента списка Код: typedef struct Item { Определение типа для списка, используется SLIST из стандартной newlib библиотеки Код: typedef SLIST_HEAD(ItemList, Item) Item_list_t; Определение типа функции, освобождающей память, занимаемую данными элемента. Код: typedef void listFreeItemFunc(void *); Определенные типы данных элемента, которые есть в DreamShell, вы можете добавлять свои. Если вы используете список, где данные элемента не подходят не под один существующий тип, то можно использовать универсальный тип LIST_ITEM_USERDATA. Код: #define LIST_ITEM_USERDATA 0 Создает список и возвращает указатель на него. Возвращает NULL в случае не удачи. Код: Item_list_t *listMake(); Удаляет все элементы списка и сам список, аргумент ifree является функцией, для освобождения памяти, которую занимают данные элемента. В основном подходит функция free, она же используется там по умолчанию, если указать вместо аргумента ifree - NULL Код: void listDestroy(Item_list_t *lst, listFreeItemFunc *ifree); Получает ID последнего элемента (существующего или уже нет) из списка. Код: int listGetLastId(Item_list_t *lst); Добавляет элемент в список и возвращает ссылку на него при успехе, а при ошибке возвращает NULL. Код: Item_t *listAddItem(Item_list_t *lst, int type, char *name, void *data); Удаляет элемент из списка. Код: void listRemoveItem(Item_list_t *lst, Item_t *i, listFreeItemFunc *ifree); Ищет элемент в списке по его имени. Если элемент найден, возвращается ссылка на него, если же нет, то возвращает NULL. Код: Item_t *listGetItemByName(Item_list_t *lst, char *name); Ищет элемент в списке по его ID. Если элемент найден, возвращается ссылка на него, если же нет, то возвращает NULL. Код: Item_t *listGetItemById(Item_list_t *lst, int id); Возвращает первый элемент списка. Код: Item_t *listGetItemFirst(Item_list_t *lst); Возвращает следующий элемент списка, находящийся после элемента переданного аргументом i. Код: Item_t *listGetItemNext(Item_t *i); Примечание: Функции listGetItemFirst и listGetItemNext служат для создания циклической обработки списков. |