当前位置: 首页>>代码示例>>C++>>正文


C++ MultiMap::multiRemoveAll方法代码示例

本文整理汇总了C++中MultiMap::multiRemoveAll方法的典型用法代码示例。如果您正苦于以下问题:C++ MultiMap::multiRemoveAll方法的具体用法?C++ MultiMap::multiRemoveAll怎么用?C++ MultiMap::multiRemoveAll使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MultiMap的用法示例。


在下文中一共展示了MultiMap::multiRemoveAll方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: onShutdown

void ServiceManager::onShutdown() {
  /*
  ownermap.purge();
  services.purge();
  services_by_guid.purge();
  clientmap.purge();
  */

  int nlocks = lockmap.getNumPairs();
  if (nlocks <= 0) {
    //lockmap.purge();
#ifdef GEN_FF // i need this to have clean session restart, feel free to remove the ifdef if you fgeel that should always be done
    ownermap.deleteAll();
    services.multiRemoveAll();
    services_by_guid.deleteAll();
    lockmap.deleteAll();
#endif
    return;
  }

#ifndef _DEBUG
  DebugString("-----------------\n");
  for (int i = 0; i < nlocks; i++) {
    void *ptr = lockmap.enumIndexByPos(i, NULL); ASSERT(ptr != NULL);
    StringPrintf s("lock: %d type:'", (int)ptr);

    //    GUID g = lockermap.enumItemByPos(i, INVALID_GUID);ASSERT(g != INVALID_GUID);
    //    s += g;
    //    WaComponent *wac = ComponentManager::getComponentFromGuid(g);

    waServiceFactory *was=NULL;
    was = lockmap.enumItemByPos(i, NULL);
    ASSERT(was != NULL);
    GUID type = safe_getServiceType(was);
    const char *tname = ServiceManager::getServiceTypeName(type);
    if (tname != NULL) {
      s += tname;
    } else {
      /*
      FOURCC v = BSWAP(type);
      unsigned char bleh[5]="    ";
      MEMCPY(bleh, &v, 4);
      s += String((char *)bleh);
      */
      s += Guid(type).toChar();
    }
    s += "' from service:'";
    s += safe_getServiceName(was);

    //    s += " wac:";
    //    if (wac) s += wac->getName();
#ifdef WASABI_COMPILE_COMPONENTS
    s += "' owned by:'";

    GUID g = INVALID_GUID;
    ownermap.getItem(was, &g);
    if (g != INVALID_GUID) {
      s += g;
      WaComponent *wac = ComponentManager::getComponentFromGuid(g);
      if (wac) s += wac->getName();
    } else s += "(unregistered)";
#else
    GUID g;
#endif

    s += "' registered lock to '";
    g = INVALID_GUID;
    //clientmap.getItem(ptr, &g);
    s += g;

    s += "'\n";
    DebugString(s.v());
  }
  DebugString("-----------------\n");
#endif
#ifdef GEN_FF // i need this to have clean session restart, feel free to remove the ifdef if you fgeel that should always be done
  ownermap.deleteAll();
  services.multiRemoveAll();
  services_by_guid.deleteAll();
  lockmap.deleteAll();
#endif
}
开发者ID:bizzehdee,项目名称:wasabi,代码行数:82,代码来源:svcmgr.cpp


注:本文中的MultiMap::multiRemoveAll方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。