Class: TopicSpecification

diffusion.topics TopicSpecification


new TopicSpecification(type [, properties])

Topic specifications provide the information required to create a topic. Topics can be created from a topic specification using Session.topics#add.

Topic specifications allow an application to introspect the type and capabilities of a topic. Topic specifications are provided to ValueStreams and topic notification listeners.

A topic is specified in terms of its type and a map of optional property settings which can alter the default behavior of the topic.

Topic Properties

Depending on the topic type, some properties must be included in the specification when creating a topic and some properties have no effect. All topic specification property values must be supplied as strings.

The required and optional properties for each topic type are set out in the following table.

STRING
JSON
BINARY
DOUBLE
INT64
ROUTING
SINGLE_VALUE
STATELESS
RECORD ‡
SLAVE TIME_SERIES RECORD_V2
CONFLATION Optional Optional Optional Optional Optional Optional
DONT_RETAIN_VALUE Optional Optional Optional Optional
PUBLISH_VALUES_ONLY Optional Optional Optional
SCHEMA Optional
SLAVE_MASTER_TOPIC Required
TIDY_ON_UNSUBSCRIBE Optional Optional Optional Optional Optional Optional
TIME_SERIES_EVENT_VALUE_TYPE Required
TIME_SERIES_RETAINED_RANGE Optional
TIME_SERIES_SUBSCRIPTION_RANGE Optional
VALIDATE_VALUES Optional Optional Optional
PERSISTENT Optional Optional Optional
REMOVAL Optional Optional Optional
OWNER Optional Optional Optional

‡ Prefer the RECORD_V2 topic type for Diffusion record data since it provides full support for topic specifications.

Parameters:
Name Type Argument Default Description
type diffusion.topics.TopicType

The topic type for this specification.

properties Object <optional>
{}

The properties to use for this specification.

Since:
  • 5.9
Example
// Create specification, to be used for creating JSON topics which validate update values on the server
const TopicSpecification = diffusion.topics.TopicSpecification;

var specification = new TopicSpecification(diffusion.topics.TopicType.JSON, {
    TopicSpecification.VALIDATE_VALUES : "true"
});

Methods


withProperty(key, value)

Returns a new TopicSpecification with the specified property set to the supplied value.

Parameters:
Name Type Description
key String

The new property key

value String

The new property value

Returns:

A new TopicSpecification with the specified property set.

Type
TopicSpecification