Разработка драйверов источников данных

Разработка собственных драйверов источников данных

Драйверы представляют собой часть менеджера ресурсов, отвечающих за работу с файлами определённых форматов.

Данная страница содержит:

Описание доступных драйверов

Особенности сборки драйверов


Warning: Для сборки драйверов требуются приватные заголовочные файлы.

Особенности проектирования драйверов (на примере драйвера mtw-local)

В таблице представлено описание вышеуказанных полей структуры driver_functions:

Наименование сущности Описание
.connect Подключиться к серверу.
.get_connection_state Получение статуса соединения с сервером.
.get_info Получить путь до папки, содержащей кэш карт.
.get_maps Загрузить карты с удаленного картосервера.
.reset_cache Очистить источники и перекэшировать данные.
.synchronize_cache Синхронизировать папки источника и внутреннего формата GCM. (Добавить недостающие карты и удалить те, источников которых не обнаружено.)
.update_map_cache Перегенерировать карту во внутренний формат.

В таблице представлено описание вышеуказанных полей структуры driver_ctx:

Наименование сущности Описание
.prefix Префикс драйвера для вывода отладочной информации.
.origin_maps_dirname Имя директории в каталоге /data/maps/cache где хранятся исходные файлы карт.
.origin_extension Расширение оригинального файла карты.
.mapstyle_dirname Имя директории хранения классификаторов/картостилей.
.driver_gcm_extension Расширение файла после конвертации во внутренний формат.
.acronym Акроним драйвера.
.id Числовой идентификатор драйвера.
.initialized Флаг проверки инициализации драйвера.
.state Флаг проверки установки соединения с ядром.

Прототипы функций:

int mtw_local_convert_map ( gis_core_map_information_t *map_info );
int mtw_local_connect ( void );
int mtw_local_reset_file_cache ( gis_core_user_data_t *udata );
int mtw_local_synchronize_file_cache ( gis_core_user_data_t *udata );
int mtw_local_update_file_cache ( int32_t map_id , gis_core_user_data_t *udata);
int mtw_local_get_info ( gis_core_driver_info_t *info );
gis_core_connection_state_t mtw_local_get_connection_state ( void );


Note: Идентификация драйвера приложениями gis-monitor и gis-control осуществляется при помощи driver_id. Для каждого драйвера он задаётся макросом DRIVER_ID, значения которого можно посмотреть на странице перечисления gis_core_driver_id_t в описании API. При необходимости использования пользовательского драйвера следует заменить любой из имеющихся драйверов пользовательским, с сохранением DRIVER_ID заменяемого драйвера. При этом следует изменить акроним драйвера (макрос DRIVER_ACRONYM) для корректной его идентификации в приложениях.




Предыдущий раздел: Руководство разработчика