001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.io.remotecontrol;
003
004 import org.openstreetmap.josm.data.preferences.BooleanProperty;
005 import org.openstreetmap.josm.io.remotecontrol.handler.RequestHandler;
006
007 /**
008 * Manager class for remote control operations.
009 *
010 * IMPORTANT! increment the minor version on compatible API extensions
011 * and increment the major version and set minor to 0 on incompatible changes.
012 */
013 public class RemoteControl
014 {
015 /**
016 * If the remote cotrol feature is enabled or disabled. If disabled,
017 * it should not start the server.
018 */
019 public static final BooleanProperty PROP_REMOTECONTROL_ENABLED = new BooleanProperty("remotecontrol.enabled", false);
020
021 /**
022 * RemoteControl HTTP protocol version. Change minor number for compatible
023 * interface extensions. Change major number in case of incompatible
024 * changes.
025 */
026 static final int protocolMajorVersion = 1;
027 static final int protocolMinorVersion = 4;
028
029 /**
030 * Starts the remote control server
031 */
032 public static void start() {
033 RemoteControlHttpServer.restartRemoteControlHttpServer();
034 }
035
036 /**
037 * Adds external request handler.
038 * Can be used by plugins that want to use remote control.
039 *
040 * @param command The command name.
041 * @param handlerClass The additional request handler.
042 */
043 public void addRequestHandler(String command, Class<? extends RequestHandler> handlerClass)
044 {
045 RequestProcessor.addRequestHandlerClass(command, handlerClass);
046 }
047 }