@Override // IntrusiveCollection.Element public void setPrev(IntrusiveCollection<? extends Element> list, Element prev) { assert list == pool.getDirectiveList(); this.prev = prev; }
@Override // IntrusiveCollection.Element public boolean isInList(IntrusiveCollection<? extends Element> list) { return pool == null ? false : list == pool.getDirectiveList(); } };
@Override // IntrusiveCollection.Element public void removeInternal(IntrusiveCollection<? extends Element> list) { assert list == pool.getDirectiveList(); this.pool = null; this.prev = null; this.next = null; }
@Override // IntrusiveCollection.Element public void setNext(IntrusiveCollection<? extends Element> list, Element next) { assert list == pool.getDirectiveList(); this.next = next; }
@Override // IntrusiveCollection.Element public Element getPrev(IntrusiveCollection<? extends Element> list) { if (list != pool.getDirectiveList()) { return null; } return this.prev; }
@Override // IntrusiveCollection.Element public Element getNext(IntrusiveCollection<? extends Element> list) { if (list != pool.getDirectiveList()) { return null; } return this.next; }
private void addCacheDirective(final String poolName, final CacheDirective directive) throws IOException { CachePool pool = cachePools.get(poolName); if (pool == null) { throw new IOException("Directive refers to pool " + poolName + ", which does not exist."); } boolean addedDirective = pool.getDirectiveList().add(directive); assert addedDirective; if (directivesById.put(directive.getId(), directive) != null) { throw new IOException("A directive with ID " + directive.getId() + " already exists"); } List<CacheDirective> directives = directivesByPath.get(directive.getPath()); if (directives == null) { directives = new LinkedList<CacheDirective>(); directivesByPath.put(directive.getPath(), directives); } directives.add(directive); }
Iterator<CacheDirective> iter = pool.getDirectiveList().iterator(); while (iter.hasNext()) { CacheDirective directive = iter.next();
private void addInternal(CacheDirective directive, CachePool pool) { boolean addedDirective = pool.getDirectiveList().add(directive); assert addedDirective; directivesById.put(directive.getId(), directive); String path = directive.getPath(); List<CacheDirective> directives = directivesByPath.get(path); if (directives == null) { directives = new ArrayList<CacheDirective>(1); directivesByPath.put(path, directives); } directives.add(directive); // Fix up pool stats CacheDirectiveStats stats = computeNeeded(directive.getPath(), directive.getReplication()); directive.addBytesNeeded(stats.getBytesNeeded()); directive.addFilesNeeded(directive.getFilesNeeded()); setNeedsRescan(); }
private void removeInternal(CacheDirective directive) throws InvalidRequestException { assert namesystem.hasWriteLock(); // Remove the corresponding entry in directivesByPath. String path = directive.getPath(); List<CacheDirective> directives = directivesByPath.get(path); if (directives == null || !directives.remove(directive)) { throw new InvalidRequestException("Failed to locate entry " + directive.getId() + " by path " + directive.getPath()); } if (directives.size() == 0) { directivesByPath.remove(path); } // Fix up the stats from removing the pool final CachePool pool = directive.getPool(); directive.addBytesNeeded(-directive.getBytesNeeded()); directive.addFilesNeeded(-directive.getFilesNeeded()); directivesById.remove(directive.getId()); pool.getDirectiveList().remove(directive); assert directive.getPool() == null; setNeedsRescan(); }
@Override // IntrusiveCollection.Element public Element getNext(IntrusiveCollection<? extends Element> list) { if (list != pool.getDirectiveList()) { return null; } return this.next; }
@Override // IntrusiveCollection.Element public Element getPrev(IntrusiveCollection<? extends Element> list) { if (list != pool.getDirectiveList()) { return null; } return this.prev; }
@Override // IntrusiveCollection.Element public boolean isInList(IntrusiveCollection<? extends Element> list) { return pool == null ? false : list == pool.getDirectiveList(); } };
@Override // IntrusiveCollection.Element public void setNext(IntrusiveCollection<? extends Element> list, Element next) { assert list == pool.getDirectiveList(); this.next = next; }
@Override // IntrusiveCollection.Element public void removeInternal(IntrusiveCollection<? extends Element> list) { assert list == pool.getDirectiveList(); this.pool = null; this.prev = null; this.next = null; }
@Override // IntrusiveCollection.Element public void setNext(IntrusiveCollection<? extends Element> list, Element next) { assert list == pool.getDirectiveList(); this.next = next; }
@Override // IntrusiveCollection.Element public Element getNext(IntrusiveCollection<? extends Element> list) { if (list != pool.getDirectiveList()) { return null; } return this.next; }
@Override // IntrusiveCollection.Element public Element getPrev(IntrusiveCollection<? extends Element> list) { if (list != pool.getDirectiveList()) { return null; } return this.prev; }
@Override // IntrusiveCollection.Element public void removeInternal(IntrusiveCollection<? extends Element> list) { assert list == pool.getDirectiveList(); this.pool = null; this.prev = null; this.next = null; }
@Override // IntrusiveCollection.Element public void setPrev(IntrusiveCollection<? extends Element> list, Element prev) { assert list == pool.getDirectiveList(); this.prev = prev; }