view src/fdl/old/test/transfer/ProtocolEngine.java @ 114:3b877c9a44f5

gather old packages
author kazz
date Mon, 11 Oct 2010 14:29:37 +0900
parents src/fdl/test/transfer/ProtocolEngine.java@865bf7f1bb8d
children
line wrap: on
line source

package fdl.old.test.transfer;

import java.io.IOException;
import java.nio.ByteBuffer;

import fdl.FederatedLinda;
import fdl.PSXLinda;
import fdl.PSXReply;


public class ProtocolEngine extends Thread{
	private PSXLinda psx;
	private String name;
	FederatedLinda fdl1;
	String host = "127.0.0.1";
	int port1 = 10001;
	int port2 = 10002;
	private int id = 10;
	private PSXLinda psx1;
	private boolean running = true;
	private ByteBuffer data2 = ByteBuffer.allocate(10);

	public ProtocolEngine(String string, int port1, int port2) {
		this.name = string;
		this.port1 = port1;
		this.port2 = port2;
	}

	public void run(){
		fdl1 = FederatedLinda.init();
		try {
			System.out.println(name);
			psx = fdl1.open(host,port1);
			System.out.println("Connect Host1");
			psx1 = fdl1.open(host,port2);
			System.out.println("Connect Host2");
			// Host1にデータを送信する。
			testSend(psx);
			// psxにデータを用意
			transfer(psx,psx1);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	private void testSend(PSXLinda psx2) throws IOException {
		ByteBuffer send = ByteBuffer.allocate(10);
		send.putInt(12);
		send.flip();
		psx2.out(id, send);
		psx2.sync(1);
	}
	

	private void transfer(PSXLinda getpsx, PSXLinda sendpsx) throws IOException {
		PSXReply in = getpsx.in(id);
		while (running) {
			System.out.println(in.ready());
			if(in.ready()){
				//psx1にデータを書き出し
				data2 = in.getData();
				sendpsx.out(id,data2);
				//runningフラグをfalseする
				running = false;
				fdl1.sync(0);
				break;
			}
			fdl1.sync();
		}
		
	}

}