WebSphere Message Service Clients for C/C++ and .NET, Version 1.2 作業系統: Linux, Windows

疊代子

疊代子封裝了一份物件清單以及一個維護清單中之現行位置的游標。C 或 C++ 應用程式會使用疊代子依序擷取清單中的每一個物件。

當建立疊代子時, 游標會位在第一個物件前面。應用程式會使用疊代子依序擷取每一個物件。為了擷取物件, 應用程式會使用 Iterator 類別中的下列三種方法:

Iterator 類別等同於 Java 中的 Enumerator 類別。XMS .NET 和 Java 類似,都是使用 IEnumerator 介面。

應用程式可使用疊代子來執行下列任何作業:
下列的程式碼片段顯示 C 應用程式如何使用疊代子來印出訊息的所有內容:
/********************************************************/
/* 使用疊代子來瀏覽內容的 XMS 範例    */
/********************************************************/
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

使用條款 | 評比此網頁

時間戳記前次更新: 25 Apr 2006
(C) Copyright IBM Corporation 2005. All Rights Reserved.
本資訊中心採用 Eclipse 技術。(http://www.eclipse.org)