62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
// Copyright 2014 The Closure Library Authors. All Rights Reserved.
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS-IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
goog.provide('goog.pubsub.TopicId');
|
|
|
|
|
|
|
|
/**
|
|
* A templated class that is used to register {@code goog.pubsub.PubSub}
|
|
* subscribers.
|
|
*
|
|
* Typical usage for a publisher:
|
|
* <code>
|
|
* /** @type {!goog.pubsub.TopicId<!zorg.State>}
|
|
* zorg.TopicId.STATE_CHANGE = new goog.pubsub.TopicId(
|
|
* goog.events.getUniqueId('state-change'));
|
|
*
|
|
* // Compiler enforces that these types are correct.
|
|
* pubSub.publish(zorg.TopicId.STATE_CHANGE, zorg.State.STARTED);
|
|
* </code>
|
|
*
|
|
* Typical usage for a subscriber:
|
|
* <code>
|
|
* // Compiler enforces the callback parameter type.
|
|
* pubSub.subscribe(zorg.TopicId.STATE_CHANGE, function(state) {
|
|
* if (state == zorg.State.STARTED) {
|
|
* // Handle STARTED state.
|
|
* }
|
|
* });
|
|
* </code>
|
|
*
|
|
* @param {string} topicId
|
|
* @template PAYLOAD
|
|
* @constructor
|
|
* @final
|
|
* @struct
|
|
*/
|
|
goog.pubsub.TopicId = function(topicId) {
|
|
/**
|
|
* @const
|
|
* @private
|
|
*/
|
|
this.topicId_ = topicId;
|
|
};
|
|
|
|
|
|
/** @override */
|
|
goog.pubsub.TopicId.prototype.toString = function() {
|
|
return this.topicId_;
|
|
};
|