Interface UpdateStream.Builder

Enclosing interface:
UpdateStream<T>

public static interface UpdateStream.Builder
Builder for update stream to use for updating a specific topic. A builder is created using TopicUpdate.newUpdateStreamBuilder().

The type of the topic being updated must match the type derived from the valueClass parameter.

Since:
6.9
  • Method Details

    • specification

      UpdateStream.Builder specification(TopicSpecification topicSpecification)
      Specifies a TopicSpecification for this update stream.

      If a topic does not exist at the path one will be created using the topicSpecification when the update stream is validated. If a topic does exist, its specification must match topicSpecification, otherwise the operation will fail with IncompatibleTopicException.

      Specification is null by default. Calling this method with a null parameter removes the specification for this builder.

      Parameters:
      topicSpecification - the required specification of the topic
      Returns:
      this builder
    • constraint

      UpdateStream.Builder constraint(UpdateConstraint updateConstraint)
      Specifies an update constraint for this update stream.

      Constraints can be created using Diffusion.updateConstraints()}.

      Constraints can be applied to the setting of a value and creation of an update stream. Constraints describe a condition that must be satisfied for the operation to succeed. The constraints are evaluated on the server. The available constraints are: an active session lock, the absence of a topic, the current value of the topic being updated, and a part of the current value of the topic being updated.

      Constraint is Unconstrained by default. Calling this method with a null parameter resets the constraint for this builder.

      Parameters:
      updateConstraint - the constraint that must be satisfied for the update stream to be validated
      Returns:
      this builder
    • suppressDeltas

      UpdateStream.Builder suppressDeltas(boolean suppressDeltas)
      Specifies if delta compression should be disabled for this update stream.

      This is false by default, i.e. delta compression is enabled.

      Disabling delta compression can reduce the CPU workload at the client at the cost of increased bandwidth and possible additional CPU load on the server (if the topic publishes deltas). This may be particularly useful for topics that have PUBLISH_VALUES_ONLY set.

      Parameters:
      suppressDeltas - the boolean value to set the suppression of delta compression.
      Returns:
      this builder
      Since:
      6.11
    • reset

      Resets the builder to its default parameters.
      Returns:
      this builder
    • build

      <T> UpdateStream<T> build(String path, Class<T> valueClass)
      Creates an UpdateStream to use for updating a specific topic.

      The type of the topic being updated must match the type derived from the valueClass parameter.

      Update streams send a sequence of updates for a specific topic. The updates may be delivered to the server as binary deltas. They do not provide exclusive access to the topic. If exclusive access is required update streams should be used with session locks as constraints.

      Streams are validated lazily when the first UpdateStream.set(T) or UpdateStream.validate() operation is completed. Once validated a stream can be invalidated, after which it rejects future updates.

      Type Parameters:
      T - type of the values expected by the update stream
      Parameters:
      path - the path of the topic
      valueClass - the type of the values expected by the update stream
      Returns:
      an update stream
    • build

      <T> RecoverableUpdateStream<T> build(String path, Class<T> valueClass, RetryStrategy strategy)
      Creates a RecoverableUpdateStream to use for updating a specific topic.

      Takes a retry strategy that governs recovery attempts following a recoverable exception. In other respects this method works in the same way as build(String, Class).

      Type Parameters:
      T - type of the values expected by the update stream
      Parameters:
      path - the path of the topic
      valueClass - the type of the values expected by the update stream
      strategy - the retry strategy to apply
      Returns:
      a recoverable update stream
      Since:
      6.10