Interface StreamManager

  • All Superinterfaces:
    java.lang.AutoCloseable

    public interface StreamManager
    extends java.lang.AutoCloseable
    Used to create, delete, and manage Streams and ReaderGroups.
    • Method Summary

      All Methods Static Methods Instance Methods Abstract 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.
      static StreamManager create​(ClientConfig clientConfig)
      Creates a new instance of StreamManager.
      static StreamManager create​(java.net.URI controller)
      Creates a new instance of StreamManager.
      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 toDelete)
      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.
    • Method Detail

      • create

        static StreamManager create​(java.net.URI controller)
        Creates a new instance of StreamManager.
        Parameters:
        controller - The Controller URI.
        Returns:
        Instance of Stream Manager implementation.
      • create

        static StreamManager create​(ClientConfig clientConfig)
        Creates a new instance of StreamManager.
        Parameters:
        clientConfig - Configuration for the client connection to Pravega.
        Returns:
        Instance of Stream Manager implementation.
      • createStream

        boolean createStream​(java.lang.String scopeName,
                             java.lang.String streamName,
                             StreamConfiguration config)
        Creates a new stream

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

        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

        boolean updateStream​(java.lang.String scopeName,
                             java.lang.String streamName,
                             StreamConfiguration config)
        Change the configuration for an existing stream.

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

        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

        boolean truncateStream​(java.lang.String scopeName,
                               java.lang.String streamName,
                               StreamCut streamCut)
        Truncate stream at given stream cut. This method may block.
        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

        boolean sealStream​(java.lang.String scopeName,
                           java.lang.String streamName)
        Seal an existing stream.
        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

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

        java.util.Iterator<java.lang.String> listScopes()
        Gets an iterator for all scopes.
        Returns:
        Iterator to iterate over all scopes.
      • createScope

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

        boolean checkScopeExists​(java.lang.String scopeName)
        Checks if a scope exists.
        Parameters:
        scopeName - The name of the scope to check.
        Returns:
        True if scope exists.
      • listStreams

        java.util.Iterator<Stream> listStreams​(java.lang.String scopeName)
        Gets an iterator for all streams in scope.
        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

        java.util.Iterator<Stream> listStreams​(java.lang.String scopeName,
                                               java.lang.String tagName)
        Gets an iterator to list all streams with the provided tag.
        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

        java.util.Collection<java.lang.String> getStreamTags​(java.lang.String scopeName,
                                                             java.lang.String streamName)
        Gets the Tags associated with a stream.
        Parameters:
        scopeName - Scope name.
        streamName - Stream name.
        Returns:
        Tags associated with the stream.
      • checkStreamExists

        boolean checkStreamExists​(java.lang.String scopeName,
                                  java.lang.String streamName)
        Checks if a stream exists in scope.
        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

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

        boolean deleteScope​(java.lang.String scopeName,
                            boolean forceDelete)
                     throws DeleteScopeFailedException
        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.
        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

        @Beta
        StreamInfo getStreamInfo​(java.lang.String scopeName,
                                 java.lang.String streamName)
        Get information about a given Stream, StreamInfo. This includes StreamCuts pointing to the current HEAD and TAIL of the Stream and the current StreamConfiguration
        Parameters:
        scopeName - The scope of the stream.
        streamName - The stream name.
        Returns:
        stream information.
      • close

        void close()
        Closes the stream manager.
        Specified by:
        close in interface java.lang.AutoCloseable
        See Also:
        AutoCloseable.close()