Class StreamManagerImpl

  • All Implemented Interfaces:
    StreamManager, java.lang.AutoCloseable

    public class StreamManagerImpl
    extends java.lang.Object
    implements StreamManager
    A stream manager. Used to bootstrap the client.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean checkScopeExists​(java.lang.String scopeName)
      Checks if a scope exists.
      boolean checkStreamExists​(java.lang.String scopeName, java.lang.String streamName)
      Checks if a stream exists in scope.
      void close()
      Closes the stream manager.
      boolean createScope​(java.lang.String scopeName)
      Creates a new scope.
      boolean createStream​(java.lang.String scopeName, java.lang.String streamName, StreamConfiguration config)
      Creates a new stream
      boolean deleteScope​(java.lang.String scopeName)
      Deletes an existing scope.
      boolean deleteScope​(java.lang.String scopeName, boolean forceDelete)
      Deletes scope by listing and deleting all streams in scope.
      boolean deleteStream​(java.lang.String scopeName, java.lang.String streamName)
      Deletes the provided stream.
      StreamInfo getStreamInfo​(java.lang.String scopeName, java.lang.String streamName)
      Get information about a given Stream, StreamInfo.
      java.util.Collection<java.lang.String> getStreamTags​(java.lang.String scopeName, java.lang.String streamName)
      Gets the Tags associated with a stream.
      java.util.Iterator<java.lang.String> listScopes()
      Gets an iterator for all scopes.
      java.util.Iterator<Stream> listStreams​(java.lang.String scopeName)
      Gets an iterator for all streams in scope.
      java.util.Iterator<Stream> listStreams​(java.lang.String scopeName, java.lang.String tagName)
      Gets an iterator to list all streams with the provided tag.
      boolean sealStream​(java.lang.String scopeName, java.lang.String streamName)
      Seal an existing stream.
      boolean truncateStream​(java.lang.String scopeName, java.lang.String streamName, StreamCut streamCut)
      Truncate stream at given stream cut.
      boolean updateStream​(java.lang.String scopeName, java.lang.String streamName, StreamConfiguration config)
      Change the configuration for an existing stream.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Method Detail

      • createStream

        public boolean createStream​(java.lang.String scopeName,
                                    java.lang.String streamName,
                                    StreamConfiguration config)
        Description copied from interface: StreamManager
        Creates a new stream

        Note: This method is idempotent assuming called with the same name and config. This method may block.

        Specified by:
        createStream in interface StreamManager
        Parameters:
        scopeName - The name of the scope to create this stream in.
        streamName - The name of the stream to be created.
        config - The configuration the stream should use.
        Returns:
        True if stream is created
      • updateStream

        public boolean updateStream​(java.lang.String scopeName,
                                    java.lang.String streamName,
                                    StreamConfiguration config)
        Description copied from interface: StreamManager
        Change the configuration for an existing stream.

        Note: This method is idempotent assuming called with the same name and config. This method may block.

        Specified by:
        updateStream in interface StreamManager
        Parameters:
        scopeName - The name of the scope to create this stream in.
        streamName - The name of the stream who's config is to be changed.
        config - The new configuration.
        Returns:
        True if stream configuration is updated
      • truncateStream

        public boolean truncateStream​(java.lang.String scopeName,
                                      java.lang.String streamName,
                                      StreamCut streamCut)
        Description copied from interface: StreamManager
        Truncate stream at given stream cut. This method may block.
        Specified by:
        truncateStream in interface StreamManager
        Parameters:
        scopeName - The name of the scope to create this stream in.
        streamName - The name of the stream who's config is to be changed.
        streamCut - The stream cut to truncate at.
        Returns:
        True if stream is truncated at given truncation stream cut.
      • sealStream

        public boolean sealStream​(java.lang.String scopeName,
                                  java.lang.String streamName)
        Description copied from interface: StreamManager
        Seal an existing stream.
        Specified by:
        sealStream in interface StreamManager
        Parameters:
        scopeName - The name of the scope to create this stream in.
        streamName - The name of the stream which has to be sealed.
        Returns:
        True if stream is sealed
      • deleteStream

        public boolean deleteStream​(java.lang.String scopeName,
                                    java.lang.String streamName)
        Description copied from interface: StreamManager
        Deletes the provided stream. No more events may be written or read. Resources used by the stream will be freed.
        Specified by:
        deleteStream in interface StreamManager
        Parameters:
        scopeName - The name of the scope to create this stream in.
        streamName - The name of the stream to be deleted.
        Returns:
        True if stream is deleted
      • listScopes

        public java.util.Iterator<java.lang.String> listScopes()
        Description copied from interface: StreamManager
        Gets an iterator for all scopes.
        Specified by:
        listScopes in interface StreamManager
        Returns:
        Iterator to iterate over all scopes.
      • createScope

        public boolean createScope​(java.lang.String scopeName)
        Description copied from interface: StreamManager
        Creates a new scope.
        Specified by:
        createScope in interface StreamManager
        Parameters:
        scopeName - The name of the scope to create this stream in.
        Returns:
        True if scope is created
      • checkScopeExists

        public boolean checkScopeExists​(java.lang.String scopeName)
        Description copied from interface: StreamManager
        Checks if a scope exists.
        Specified by:
        checkScopeExists in interface StreamManager
        Parameters:
        scopeName - The name of the scope to check.
        Returns:
        True if scope exists.
      • listStreams

        public java.util.Iterator<Stream> listStreams​(java.lang.String scopeName)
        Description copied from interface: StreamManager
        Gets an iterator for all streams in scope.
        Specified by:
        listStreams in interface StreamManager
        Parameters:
        scopeName - The name of the scope for which to list streams in.
        Returns:
        Iterator of Stream to iterator over all streams in scope.
      • listStreams

        public java.util.Iterator<Stream> listStreams​(java.lang.String scopeName,
                                                      java.lang.String tagName)
        Description copied from interface: StreamManager
        Gets an iterator to list all streams with the provided tag.
        Specified by:
        listStreams in interface StreamManager
        Parameters:
        scopeName - The name of the scope for which to list streams in.
        tagName - The name of the tag.
        Returns:
        Iterator of Stream to iterator over all streams in scope with the provided tag.
      • getStreamTags

        public java.util.Collection<java.lang.String> getStreamTags​(java.lang.String scopeName,
                                                                    java.lang.String streamName)
        Description copied from interface: StreamManager
        Gets the Tags associated with a stream.
        Specified by:
        getStreamTags in interface StreamManager
        Parameters:
        scopeName - Scope name.
        streamName - Stream name.
        Returns:
        Tags associated with the stream.
      • checkStreamExists

        public boolean checkStreamExists​(java.lang.String scopeName,
                                         java.lang.String streamName)
        Description copied from interface: StreamManager
        Checks if a stream exists in scope.
        Specified by:
        checkStreamExists in interface StreamManager
        Parameters:
        scopeName - The name of the scope to check the stream in.
        streamName - The name of the stream to check.
        Returns:
        True if stream exists.
      • deleteScope

        public boolean deleteScope​(java.lang.String scopeName)
        Description copied from interface: StreamManager
        Deletes an existing scope. The scope must contain no stream. This is same as calling StreamManager.deleteScope(String, boolean) with deleteStreams flag set to false.
        Specified by:
        deleteScope in interface StreamManager
        Parameters:
        scopeName - The name of the scope to delete.
        Returns:
        True if scope is deleted
      • deleteScope

        public boolean deleteScope​(java.lang.String scopeName,
                                   boolean forceDelete)
                            throws DeleteScopeFailedException
        Description copied from interface: StreamManager
        Deletes scope by listing and deleting all streams in scope. This method is not atomic and if new streams are added to the scope concurrently, the attempt to delete the scope may fail. Deleting scope is idempotent and failure to delete scope is retry-able.
        Specified by:
        deleteScope in interface StreamManager
        Parameters:
        scopeName - The name of the scope to delete.
        forceDelete - To list and delete streams, key-value tables and reader groups in scope before attempting to delete scope.
        Returns:
        True if scope is deleted, false otherwise.
        Throws:
        DeleteScopeFailedException - is thrown if this method is unable to seal and delete a stream.
      • getStreamInfo

        public StreamInfo getStreamInfo​(java.lang.String scopeName,
                                        java.lang.String streamName)
        Description copied from interface: StreamManager
        Get information about a given Stream, StreamInfo. This includes StreamCuts pointing to the current HEAD and TAIL of the Stream and the current StreamConfiguration
        Specified by:
        getStreamInfo in interface StreamManager
        Parameters:
        scopeName - The scope of the stream.
        streamName - The stream name.
        Returns:
        stream information.
      • close

        public void close()
        Description copied from interface: StreamManager
        Closes the stream manager.
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface StreamManager
        See Also:
        AutoCloseable.close()