/*
* Copyright (c) 2015 Huawei, Inc and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.usc.manager.cluster;
import io.netty.channel.Channel;
import akka.actor.ActorRef;
/**
* all related data of a route identifier
*
*/
public class UscRouteIdentifierData {
private ActorRef actorRef;
private UscRouteIdentifier remoteRouteIdentifier;
private int localSessionId;
private Channel agentChannel;
/**
* contructor by actor of remote caller, remote route identifier, local
* session identifier and local agent channel
*
* @param actorRef
* actor of remote caller
* @param remoteRouteIdentifier
* remote route identifier
* @param localSessionId
* local session identifier
* @param agentChannel
* local agent channel
*/
public UscRouteIdentifierData(ActorRef actorRef, UscRouteIdentifier remoteRouteIdentifier, int localSessionId,
Channel agentChannel) {
this.actorRef = actorRef;
this.remoteRouteIdentifier = remoteRouteIdentifier;
this.localSessionId = localSessionId;
this.agentChannel = agentChannel;
}
/**
* get remote session identifier
*
* @return remote session identifier
*/
public int getRemoteSessionId() {
return remoteRouteIdentifier.getSessionId();
}
/**
* get local session identifier
*
* @return local session identifier
*/
public int getLocalSessionId() {
return localSessionId;
}
/**
* get call back actor
*
* @return call back actor
*/
public ActorRef getActorRef() {
return actorRef;
}
/**
* get remote route identifier
*
* @return remote route identifier
*/
public UscRouteIdentifier getRemoteRouteIdentifier() {
return remoteRouteIdentifier;
}
/**
* get local route identifier
*
* @return local route identifier
*/
public UscRouteIdentifier getLocalRouteIdentifier() {
return new UscRouteIdentifier(remoteRouteIdentifier, localSessionId, remoteRouteIdentifier.getApplicationPort());
}
/**
* get local agent channel
*
* @return local agent channel
*/
public Channel getAgentChannel() {
return agentChannel;
}
@Override
public String toString() {
return remoteRouteIdentifier.toString() + ",localSessionId is " + localSessionId + ", remote actor is "
+ actorRef;
}
}