@Override
public void handleEvent(final EventContext context) {
if (context instanceof GetAllSizeServerMapRequestMessage) {
final GetAllSizeServerMapRequestMessage smContext = (GetAllSizeServerMapRequestMessage) context;
globalGetSizeRequestCounter.increment();
this.channelStats.notifyServerMapRequest(ServerMapRequestType.GET_SIZE, smContext.getChannel(), 1);
ServerMapGetAllSizeHelper helper = new ServerMapGetAllSizeHelper(smContext.getMaps());
for (ObjectID mid : smContext.getMaps()) {
this.serverMapRequestManager.requestSize(smContext.getRequestID(), smContext.getClientID(), mid, helper);
}
} else if (context instanceof GetValueServerMapRequestMessage) {
final GetValueServerMapRequestMessage smContext = (GetValueServerMapRequestMessage) context;
final Map<ObjectID, Collection<ServerMapGetValueRequest>> requests = smContext.getRequests();
int numRequests = requests.size();
globalGetValueRequestCounter.increment(numRequests);
this.channelStats.notifyServerMapRequest(ServerMapRequestType.GET_VALUE_FOR_KEY, smContext.getChannel(),
numRequests);
for (final Entry<ObjectID, Collection<ServerMapGetValueRequest>> e : requests.entrySet()) {
this.serverMapRequestManager.requestValues(smContext.getClientID(), e.getKey(), e.getValue());
}
} else if (context instanceof GetAllKeysServerMapRequestMessage) {
final GetAllKeysServerMapRequestMessage smContext = (GetAllKeysServerMapRequestMessage) context;
globalGetSnapshotRequestCounter.increment();
this.channelStats.notifyServerMapRequest(ServerMapRequestType.GET_ALL_KEYS, smContext.getChannel(), 1);
this.serverMapRequestManager.requestAllKeys(smContext.getRequestID(), smContext.getClientID(), smContext
.getMapID());
} else {
throw new AssertionError("Unknown message type: " + context.getClass());
}
}