package loan;
import static loan.LoanApplication.BuyerBrokerSupplier.BuyerBrokerSupplier.ApplicationPortal;
import static loan.LoanApplication.BuyerBrokerSupplier.BuyerBrokerSupplier.FinanceDept;
import static loan.LoanApplication.BuyerBrokerSupplier.BuyerBrokerSupplier.getLoanAmount;
import static loan.LoanApplication.BuyerBrokerSupplier.BuyerBrokerSupplier.reject;
import static loan.LoanApplication.BuyerBrokerSupplier.BuyerBrokerSupplier.sendLoanAmount;
import org.scribble.net.Buf;
import org.scribble.net.ObjectStreamFormatter;
import org.scribble.net.scribsock.ScribServerSocket;
import org.scribble.net.scribsock.SocketChannelServer;
import org.scribble.net.session.MPSTEndpoint;
import loan.LoanApplication.BuyerBrokerSupplier.BuyerBrokerSupplier;
import loan.LoanApplication.BuyerBrokerSupplier.channels.FinanceDept.BuyerBrokerSupplier_FinanceDept_1;
import loan.LoanApplication.BuyerBrokerSupplier.channels.FinanceDept.BuyerBrokerSupplier_FinanceDept_1_Cases;
import loan.LoanApplication.BuyerBrokerSupplier.roles.FinanceDept;
public class LoanFinanceDept
{
public static void main(String[] args) throws Exception
{
BuyerBrokerSupplier sess = new BuyerBrokerSupplier();
try (
ScribServerSocket ss = new SocketChannelServer(9999);
MPSTEndpoint<BuyerBrokerSupplier, FinanceDept> se
= new MPSTEndpoint<>(sess, FinanceDept, new ObjectStreamFormatter()))
{
se.accept(ss, ApplicationPortal);
BuyerBrokerSupplier_FinanceDept_1_Cases branch
= new BuyerBrokerSupplier_FinanceDept_1(se).branch(ApplicationPortal);
switch (branch.getOp())
{
case getLoanAmount:
{
Buf<Integer> loan = new Buf<>();
branch
.receive(ApplicationPortal, getLoanAmount, loan)
.send(ApplicationPortal, sendLoanAmount, loan.val);
break;
}
case reject:
{
branch.receive(ApplicationPortal, reject);
break;
}
}
}
}
}