예제 #1
0
  /*
   * (non-Javadoc)
   * @see com.lexst.db.view.View#remove(com.lexst.util.host.SiteHost)
   */
  @Override
  public int remove(SiteHost host) {
    int size = mapSet.size();
    if (size == 0) return size;

    int count = 0;
    ArrayList<ShortRange> a = new ArrayList<ShortRange>(size);
    for (ShortRange range : mapSet.keySet()) {
      IdentitySet set = mapSet.get(range);
      if (set != null) {
        count += set.remove(host);
        if (set.isEmpty()) a.add(range);
      } else {
        a.add(range);
      }
    }
    for (ShortRange range : a) {
      mapSet.remove(range);
    }
    return count;
  }
예제 #2
0
  /*
   * (non-Javadoc)
   * @see com.lexst.db.view.View#remove(com.lexst.util.host.SiteHost, long)
   */
  @Override
  public int remove(SiteHost host, long chunkId) {
    int size = mapSet.size();
    if (size == 0) return 0;

    int count = 0;
    ArrayList<ShortRange> a = new ArrayList<ShortRange>(size);
    for (ShortRange range : mapSet.keySet()) {
      IdentitySet set = mapSet.get(range);
      if (set != null) {
        boolean success = set.remove(host, chunkId);
        if (success) count++;
        if (set.isEmpty()) a.add(range);
      } else {
        a.add(range);
      }
    }
    for (ShortRange range : a) {
      mapSet.remove(range);
    }
    return count;
  }
예제 #3
0
  /*
   * (non-Javadoc)
   * @see com.lexst.db.view.View#delete(com.lexst.util.host.SiteHost)
   */
  @Override
  public List<Long> delete(SiteHost host) {
    int size = mapSet.size();
    if (size == 0) return null;

    ArrayList<Long> array = new ArrayList<Long>(256);

    ArrayList<ShortRange> a = new ArrayList<ShortRange>(size);
    for (ShortRange range : mapSet.keySet()) {
      IdentitySet set = mapSet.get(range);
      if (set != null) {
        set.remove(host, array);
        if (set.isEmpty()) a.add(range);
      } else {
        a.add(range);
      }
    }
    for (ShortRange range : a) {
      mapSet.remove(range);
    }
    return array;
  }