@omnia/fx
Version:
Provide Omnia Fx typings and tooling for clientside Omnia development.
38 lines (37 loc) • 1.49 kB
TypeScript
import { BroadcastTopic, BroadcastInvokeTopic, Future } from "../models";
/**
*Broadcast between render, worker thread and windows, tabs
* @class MessageBus
*/
export declare class Broadcast {
private static _subscribers;
private static _channel;
private static _initialized;
private static _disableSync;
private static _invokeRequests;
private static _invokeHandlers;
/**
* Broadcasts a message on the topic
*/
static publish<TMessage>(topic: BroadcastTopic<TMessage>, message: TMessage): void;
static invoke<TMessage, TReturnValue>(topic: BroadcastInvokeTopic<TMessage, TReturnValue>, data: TMessage): Future<TReturnValue>;
static invokeHandler<TMessage, TReturnValue>(topic: BroadcastInvokeTopic<TMessage, TReturnValue>, fn: (message: TMessage, messageId?: string) => Future<TReturnValue>): void;
/**
* Subscribes to the specified Topic and triggers function when a message is published
*/
static subscribe<TMessage>(topic: BroadcastTopic<TMessage>, fn: (message: TMessage) => void): void;
/**
* Unsubscribes from the specified Topic
*/
static unsubscribe<TMessage>(topic: BroadcastTopic<TMessage>, fn: (message: TMessage) => void): void;
/**
* Creates a topic if it dosent exists
* @param topic
* @param settings
* @returns true/false created
*/
private static ensureTopic;
private static ensureInitialized;
private static onMessage;
private static get channel();
}