/* this is the application layer */ import java.util.*; public class FinalServer1 { //Vector cities,countries,cars,credit_cards,computers; static final int cities=0; static final int countries=0; static final int cars=2; static final int credit_cards=3; static final int computers=4; static int count; int tabindex; String operation,table,data_item,result; Vector[] tables=new Vector[5]; public FinalServer1() { } void init() { for(int i=0;i<5;i++) { tables[i]=new Vector(); } } public static void main(String args[]) { FinalServer1 a = new FinalServer1(); a.init(); DataAC dac=new DataAC(); DataCA dca=new DataCA(); int id=Integer.parseInt(args[0]); comm t=new comm(id,1200+id*2,0,2,dac,dca); while(true) { try { count++; if (count==20) { System.out.println(a.tables[0].toString()); System.out.println(a.tables[1].toString()); System.out.println(a.tables[2].toString()); System.out.println(a.tables[3].toString()); System.out.println(a.tables[4].toString()); count=0; } Message m = (Message)dca.Consume(); Debug.dump(m,"delivered : "); String query=((CoreMessage)((Abcast)m.getmessageobj()).getCoreMessage()).getQuery(); StringTokenizer str=new StringTokenizer(query); //System.out.println(query); a.table=str.nextToken(); a.operation=str.nextToken(); a.data_item=str.nextToken(); //System.out.println(a.operation); //System.out.println(a.table); //System.out.println(a.data_item); if(a.table.equals("cities")) a.tabindex=0; else if(a.table.equals("countries")) a.tabindex=1; else if(a.table.equals("cars")) a.tabindex=2; else if(a.table.equals("credit_cards")) a.tabindex=3; else a.tabindex=4; //System.out.println(a.tabindex); if(a.operation.equals("view")) { //System.out.println(a.tabindex); if(!a.tables[a.tabindex].isEmpty()) a.result=a.tables[a.tabindex].toString(); else a.result="empty table!"; } if(a.operation.equals("delete_last")) { //System.out.println(a.tabindex); if(!a.tables[a.tabindex].isEmpty()) { a.tables[a.tabindex].removeElement(a.tables[a.tabindex].lastElement()); a.result="Last element deleted"; } else a.result="empty table!"; } if(a.operation.equals("insert_last")) { //System.out.println(a.tabindex); a.tables[a.tabindex].add(a.data_item); a.result="Element inserted"; } CoreMessage cm=new CoreMessage(0,a.result,1); Message rm=new Message(0,-1,-1,-1,cm,-1,m.getmessagesource(),-1); if (m.getmessagedest()==id) dac.Produce(rm); //if (id==0) OLD CODE //System.out.println("Query received at Application layer : "); } catch(Exception e) { System.out.println("AppS : " + e); } } } // CoreMessage cm=new CoreMessage(92,"select * from emp_table",1); /* create a message */ // DataComm_app.addApp_comm(cm); /* send a message App-->Comm */ }