WebSphere Message Service Clients for C/C++ and .NET, Version 1.2 オペレーティング・システム: Linux, Windows

イテレーター

イテレーターは、オブジェクトのリストとこのリストの現在位置を維持するカーソルをカプセル化します。C または C++ アプリケーションは、次に、イテレーターを使用してリスト内の各オブジェクトを検索します。

イテレーターを作成すると、カーソルの位置は最初のオブジェクトの前になります。 アプリケーションは、次に、イテレーターを使用して各オブジェクトを検索します。オブジェクトを検索するため、アプリケーションは Iterator クラスの以下の 3 つのメソッドを使用します。

Iterator クラスは、Java の Enumerator クラスに相当します。XMS .NET は Java に似ており、IEnumerator インターフェースを使用します。

アプリケーションは、イテレーターを使用して以下のタスクを実行できます。
次のコード・フラグメントは、C アプリケーションがイテレーターを使用してメッセージのすべてのプロパティーを印刷する方法を示しています。
/********************************************************/
/* XMS Sample using an iterator to browse properties */
/********************************************************/
rc = xmsMsgGetProperties(hMsg, &it, xmsError);
if (rc == XMS_OK)
{
rc = xmsIteratorHasNext(it, &more, xmsError);
while (more)
{
rc = xmsIteratorGetNextProperty(it, (xmsHObj)&p, xmsError);
if (rc == XMS_OK)
{
xmsPropertyGetName(p, name, 100, &len, xmsError);
printf("Property name=¥"%s¥"¥n", name);
xmsPropertyGetTypeId(p, &type, xmsError);
switch (type)
{
case XMS_PROPERTY_TYPE_INT:
{
xmsINT value=0;
xmsPropertyGetInt(p, &value, xmsError);
printf("Property value=%d¥n", value);
break;
}
case XMS_PROPERTY_TYPE_STRING:
{
xmsINT len=0;
char value[100];
xmsPropertyGetString(p, value, 100, &len, xmsError);
printf("Property value=¥"%s¥"¥n", value);
break;
}
default:
{
printf("Unhandled property type (%d)¥n", (int)type);
}
}
xmsPropertyDispose(&p, xmsError);
}
rc = xmsIteratorHasNext(it, &more, xmsError);
}
printf("Finished iterator....¥n");
xmsIteratorDispose(&it, xmsError);
}
/********************************************************/

Concept topic

ご利用条件 | フィードバック (英語のみ)

Timestamp icon最終更新: 8 Jun 2006
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)