Exemplo n.º 1
0
  public void updateStatus(String message) {
    RequestReader reader = new RequestReader(message);
    Element root = reader.getRoot();
    List<Element> resources = root.elements("Resource");

    // 在线列表
    List<String> onlineSns = new LinkedList<String>();
    // 离线列表
    List<String> offlineSns = new LinkedList<String>();
    for (Element resource : resources) {
      if (TypeDefinition.STATUS_ONLINE.equals(resource.attributeValue("Status"))) {
        onlineSns.add(resource.attributeValue("SN"));
      } else {
        offlineSns.add(resource.attributeValue("SN"));
      }
    }

    // 获取所有的设备ID,key为SN, value为ID
    Map<String, Long> svDeviceMap = svDeviceManager.mapBySn();
    Map<String, Long> tmDeviceMap = tmDeviceManager.mapBySn();
    svDeviceMap.putAll(tmDeviceMap);

    if (onlineSns.size() > 0) {
      onlineManager.reportOnline(onlineSns, svDeviceMap);
    }
    if (offlineSns.size() > 0) {
      onlineManager.reportOffline(offlineSns);
    }
  }