[This is preliminary documentation and is subject to change.]
Aggregates publish, subscribe, and query activity across multiple zones.
An agent typically registers with its zones at startup, creates Topic
instances for the data types it is interested in, and then joins zones to
each topic by calling Topic.addZone. A given Zone can only be
joined to one Topic. If an agent wishes to manage publish and subscribe
activity on a per-zone basis, it can do so by creating one Topic object for
each zone instead of aggregating zones on a single Topic instance.
The Adk applies publish, subscribe, and query functionality equally to all
zones joined to a topic. Thus, if the topic provides authoritative data to
its zones (that is, it is registered with the ZIS as a Provider), it will
do so for all zones by delegating incoming queries to the Publisher
registered with this topic. Similarly, the topic will send change events
to all of its zones when the publish method is called, and will
query all zones for data objects when the query method is
called. (An exception to this is directed queries, which require that the
caller specify a zone and agent name to direct the query.)
Consult the Adk Developer Guide for more information about working with
multiple zones.
| C# | Visual Basic | Visual C++ |
public interface ITopic
Public Interface ITopic
public interface class ITopic
| All Members | Methods | Properties | |||
| Icon | Member | Description |
|---|---|---|
| GetPublisher()() | Gets the Publisher registered with this topic | |
| GetQueryResultsObject()() | Gets the QueryResults object that is registered with this topic.
| |
| GetSubscriber()() | Gets the Subscriber registered with this topic | |
| GetZones()() | Gets all zones joined to this topic | |
| Join(IZone) | Joins a zone with this topic.
All SIF messaging performed on this topic will be propagated to all
zones joined with the topic. For example, calling the query
method queries all of the topic's zones, and SIF_Responses received by
each zone are first dispatched to the topic's QueryResults object.
| |
| ObjectType | Gets the name of the SIF Data Object associated with this topic | |
| PurgeQueue(Boolean, Boolean) | ||
| Query(Query) | Query the topic by sending a SIF_Request message to all zones joined
with the topic
| |
| Query(Query, IMessagingListener) | Query the topic by sending a SIF_Request message to all zones joined
with the topic. This form of the query method also notifies a
MessagingListener of any SIF_Request messaging that takes place.
| |
| Query(Query, AdkQueryOptions) | Query the topic by sending a SIF_Request message to all zones joined
with the topic
| |
| Query(Query, IMessagingListener, AdkQueryOptions) | Query the topic by sending a SIF_Request message to all zones joined
with the topic. This form of the query method also notifies a
MessagingListener of any SIF_Request activity that takes place.
| |
| Query(Query, String, AdkQueryOptions) | Query the topic by sending a SIF_Request message to all zones joined
with the topic
| |
| Query(Query, IMessagingListener, String, AdkQueryOptions) | Query the topic by sending a SIF_Request message to all zones joined
with the topic. This form of the query method also notifies
a MessagingListener of any SIF_Request messaging that takes place.
| |
| SetPublisher(IPublisher, ProvisioningFlags) | Register a Publisher message handler to process SIF_Request messages
received on the zones joined with this topic. The message handler will
be called whenever a SIF_Request is received for the SIF Data Object type
associated with the topic.
For Topics created to represent the SIF_ReportObject object type, register
a publisher message handler with the setReportPublisher
method instead.
| |
| SetQueryResults(IQueryResults) | Sets the QueryResults message handler registered with this topic.
This object will be called whenever a SIF_Response message is received
by one of the zones joined with this topic and the response contains
data associated with the topic. Note that SIF_Response messages are
dispatched to this handler only if the initial request was issued by
calling one of the Topic.query methods.
| |
| SetReportPublisher(IReportPublisher, ProvisioningFlags) | Register a ReportPublisher message handler to process SIF_Request messages
received for SIF_ReportObject objects from the zones joined with this topic.
ReportPublisher is implemented by Vertical Reporting applications that
publish report data via the SIF_ReportObject object (SIF 1.5 and later).
This method must be called instead of setPublisher for topics
created to represent the SIF_ReportObject data type.
| |
| SetSubscriber(ISubscriber, ProvisioningFlags) | Register a Subscriber message handler to process SIF_Event messages
received on the zones joined with this topic. The message handler will
be called whenever a SIF_Event is received for the SIF Data Object type
associated with the topic.
|