Diffusion Apple API  6.9.0
Unified Client Library for iOS, tvOS and OS X / macOS
 All Classes Files Functions Variables Enumerations Enumerator Properties Pages
Enumerations | Functions | Variables
PTDiffusionTopicType.h File Reference

Enumerations

enum  PTDiffusionTopicType {
  PTDiffusionTopicType_Routing = 12, PTDiffusionTopicType_Binary = 13, PTDiffusionTopicType_JSON = 14, PTDiffusionTopicType_Double = 15,
  PTDiffusionTopicType_Int64 = 16, PTDiffusionTopicType_String = 17, PTDiffusionTopicType_TimeSeries = 18, PTDiffusionTopicType_RecordV2 = 19,
  PTDiffusionTopicType_Unknown = 20
}
 

Functions

NSString * PTDiffusionTopicTypeToString (PTDiffusionTopicType topicType)
 
NSString * PTDiffusionTopicTypeToName (PTDiffusionTopicType topicType)
 

Variables

import Foundation
 

Detailed Description

The topic type determines the type of the data values a topic publishes to subscribers.

Source Topics

Most topics are source topics. The characteristics of each type of source topic are summarized in the following table.

Topic type State Data type
PTDiffusionTopicType_String Single scalar value. String.
PTDiffusionTopicType_Int64 Single scalar value. 64-bit integer.
PTDiffusionTopicType_Double Single scalar value. Double precision floating point number.
PTDiffusionTopicType_Binary Single scalar value. Arbitrary binary data.
PTDiffusionTopicType_RecordV2 Single composite value. PTDiffusionRecordV2 – Diffusion-specific data type. A list of records, each composed of field values, with an optional schema.
PTDiffusionTopicType_JSON Single composite value. PTDiffusionJSON, backed by CBOR-format binary.
PTDiffusionTopicType_TimeSeries Append-only log of events. PTDiffusionTimeSeriesEvent containing a value of a well-known data type.

Routing Topics (deprecated)

A PTDiffusionTopicType_Routing topic can have a different source topic for each subscription.

Routing topics republish values from source topics. The data type is inherited from the source topic.

Routing topics are deprecated in favor of Session Trees.

See Also
PTDiffusionTopicSpecification
Since
5.6

Enumeration Type Documentation

Enumerator
PTDiffusionTopicType_Routing 

Routing Topic.

A topic that can reference different source topics for different sessions.

Each subscription to a routing topic is routed to a source topic. Updates to the source topic are routed back to the subscriber and appear to come from the routing topic.

The result is that a session may subscribe to a topic which is in reality supported by another topic and the mapping of the routing topic to the actual topic can be different for each session.

As an example, you may wish for all sessions to simply subscribe to a topic called "Prices" but depending upon the client type the actual topic could differ (Prices/Discount, Prices/Standard etc).

An instance of this topic may map any number of sessions to any number of different source topics.

From the point of view of a session subscribing to such a topic, a routing topic appears to be a normal topic but it has no state of its own and cannot be updated.

The mapping of sessions to source topics is performed by a control client session using the Subscription Control feature. When a session subscribes to the routing topic the control client is requested to provide the topic that the client is to be subscribed to. If there is no control client available to handle subscriptions at the time a session subscribed, the session will not be subscribed to the topic.

Alternatively, the routing can be determined by a user-written Java class (deployed on the server) which will be invoked to define the mapping of the topic to another data topic when a session subscribes.

When a source topic is removed that is mapped to from a routing topic then any session that were mapped to that source topic will be unsubscribed from the routing topic.

Since
5.7
Deprecated:
since 6.7 Routing Topics are deprecated. The more powerful Session Trees feature should be used in their place.
PTDiffusionTopicType_Binary 

Topic that stores and publishes binary values. Based on the PTDiffusionBinary data type.

Supports delta-streams.

Since
5.7
PTDiffusionTopicType_JSON 

Topic that stores and publishes JSON (JavaScript Object Notation) values. Based on the PTDiffusionJSON data type.

Supports delta-streams.

Since
5.7
PTDiffusionTopicType_Double 

Topic that stores and publishes IEEE 754 double-precision floating point numbers. Based on the double data type.

Supports nil values.

The topic does not support delta-streams — only complete values are transmitted.

Since
6.0
PTDiffusionTopicType_Int64 

Topic that stores and publishes 64-bit integer values. Based on the int64 data type.

Supports nil values.

The topic does not support delta-streams — only complete values are transmitted.

Since
6.0
PTDiffusionTopicType_String 

Topic that stores and publishes string values. Based on the string data type.

Supports nil values.

Supports delta-streams.

Since
6.0
PTDiffusionTopicType_TimeSeries 

A time series is a sequence of events. Each event contains a value and has server-assigned metadata comprised of a sequence number, timestamp, and author.

A time series topic allows sessions to access a time series that is maintained by the server. A time series topic has an associated event data type that determines the type of value associated with each event.

Retained range

The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property configures the range of historic events retained by a time series topic. If the property is not specified, a time series topic will retain the ten most recent events.

Subscription range

The [PTDiffusionTopicSpecification timeSeriesSubscriptionRange] property configures a time series topic to send a range of historic events from the end of the time series to new subscribers. This is a convenient way to synchronize new subscribers without requiring the use of a range query.

By default, new subscribers will be sent the latest event if delta streams are enabled and no events if delta streams are disabled.

Mandatory properties

The [PTDiffusionTopicSpecification timeSeriesEventValueType] property must be provided when creating a time series topic.

Since
6.0
PTDiffusionTopicType_RecordV2 

Topic that stores and publishes data in the form of records and fields.

Supports delta-streams.

Since
6.0
PTDiffusionTopicType_Unknown 

A topic type that is unsupported by the session.

Since
6.1

Function Documentation

NSString* PTDiffusionTopicTypeToName ( PTDiffusionTopicType  topicType)

Returns the name of this topic type constant, exactly as declared in its enum declaration in the Diffusion API for Java.

Parameters
topicTypeThe topic type for which the name is to be returned.
Returns
name of given topic type constant, exactly as declared in its enum declaration.
Since
5.9
NSString* PTDiffusionTopicTypeToString ( PTDiffusionTopicType  topicType)

Returns a localized string representation of the given topic type.

Parameters
topicTypeThe topic type for which a description is to be returned.
Returns
localized string representation of the given topic type.
Since
5.7