/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.mobicents.media.server.impl.resource.ss7;
/**
*
* @author kulikov
*/
public class TransferProxy {
private LocalChannel channel1;
private LocalChannel channel2;
public TransferProxy() {
channel1 = new LocalChannel();
channel2 = new LocalChannel();
}
public synchronized LocalChannel getRxChannel(Mtp1 mtp1) {
if (channel1.getDirection() == LocalChannel.TX && channel1.getMtp1() != mtp1) {
return channel1;
} else if (channel2.getDirection() == LocalChannel.TX && channel2.getMtp1() != mtp1) {
return channel2;
} else if (channel1.getDirection() != LocalChannel.RX && channel1.getMtp1() != mtp1) {
channel1.setDirection(LocalChannel.RX);
channel1.setMtp1(mtp1);
return channel1;
} else {
channel2.setDirection(LocalChannel.RX);
channel2.setMtp1(mtp1);
return channel2;
}
}
public synchronized LocalChannel getTxChannel(Mtp1 mtp1) {
if (channel1.getDirection() == LocalChannel.RX && channel1.getMtp1() != mtp1) {
return channel1;
} else if (channel2.getDirection() == LocalChannel.RX && channel2.getMtp1() != mtp1) {
return channel2;
} else if (channel1.getDirection() != LocalChannel.TX && channel1.getMtp1() != mtp1) {
channel1.setDirection(LocalChannel.TX);
return channel1;
} else {
channel2.setDirection(LocalChannel.TX);
channel2.setMtp1(mtp1);
return channel2;
}
}
}