view src/alice/codesegment/OutputDataSegment.java @ 309:797267843126

Refactor
author sugi
date Tue, 26 Nov 2013 15:33:29 +0900
parents a8255a831ade
children
line wrap: on
line source

package alice.codesegment;

import alice.datasegment.DataSegment;
import alice.datasegment.Receiver;

public class OutputDataSegment {

	/**
	 * for local
	 */

	public void flip(Receiver receiver) {
		receiver.managerKey=null;
		DataSegment.getLocal().put(receiver.key, receiver.getObj());
	}

	public void put(String key, Object val) {
		DataSegment.getLocal().put(key, val);
	}

	public void quickPut(String key, Object val) {
		put(key, val);
	}

	public void update(String key, Object val) {
		DataSegment.getLocal().update(key, val);
	}

	public void quickuUpdate(String key, Object val) {
		update(key, val);
	}

	/**
	 * for remote
	 */
	public void put(String managerKey, String key, Object val) {
		if (!managerKey.equals("local")){
			DataSegment.get(managerKey).put(key,val);
		} else {
			put(key, val);
		}
	}

	public void quickPut(String managerKey, String key, Object val) {
		if (!managerKey.equals("local")){
			DataSegment.get(managerKey).quickPut(key, val);
		} else {
			put(key, val);
		}
	}

	public void update(String managerKey, String key, Object val) {
		if (!managerKey.equals("local")){
			DataSegment.get(managerKey).update(key, val);
		} else {
			update(key, val);
		}
	}

	public void quickUpdate(String managerKey, String key, Object val) {
		if (!managerKey.equals("local")){
			DataSegment.get(managerKey).update(key, val);
		} else {
			update(key, val);
		}
	}

	/**
	 * kill the Alice process after send other messages.
	 * 
	 * @param managerKey
	 */

	public void finish(String managerKey) {
		DataSegment.get(managerKey).finish();
	}

	/**
	 * close socket for RemoteDataSegment after send other messages.
	 * 
	 * @param managerKey
	 */

	public void close(String managerKey) {
		DataSegment.get(managerKey).close();
	}

	/**
	 * "key" is not remote DataSegment's key.
	 * "Ping Response" return in this "key" 
	 * 
	 * @param managerKey
	 * @param key
	 */
	public void ping(String managerKey, String returnKey) {
		DataSegment.get(managerKey).ping(returnKey);
	}

}