/** * Add a subscription for the specified subject * * @param subject * - the subject to add a subscription for * @param callback * - function called when the message is dispatched */ @Override public Subscription subscribe(final String subject, final MessageCallback callback) { return _subscribe(subject, callback, false); }
private Subscription _subscribe(final String subject, final MessageCallback callback, final boolean local) { if (getState() == BusState.CONNECTING) { return _subscribeDeferred(subject, callback, local); } else { return _subscribeNow(subject, callback, local); } }
@Override public void onClose(final CloseEvent<Window> event) { if (state != BusState.LOCAL_ONLY) { stop(true); } } });
/** * Removes all subscriptions attached to the specified subject * * @param subject * - the subject to have all it's subscriptions removed */ @Override public void unsubscribeAll(final String subject) { fireAllUnSubscribeListeners(subject); removeSubscriptionTopic(subject); }
@Override public void run() { setState(BusState.CONNECTION_INTERRUPTED); } }.schedule(ms);
/** * Globally send message to all receivers. * * @param message * - The message to be sent. */ @Override public void sendGlobal(final Message message) { send(message); }
@Override public String getTxEndpoint() { return messageBus.getOutServiceEntryPoint(); }
@Override public String getRxEndpoint() { return messageBus.getInServiceEntryPoint(); }
@Override public void callback(final Message message) { encodeAndTransmit(message); } };
@Override public void run() { deferredSubscription.attachSubscription(_subscribeNow(subject, callback, local)); }
private void addSubscriptionEntry(final String subject, final MessageCallback reference) { _addCallbackEntry(subscriptions, subject, reference); }
private boolean degradeToUnitialized() { return isProperty(ChaosMonkey.DEGRADE_TO_UNINITIALIZED_ON_STOP, "true"); }
private void startBus() { clientMessageBus.init(); }
@Override public void stop(final boolean sendDisconnect) { stop(sendDisconnect, null); }
@Override public Subscription subscribeLocal(final String subject, final MessageCallback callback) { return _subscribe(subject, callback, true); }
/** * Puts the bus in the given state, firing all necessary transition events with no <tt>reason</tt> field. */ public void setState(final BusState newState) { setState(newState, null); }
/** * Sends the specified message, and notifies the listeners. * * @param message * - the message to be sent * @param fireListeners * - true if the appropriate listeners should be fired */ @Override public void send(final Message message, final boolean fireListeners) { // TODO: fire listeners? send(message); }
@Override public String getTxEndpoint() { return clientMessageBus.getOutServiceEntryPoint(); }
@Override public String getRxEndpoint() { return clientMessageBus.getInServiceEntryPoint(); }
private void stopBus() { clientMessageBus.stop(false); }