Восстановить базу данных GCM.
#include <gis/gis_driver.h>int gis_common_driver_recover_gcm_database( gis_driver_ctx_t *driver_ctx );
formatctl
Функция пытается добавить в базу данных GCM записи из папки /gcm/. Если валидация заголовка gcm провалилась, функция пытается переконвертировать карту. Если попытка конвертации провалилась, файл GCM удаляется.
gis_driver_ctx_t driver_ctx;driver_ctx.id = GIS_CORE_DRIVERS_SXF_LOCAL;driver_ctx.prefix = "[SXF_local_driver] ";char *suffix = calloc( strlen( "sxf" ) + strlen( ".local."GIS_GCM_FILE_EXTENSION ) + 1, sizeof( char ) );if ( !suffix ){gis_helper_debug_write( GIS_DEBUG_LEVEL_ERROR, driver_ctx.prefix,"Memory allocation error [%s()]", __FUNCTION__ );return ENOMEM;}strcpy( suffix, "sxf" );driver_ctx.driver_gcm_suffix = strcat( suffix, ".local."GIS_GCM_FILE_EXTENSION );if ( gis_common_driver_recover_gcm_database( driver_ctx ) != EOK ){gis_helper_debug_write_lvl( GIS_DEBUG_LEVEL_ERROR, driver_ctx.prefix,"Failed to recover GCM database [%s()]", __FUNCTION__ );return EFAULT;}free( (char*)driver_ctx.driver_gcm_suffix );
ПК ЦКИ для ЗОСРВ «Нейтрино»
1.3
Предыдущий раздел: Описание API картографического фреймворка