Table of Contents

Interface IUpdateConstraint

Namespace
PushTechnology.ClientInterface.Client.Features
Assembly
Diffusion.Client.dll

The constraint to be applied to an update operation or the creation of an update stream.

public interface IUpdateConstraint

Remarks

Constraints describe a condition that must be satisfied for an operation to succeed. Constraints can be applied to the setting of a value or creation of an update stream. Constraints are only evaluated on the server.

The constraints are evaluated using the:

  • active session locks
  • existence of the topic
  • current value of the topic

The value of a topic can be described in several ways. The value can be described as an exact value, a partial value or an unset value.

Constraints can be composed with one another using logical ANDs or ORs. It is possible to compose a constraint that can never be satisfied although certain combinations, such as ANDing two incompatible constraints, are prevented. Multiple session locks can be held but a topic can only have a single value.

Constraints can be created using a IUpdateConstraintFactory, an instance of which can be obtained using UpdateConstraints.

For example:

var factory = Diffusion.UpdateConstraints;
var constraint = factory.Locked(lock).And( factory.Value( EQ, expectedValue ) );

Methods

And(IUpdateConstraint)

Creates a composed constraint that represents a logical AND of this constraint and another.

IUpdateConstraint And(IUpdateConstraint other)

Parameters

other IUpdateConstraint

The constraint that will be logically-ANDed with the current constraint.

Returns

IUpdateConstraint

The newly composed constraint that represents a logical AND of the current constraint and the other constraint.

Or(IUpdateConstraint)

Creates a composed constraint that represents a logical OR of this constraint and another.

IUpdateConstraint Or(IUpdateConstraint other)

Parameters

other IUpdateConstraint

The constraint that will be logically-ORed with the current constraint.

Returns

IUpdateConstraint

The newly composed constraint that represents a logical OR of the current constraint and the other constraint.

Remarks

Since 6.10.