module mcell;

behavior ConcurrentMovingCellTester{

    void act(String args[]){

	if (args.length != 3) {
	    standardOutput<-println( "Usage: salsa mcell.MovingCellTester <UAN> <UAL1> <UAL2>" );
	    return;
	}

	Cell c = new Cell("Hello") 
	    at (new UAN(args[0]),new UAL(args[1]));
	token p0 = standardOutput<-print("Initial Value:");
	token c0 = c<-get();
	token p1 = standardOutput<-println(c0):waitfor(p0);
 	token c1 = c<-set("World"):waitfor(c0);
 	token p2 = standardOutput<-print("New Value:"):waitfor(p1);
 	token c3 = c<-get():waitfor(c1);
 	token p3 = standardOutput<-println(c3):waitfor(p2);
	token c4 = c<-migrate(args[2]);
 	token c5 = c<-set("New World"):waitfor(c4);
 	token p4 = standardOutput<-print("New Value at New Location:"):waitfor(c4);
 	token c6 = c<-get();
	standardOutput<-println(c6);
    }

}
