예제 #1
0
  /** Return ServerInfo as Vector of VAttributeSets */
  public ArrayList<AttributeSet> getInfoAttrSets() {
    // synchronize !
    synchronized (this.serverInfos) {
      Set<String> keys = this.serverInfos.keySet();
      ArrayList<AttributeSet> sets = new ArrayList<AttributeSet>(keys.size());

      for (String key : keys) {
        ServerInfo info = serverInfos.get(key);
        sets.add(info.getAttributeSet());
      }

      return sets;
    }
  }
예제 #2
0
  /** Stored new ServerInfo and writes to file (if persistant) Returnes updated serverInfo */
  public ServerInfo store(ServerInfo info) {
    logger.debugPrintf("store(): attrs=%s\n", info.getAttributeSet());

    synchronized (this.serverInfos) {
      // ===
      // Before adding new Info: check whether persistant database is
      // loaded !
      // ===
      checkIsLoaded();
      // remove before put!
      remove(info);
      // synchronized put: UPDATES SERVERINFO KEY!
      put(info);
      // enters mutex again
      save();

      // do NOT return reference to object into ServerRegistry
      return info.duplicate();
    }
  }