package com.baasbox.service.logging;
import java.util.HashSet;
import play.libs.Json;
import akka.actor.UntypedActor;
import com.baasbox.service.events.EventSource;
import com.baasbox.service.events.EventsService;
import com.baasbox.service.events.EventsService.StatType;
public class LoggerActor extends UntypedActor {
public LoggerActor() {
}
@Override
public void onReceive(Object message) throws Exception {
if (message instanceof Registration){
handleRegistration((Registration)message);
} else if (message instanceof Unregister){
handleUnregister((Unregister)message);
} else if (message instanceof Message){
handleUpdate((Message)message);
} else {
unhandled(message);
}
}
private void handleUpdate(Message message) {
EventsService.publish(StatType.SYSTEM_LOGGER, Json.toJson(message.getMessage()));
}
private void handleUnregister(Unregister message) {
EventsService.removeListener(StatType.SYSTEM_LOGGER, message.source);
}
private void handleRegistration(Registration message) {
EventsService.addListener(StatType.SYSTEM_LOGGER, message.source);
}
}