×
Namespaces

Variants
Actions
Revision as of 05:00, 9 December 2011 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Импорт ориентиров

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Статья
Перевод:
Den123
Последнее редактирование: hamishwillee (09 Dec 2011)

Класс CPosLandmarkParser предназначен для разбора содержимого ориентиров. Эта функциональность может использоваться при выполнении импорта ориентиров из файлов. Для создания инстанции данного класса необходимо указать тип MIME разбираемого содержимого. Ориентиры могут храниться в виде XML-файлов для разбора которых можно использовать следующий MIME-тип: "application/vnd.nokia.landmarkcollection+xml".

Приведенный фрагмент кода демонстрирует, как импортировать ориентиры из XML-файла в заданную локальную базу данных.

Необходимо включить следующие заголовочные файлы:

  • epos_cposlmdatabasemanager.h
  • epos_hposlmdatabaseinfo.h
  • epos_cposlandmarkparser.h

Для связывания использовать следующие библиотеки:

  • eposlandmarks.lib
  • eposlmdbmanlib.lib
// URI базы данных
_LIT( KNewDbUri, "file://C:new.ldb" );
TBuf<32> newDbUri( KNewDbUri );
 
// файл с ориентирами
_LIT( KSrcFile, "C:\\LmBackup\\my_lms.xml" );
 
// менеджер для управления базами данных
CPosLmDatabaseManager* dbManager = CPosLmDatabaseManager :: NewL();
CleanupStack :: PushL( dbManager );
 
// создание базы данных если ее еще нет
if( !dbManager->DatabaseExistsL( newDbUri ) )
{
HPosLmDatabaseInfo* dbInfo = HPosLmDatabaseInfo :: NewLC( newDbUri );
dbManager->CreateDatabaseL( *dbInfo );
CleanupStack :: PopAndDestroy( dbInfo );
}
 
// открытие базы данных с последующей инициализацией, если необходимо
CPosLandmarkDatabase* db = CPosLandmarkDatabase :: OpenL( newDbUri );
CleanupStack :: PushL( db );
if( db->IsInitializingNeeded() )
ExecuteAndDeleteLD( db->InitializeL() );
 
// очистка базы в пакетном режиме
ExecuteAndDeleteLD( db->RemoveAllLandmarksL() );
 
// тип MIME для импорта и экспорта
_LIT8( KPosMimeTypeLandmarkCollectionXml, "application/vnd.nokia.landmarkcollection+xml" );
 
// создание парсера
CPosLandmarkParser* parser = CPosLandmarkParser :: NewL( KPosMimeTypeLandmarkCollectionXml );
CleanupStack :: PushL( parser );
 
// импортирование данных в пакетном режиме
parser->SetInputFileL( KSrcFile );
ExecuteAndDeleteLD( db->ImportLandmarksL( *parser, CPosLandmarkDatabase::EDefaultOptions ) );
 
CleanupStack :: PopAndDestroy( 3 ); // parser db dbManager

Внутренние ссылки

This page was last modified on 9 December 2011, at 05:00.
126 page views in the last 30 days.