// Copyright 2012 Google Inc. All Rights Reserved. // // 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 com.google.collide.clientlibs.vertx; import com.google.gwt.core.client.JavaScriptObject; /** * An interface exposing the operations which can be performed over the vertx event bus. */ public interface VertxBus { /** * Handler for receiving replies to messages you sent on the event bus. */ public interface ReplyHandler { void onReply(String message); } /** * Client for sending a reply in response to a message you received on the event bus. */ public static class ReplySender extends JavaScriptObject { protected ReplySender() { } public final native void sendReply(String message) /*-{ this(message); }-*/; } /** * Handler messages sent to you on the event bus. */ public interface MessageHandler { void onMessage(String message, ReplySender replySender); } public interface ConnectionListener { void onOpen(); void onClose(); } public static final short CONNECTING = 0; public static final short OPEN = 1; public static final short CLOSING = 2; public static final short CLOSED = 3; /** * Sets a callback which is called when the eventbus is open. The eventbus is opened automatically * upon instantiation so this should be the first thing that is set after instantiation. */ public void setOnOpenCallback(ConnectionListener callback); /** Sets a callback which is called when the eventbus is closed */ public void setOnCloseCallback(ConnectionListener callback); /** * Sends a message to an address, providing an replyHandler. */ public void send(String address, String message, ReplyHandler replyHandler); /** * Sends a message to an address. */ public void send(String address, String message); /** Closes the event bus */ public void close(); /** * @return the ready state of the event bus */ public short getReadyState(); /** * Registers a new handler which will listener for messages sent to the specified address. */ public void register(String address, MessageHandler handler); /** * Unregistered a previously registered handler listening on the specified address. */ public void unregister(String address, MessageHandler handler); }