Interface ConfigurableServerChannel

All Superinterfaces:
Channel
All Known Subinterfaces:
ServerChannel
All Known Implementing Classes:
ServerChannelImpl

public interface ConfigurableServerChannel
extends Channel

A ConfigurableServerChannel offers an API that can be used to configure ServerChannels at creation time.

ServerChannels may be created concurrently via BayeuxServer.createChannelIfAbsent(String, ConfigurableServerChannel.Initializer...) and it is important that the creation of a channel is atomic so that its configuration is executed only once, and so that it is guaranteed that it happens before any message can be published or received by the channel.

  • Method Details

    • addListener

      void addListener​(ConfigurableServerChannel.ServerChannelListener listener)
      Parameters:
      listener - the listener to add
      See Also:
      removeListener(ServerChannelListener)
    • removeListener

      void removeListener​(ConfigurableServerChannel.ServerChannelListener listener)
      Parameters:
      listener - the listener to remove
      See Also:
      addListener(ServerChannelListener)
    • getListeners

      java.util.List<ConfigurableServerChannel.ServerChannelListener> getListeners()
      Returns:
      an immutable list of listeners
      See Also:
      addListener(ServerChannelListener)
    • isLazy

      boolean isLazy()
      Returns:
      whether the channel is lazy
      See Also:
      setLazy(boolean)
    • setLazy

      void setLazy​(boolean lazy)
      A lazy channel marks all messages published to it as lazy.
      Parameters:
      lazy - whether the channel is lazy
      See Also:
      isLazy()
    • getLazyTimeout

      long getLazyTimeout()
      Returns:
      the lazy timeout for this channel
      See Also:
      setLazyTimeout(long)
    • setLazyTimeout

      void setLazyTimeout​(long lazyTimeout)
      Sets the lazy timeout for this channel. A positive value makes the channel lazy, a negative value makes the channel non-lazy.
      Parameters:
      lazyTimeout - the lazy timeout for this channel
      See Also:
      setLazy(boolean)
    • isPersistent

      boolean isPersistent()
      Returns:
      whether the channel is persistent
      See Also:
      setPersistent(boolean)
    • setPersistent

      void setPersistent​(boolean persistent)
      A persistent channel is not removed when the last subscription is removed
      Parameters:
      persistent - whether the channel is persistent
      See Also:
      isPersistent()
    • isBroadcastToPublisher

      boolean isBroadcastToPublisher()
      Returns:
      whether the channel broadcasts messages back to the publisher
    • setBroadcastToPublisher

      void setBroadcastToPublisher​(boolean broadcastToPublisher)
      Sets whether a publisher that is also a subscriber to the channel will receive the messages it publishes on that channel.
      Parameters:
      broadcastToPublisher - whether the channel broadcasts messages back to the publisher
    • addAuthorizer

      void addAuthorizer​(Authorizer authorizer)

      Adds the given Authorizer that grants or denies operations on this channel.

      Operations must be granted by at least one Authorizer and must not be denied by any.

      Parameters:
      authorizer - the Authorizer to add
      See Also:
      removeAuthorizer(Authorizer), Authorizer
    • removeAuthorizer

      void removeAuthorizer​(Authorizer authorizer)

      Removes the given Authorizer.

      Parameters:
      authorizer - the Authorizer to remove
      See Also:
      addAuthorizer(Authorizer)
    • getAuthorizers

      java.util.List<Authorizer> getAuthorizers()
      Returns:
      an immutable list of authorizers for this channel