class BufferedPublisher extends BasePublisher<T> {

  public void drainHandler(final Runnable handler) {
    checkContext();
    if (drainHandler != null) {
      throw new IllegalStateException("drainHandler already set");
    }
    this.drainHandler = Objects.requireNonNull(handler);
  }

  public  BufferedPublisher(final Context ctx);
  public  BufferedPublisher(final Context ctx, final Collection<T> initialBuffer);
  public  BufferedPublisher(final Context ctx, final int bufferMaxSize);

}