/* * 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) } }