Яndex.Server 3.1 ДОКУМЕНТАЦИЯ

       

Программа attributer


h2>8.2.3. Динамическая библиотека пользователя

Динамическая библиотека пользователя, путь к которой задается в директиве Module, должна экспортировать следующую структуру, содержащую указатели на функции. typedef struct ATTRGEN_LIB { FUNC_Attrgen_OpenSession OpenSession; FUNC_Attrgen_CloseSession CloseSession; FUNC_Attrgen_GetGroupAttr GetGroupAttr; FUNC_Attrgen_GetIndexAttr GetIndexAttr; FUNC_Attrgen_GetArchiveAttr GetArchiveAttr; } ATTRGEN_LIB; Структура описана в заголовочном файле aglib.h. Пример реализации функций для группировки по хостам приведен в файле aghost.cpp.

Функции структуры ATTRGEN_LIB

int (*FUNC_Attrgen_OpenSession)(GA_SESSION *obj, const char* cmdline)

Вызывается программой attributer один раз на каждую секцию AttrProvider в самом начале работы для того, чтобы дать возможность инициализировать данные, которые нужно передавать между вызовами функций, получающих атрибуты. В первом аргументе передается указатель, который следует установить на указанные данные: typedef void* GA_SESSION; Если таких данных нет, первый аргумент можно игнорировать. Во втором аргументе передается значение директивы Config. Функция должна возвращать AGOK в случае успеха. Если будет возвращено другое значение, текущая секция AttrProvider не будет использована.

int (*FUNC_Attrgen_CloseSession)(GA_SESSION obj)

Вызывается программой attributer один раз на каждую секцию AttrProvider в самом конце работы для того, чтобы дать возможность освободить ресурсы, занятые объектом GA_SESSION.

int (*FUNC_Attrgen_GetGroupAttr)(GA_SESSION obj, const char* url, const char* attrname, ui32* attrvalue)

Вызывается один или несколько раз для каждого документа, имеющегося в существующем индексе, (второй аргумент - адрес документа) и для каждого атрибута из директивы Groups (третий аргумент - имя атрибута). Должна передать в последнем аргументе числовое значение атрибута.

Функция должна возвратить одно из следующих значений.

AGCONTINUE - в последнем аргументе передано числовое значение атрибута и для данного документа и данного имени атрибута существуют еще значения.
AGOK - в последнем аргументе передано числовое значение атрибута и других значений больше нет
AGFALSE - данный документ не имеет атрибутов с данным именем.
AGERROR - случилась ошибка.


int (*FUNC_Attrgen_GetIndexAttr)( GA_SESSION obj, const char* url, const char* attrname, char** attrvalue)Никогда не вызывается в текущей версии программы attributer.

int (*FUNC_Attrgen_GetArchiveAttr)(GA_SESSION obj, const char* url, const char* attrname, char** attrvalue)Никогда не вызывается в текущей версии программы attributer.

Техническое замечание. С точки зрения эффективности реализации желательно, чтобы диапазон значений группировочных атрибутов был как можно более "компактен" и его нижняя граница была недалека от нулевого значения. Максимальное число группировочных атрибутов равно 20. Максимальное число уровней в иерархии данного атрибута равно 10. Максимальное число значений данного атрибута, которое может иметь документ, равно 20 (без учета верхних уровней возможной иерархии).

Copyright © 1997 ? 2004 «Яндекс»
НазадСодержание 
Документация для разработчиковУровень выше 


Что вы ищете: 
 на сайтев интернете  
Службы Яндекса: Маркет - Деньги - Почта - Народ - Новости - Каталог - Директ - Открытки - Отпуск
Энциклопедии - Словарь Лингво - Закладки - Мой Яндекс - Бар - Игрушки - Гостиная
  Copyright © 1997?2004 «Яндекс» Обратная связь 


Содержание раздела