Skip to content
YaroslavLitvinov edited this page Dec 12, 2012 · 1 revision

Map-Reduce API

функции для запуска MapReduce: MapNodeMain, ReduceNodeMain требуют 2 аргумента:

  • struct MapReduceUserIf *userif необходимо проинициализировать указателями на пользовательские функции, и установить типы данных(размеры) ключа и значения, для этого использовать макрос PREPARE_MAPREDUCE; struct ChannelsConfigInterface *ch_if объект описывает взаимосвязь каналов кластера см. документацию libnetworking;

int MapNodeMain(struct MapReduceUserIf *userif, struct ChannelsConfigInterface *ch_if ); int ReduceNodeMain(struct MapReduceUserIf *userif, struct ChannelsConfigInterface *ch_if );

ChannelsConf API

Добавить новый канал к конфигурации struct ChannelsConfigInterface *ch_if. Данные канала: nodetype - идентификатор типа узла с которым связан канал; nodeid - номер узла, для каждого нового типа нумерация начинается с 1; channelfd - ассоциированный с каналом валидный файловый дескриптор mode - режим работы канала EChannelModeRead или EChannelModeWrite struct UserChannel *AddChannel( struct ChannelsConfigInterface *ch_if, int nodetype, int nodeid, int channelfd, ChannelMode mode );

Получение списка каналов из конфигурации struct ChannelsConfigInterface *ch_if, имеющих тип nodetype. Каналы должны быть добавлены предварительно функцией AddChannel. nodes_array будет автоматически аллоцирован, и должен будет уничтожен после использования; функция возвращает количество узлов добавленных в массив int GetNodesListByType( const struct ChannelsConfigInterface *ch_if, int nodetype, int **nodes_array );

Получение канала из конфигурации struct ChannelsConfigInterface *ch_if, соответствующего запрошенным параметрам: тип узла, идентификатор и режим доступа к каналу. struct UserChannel *Channel(struct ChannelsConfigInterface *ch_if, int nodetype, int nodeid, int8_t channelmode);

void Free(struct ChannelsConfigInterface *ch_if);

ChannelsConfReader API

Загружает в конфигурацию struct ChannelsConfigInterface *ch_if, все сетевые каналы которые найдены по указанному пути dirpath, имеющих режим доступа channel_mode, тип узла nodetype, а также при соответствии имени файла в директории указанному в nodename_text; Возвращает 0 в случае успеха, или -1 если произвошла ошибка добавления канала к конфигурации. int AddAllChannelsRelatedToNodeTypeFromDir( struct ChannelsConfigInterface *chan_if, const char dirpath, int channel_mode, int nodetype, const char nodename_text );

закрытие файлов соответствующих каналов и освобождение памяти использованной конфигурацией; void CloseChannels( struct ChannelsConfigInterface *chan_if );

Clone this wiki locally