package org.couchbase.mock.memcached;
import java.security.AccessControlException;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import org.couchbase.mock.Bucket.BucketType;
private MemcachedServer owner;
private Map<String, Item> map;
public VBucket(MemcachedServer owner) {
this.owner = owner;
map = new ConcurrentHashMap<String, Item>();
}
public synchronized void setOwner(MemcachedServer server) {
owner = server;
}
public synchronized Map<String, Item>
getMap(MemcachedServer server) {
if (server.getType() == BucketType.COUCHBASE && server != owner) {
throw new AccessControlException("Not my VBucket");
}
return map;
}
public synchronized MemcachedServer
getOwner() {
return owner;
}
void flush(MemcachedServer server) {
if (owner == server) {
map.clear();
}
}
}