// Path: fluxjava/src/main/java/io/wzcodes/fluxjava/IFluxBus.java
// public interface IFluxBus {
// 
//     /**
//      * Register to bus.
//      *
//      * @param inSubscriber The subscriber to add into bus.
//      * @since 2016/7/5
//      */
//     void register(final Object inSubscriber);
// 
//     /**
//      * Unregister from bus.
//      *
//      * @param inSubscriber The subscriber remove from bus.
//      * @since 2016/7/5
//      */
//     void unregister(final Object inSubscriber);
// 
//     /**
//      * Send a message to all subscribers.
//      *
//      * @param inEvent The message need to be sent.
//      * @since 2016/7/5
//      */
//     void post(final Object inEvent);
// 
// }


import com.jakewharton.rxrelay2.PublishRelay;
import com.jakewharton.rxrelay2.Relay;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.reactivex.BackpressureStrategy;
import io.reactivex.Flowable;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
import io.wzcodes.fluxjava.IFluxBus;
        }
    }

    /**
     * @since 2017/11/11
     */
    @Override
    public void unregister(final Object inSubscriber) {
        final List<Object> keys = new ArrayList<>();

        keys.add(inSubscriber);
        if (inSubscriber instanceof IRxDispatch) {
            final IRxDispatch subscriber = (IRxDispatch)inSubscriber;

            if (subscriber.getKeys() != null) {
                keys.addAll(subscriber.getKeys());
            }
        }

        for (Object key : keys) {
            this.removeSubscription(key);
        }
    }

    /**
     * @since 2017/11/11
     */
    @Override
    public void post(final Object inEvent) {
        if (this.mBus.hasObservers()) {
// Path: fluxjava/src/main/java/io/wzcodes/fluxjava/IFluxBus.java
// public interface IFluxBus {
// 
//     /**
//      * Register to bus.
//      *
//      * @param inSubscriber The subscriber to add into bus.
//      * @since 2016/7/5
//      */
//     void register(final Object inSubscriber);
// 
//     /**
//      * Unregister from bus.
//      *
//      * @param inSubscriber The subscriber remove from bus.
//      * @since 2016/7/5
//      */
//     void unregister(final Object inSubscriber);
// 
//     /**
//      * Send a message to all subscribers.
//      *
//      * @param inEvent The message need to be sent.
//      * @since 2016/7/5
//      */
//     void post(final Object inEvent);
// 
// }


// Path: fluxjava-rx2/src/main/java/io/wzcodes/fluxjava/rx/RxBus.java
import com.jakewharton.rxrelay2.PublishRelay;
import com.jakewharton.rxrelay2.Relay;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import io.reactivex.BackpressureStrategy;
import io.reactivex.Flowable;
import io.reactivex.Observable;
import io.reactivex.disposables.Disposable;
import io.wzcodes.fluxjava.IFluxBus;

        }
    }

    /**
     * @since 2017/11/11
     */
    @Override
    public void unregister(final Object inSubscriber) {
        final List<Object> keys = new ArrayList<>();

        keys.add(inSubscriber);
        if (inSubscriber instanceof IRxDispatch) {
            final IRxDispatch subscriber = (IRxDispatch)inSubscriber;

            if (subscriber.getKeys() != null) {
                keys.addAll(subscriber.getKeys());
            }
        }

        for (Object key : keys) {
            this.removeSubscription(key);
        }
    }

    /**
     * @since 2017/11/11
     */
    @Override
    public void post(final Object inEvent) {
        if (this.mBus.hasObservers()) {
            this.mBus.accept(inEvent);