@eclipse-ditto/ditto-javascript-client-dom
Version:
DOM implementation of Eclipse Ditto JavaScript API to be used in browsers.
77 lines • 4.13 kB
TypeScript
/*!
* Copyright (c) 2019 Contributors to the Eclipse Foundation
*
* See the NOTICE file(s) distributed with this work for additional
* information regarding copyright ownership.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*/
import { WebSocketThingsHandle } from './handles/things.interfaces';
import { FeaturesHandle } from './handles/features.interfaces';
import { EventsHandle } from './handles/events';
import { WebSocketMessagesHandle } from './handles/messages-websocket';
import { CommandsHandle } from './handles/commands';
import { WebSocketRequestSenderFactory } from './request-factory/websocket-request-sender';
import { WebSocketRequestHandler } from './request-factory/websocket-request-handler';
import { AbstractDittoClient, DittoClient, DittoClientHandles } from './ditto-client';
import { CustomBuilderContext } from './builder-steps';
export interface DittoWebSocketClient extends DittoClient<WebSocketThingsHandle, FeaturesHandle> {
/**
* Builds a handle to subscribe to Events.
*
* @return an EventsHandle.
*/
getEventsHandle(customBuildContext?: CustomBuilderContext): EventsHandle;
/**
* Close underlying websocket
*/
close(code?: number, data?: string): void;
}
export interface DittoWebSocketClientHandles extends DittoClientHandles<WebSocketRequestSenderFactory> {
thingsHandle?: (requestSender: WebSocketRequestSenderFactory, customBuildContext?: CustomBuilderContext) => WebSocketThingsHandle;
eventsHandle?: (requestSender: WebSocketRequestSenderFactory, requestHandler: WebSocketRequestHandler, customBuildContext?: CustomBuilderContext) => EventsHandle;
}
export interface DittoWebSocketTwinClient extends DittoWebSocketClient {
}
export interface DittoWebSocketLiveClient extends DittoWebSocketClient {
/**
* Builds a handle to handle Messages requests and subscriptions.
*
* @return a WebSocketMessagesHandle.
*/
getMessagesHandle(customBuildContext?: CustomBuilderContext): WebSocketMessagesHandle;
/**
* Builds a handle to subscribe to Commands.
*
* @return a CommandsHandle.
*/
getCommandsHandle(customBuildContext?: CustomBuilderContext): CommandsHandle;
}
export interface DittoWebSocketLiveClientHandles extends DittoWebSocketClientHandles {
messagesHandle?: (requestSenderFactory: WebSocketRequestSenderFactory, requestHandler: WebSocketRequestHandler, customBuildContext?: CustomBuilderContext) => WebSocketMessagesHandle;
commandsHandle?: (requestSenderFactory: WebSocketRequestSenderFactory, requestHandler: WebSocketRequestHandler, customBuildContext?: CustomBuilderContext) => CommandsHandle;
}
export type AllDittoWebSocketHandles = DittoWebSocketLiveClientHandles;
export declare class DefaultDittoWebSocketClient extends AbstractDittoClient<WebSocketRequestSenderFactory, AllDittoWebSocketHandles> implements DittoWebSocketClient, DittoWebSocketLiveClient {
private readonly responseHandler;
private constructor();
/**
* Returns an instance of DittoClient based on the context provided.
*
* @param requestSenderFactory - The request sender factory to use.
* @param requester - The requester to use.
* @param customHandles - custom handles to use with the client.
* @return the DittoClient instance.
*/
static getInstance(requestSenderFactory: WebSocketRequestSenderFactory, requester: WebSocketRequestHandler, customHandles?: DittoWebSocketLiveClientHandles): DefaultDittoWebSocketClient;
getThingsHandle(customBuildContext?: CustomBuilderContext): WebSocketThingsHandle;
getEventsHandle(customBuildContext?: CustomBuilderContext): EventsHandle;
getMessagesHandle(customBuildContext?: CustomBuilderContext): WebSocketMessagesHandle;
getCommandsHandle(customBuildContext?: CustomBuilderContext): CommandsHandle;
close(code?: number, data?: string): void;
}
//# sourceMappingURL=ditto-client-websocket.d.ts.map