/*
* Copyright 2014-2016 CyberVision, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.kaaproject.kaa.server.operations.service.akka;
import akka.actor.ActorRef;
import org.kaaproject.kaa.server.operations.service.akka.messages.core.user.EndpointRouteUpdateMessage;
import org.kaaproject.kaa.server.operations.service.akka.messages.core.user.EndpointUserConfigurationUpdate;
import org.kaaproject.kaa.server.operations.service.akka.messages.core.user.EndpointUserConfigurationUpdateMessage;
import org.kaaproject.kaa.server.operations.service.akka.messages.core.user.RemoteEndpointEventMessage;
import org.kaaproject.kaa.server.operations.service.akka.messages.core.user.RouteInfoMessage;
import org.kaaproject.kaa.server.operations.service.akka.messages.core.user.UserRouteInfoMessage;
import org.kaaproject.kaa.server.operations.service.event.EventServiceListener;
import org.kaaproject.kaa.server.operations.service.event.GlobalRouteInfo;
import org.kaaproject.kaa.server.operations.service.event.RemoteEndpointEvent;
import org.kaaproject.kaa.server.operations.service.event.RouteInfo;
import org.kaaproject.kaa.server.operations.service.event.UserRouteInfo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
final class AkkaEventServiceListener implements EventServiceListener {
private static final Logger LOG = LoggerFactory.getLogger(AkkaEventServiceListener.class);
private final ActorRef opsActor;
public AkkaEventServiceListener(ActorRef opsActor) {
super();
this.opsActor = opsActor;
}
@Override
public void onRouteInfo(RouteInfo routeInfo) {
RouteInfoMessage message = new RouteInfoMessage(routeInfo);
LOG.debug("Sending message {} to OPS actor", message);
opsActor.tell(message, ActorRef.noSender());
}
@Override
public void onUserRouteInfo(UserRouteInfo routeInfo) {
UserRouteInfoMessage message = new UserRouteInfoMessage(routeInfo);
LOG.debug("Sending message {} to OPS actor", message);
opsActor.tell(message, ActorRef.noSender());
}
@Override
public void onEvent(RemoteEndpointEvent event) {
RemoteEndpointEventMessage message = new RemoteEndpointEventMessage(event);
LOG.debug("Sending message {} to OPS actor", message);
opsActor.tell(message, ActorRef.noSender());
}
@Override
public void onEndpointStateUpdate(EndpointUserConfigurationUpdate notification) {
opsActor.tell(new EndpointUserConfigurationUpdateMessage(notification), ActorRef.noSender());
}
@Override
public void onEndpointRouteUpdate(GlobalRouteInfo message) {
opsActor.tell(new EndpointRouteUpdateMessage(message), ActorRef.noSender());
}
@Override
public void onServerError(String serverId) {
// TODO: handle
}
}