×
Namespaces

Variants
Actions

AIW ジェネリック・パラメータ(Generic Parameters) API

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata
Code ExampleArticle
Translated:
By masatoshi
Last edited: hamishwillee (30 May 2013)


Note.pngNote: このAPIは、SDKの標準には含まれていません。SDK API Plug-inに含まれています。

AIWジェネリック・パラメータAPI は、AIWコンシューマ・アプリケーションに、AIWジェネリック・パラメータを扱う方法を提供するために使用されます。ジェネリック・パラメータは、AIWコンシューマ(consumers)プロバイダ(providers)間でデータを転送するために使用されます。

使用例

AIWジェネリック・パラメータAPIは主に次のことに使用されます:

ベーシックな型のジェネリック・パラメータ・リストの作成

プロバイダ特有のオブジェクトのジェネリック・パラメータ・リストの作成


サンプル・コード

ベーシックな型のジェネリック・パラメータ・リストの作成 (訳注:「ベーシックな型」は、TBoolやTReal 等を意味しない)

このサンプル・コードは、どのようにしてジェネリック・パラメタ・リストを作成し、ファイル名(ディスクリプタ)とエラー・コード(整数)アイテムでそれを埋めるかを示します。これは、プロバイダ特有のオブジェクトを必要としないAIWプロバイダに、共通の型のパラメータを渡す方法です。

#include <AiwGenericParam.h>
// Create a list and put it into the cleanup stack.
CAiwGenericParamList* list = CAiwGenericParamList::NewLC();
 
// Set up and append file name parameter.
_LIT(KMyFileName, "c:\\data\\testfile.txt");
TFileName filename(KMyFileName);
TAiwGenericParam param(EGenericParamFile);
param.Value().Set(filename);
list->AppendL(param);
 
// Set up and append error code parameter.
param.Reset();
param.SetSemanticId(EGenericParamError);
param.Value().Set(KErrNotFound);
list->AppendL(param);
 
// The list can now be passed e.g. by calling Service Handler's
// ExecuteMenuCmdL() or ExecuteServiceCmdL().
 
// Pop and destroy the list when it is not needed anymore.
CleanupStack::PopAndDestroy(list);


一つのリストに、同じセマンティックidで複数のアイテムがあるかも知れません。 受け取ったアプリケーションは、CAiwGenericParamList の反復(iterator)メソッドを使って、リストのデータ・アイテムにアクセスします。

AIWフレームワークには、入力と出力のリストを作成するための便利なメソッドがあります。このリストを使うことで、コンシューマ・アプリケーションは、リストのヒープの割り当てと削除を行う必要はありません。唯一の制限は、入力と出力のリストそれぞれ一つずつのみリクエスト可能という点です。もし複数必要な場合、コンシューマ・アプリケーションは、自身でそれらを生成・削除しなければいけません。入力と出力リストを作成するメソッドは以下のように定義されています:


CAiwGenericParamList& CAiwServiceHandler::InParamListL();
CAiwGenericParamList& CaiwServiceHandler::OutParamListL();

プロバイダ特有のオブジェクトのジェネリック・パラメータ・リストの作成

コンシューマとプロバイダ間で、プロバイダ特有のクラスや構造体を転送する必要がある場合、ジェネリック・パラメータ・リストに追加する前に、それをTPtrC8 か TPckg を使ってシリアル化(直列化, serialize)する必要があります。このような種類のパラメータには、変数型id EVariantTypeDesC8 を使用します。AIWフレームワークは、ポインターを渡すことをサポートしていないことに注意してください。例題として、"Map and Navigation AIW プロバイダ"の文章を参照してください。


Example project

File:AIWConsumerBasics.zip

This page was last modified on 30 May 2013, at 07:36.
95 page views in the last 30 days.
×