public class

ForwardingService

extends JunctionService
/*
 * Copyright (C) 2010 Stanford University
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


package edu.stanford.junction.simulator;

import org.json.JSONObject;

import edu.stanford.junction.api.activity.JunctionService;
import edu.stanford.junction.api.messaging.MessageHandler;
import edu.stanford.junction.api.messaging.MessageHeader;

/**
 * This class allows a remote client to subscribe to a channel without having
 * to open a new connection for it. It may be useful for a singleton service 
 * expecting to connect to many activities.
 * @author bdodson
 *
 */
public class ForwardingService extends JunctionService {
	private String mChannel; // TODO: this needs to be on another server
	
	private ForwardingService() {}
	public static JunctionService newInstance() {
		return new ForwardingService();
	}
	
	@Override
	public String getServiceName() {
		return "JunctionMaker";
	}

	@Override
	public void onActivityStart() {
	}
	
	@Override
	public void onActivityJoin() {
	}

	@Override
	public void onMessageReceived(MessageHeader header, JSONObject message) {
		// TODO: get a new Junction for remote server
		// Figure out how to preserve sender info
		// ('originator' field or something?)
		//getJunction().sendMessageToChannel(mChannel, message)		
	}
	
}