UNPKG

@eclipse-emfcloud/modelserver-theia

Version:
50 lines 2.96 kB
/// <reference types="ws" /> /******************************************************************************** * Copyright (c) 2022 STMicroelectronics and others. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v. 2.0 which is available at * https://www.eclipse.org/legal/epl-2.0, or the MIT License which is * available at https://opensource.org/licenses/MIT. * * SPDX-License-Identifier: EPL-2.0 OR MIT *******************************************************************************/ import { ModelServerClientApiV1, ModelServerClientApiV2, SubscriptionListener, SubscriptionOptionsV2 } from '@eclipse-emfcloud/modelserver-client'; import { JsonRpcServer } from '@theia/core'; import WebSocket from 'isomorphic-ws'; import URI from 'urijs'; export declare const MODEL_SERVER_CLIENT_SERVICE_PATH = "/services/modelserverclient"; export declare const MODEL_SERVER_CLIENT_V2_SERVICE_PATH = "/services/modelserverclient/v2"; export declare const ModelServerFrontendClient: unique symbol; export interface ModelServerFrontendClient { onOpen(modeluri: URI, event: WebSocket.Event): void; onClose(modeluri: URI, event: WebSocket.CloseEvent): void; onError(modeluri: URI, event: WebSocket.ErrorEvent): void; onMessage(modeluri: URI, event: WebSocket.MessageEvent): void; } export declare const TheiaModelServerClient: unique symbol; export interface TheiaModelServerClient extends ModelServerClientApiV1, JsonRpcServer<ModelServerFrontendClient> { } export declare const TheiaModelServerClientV2: unique symbol; export interface TheiaModelServerClientV2 extends ModelServerClientApiV2, JsonRpcServer<ModelServerFrontendClient> { /** * Subscribe to model notifications. In the Theia context, the `listener` parameter is optional because * it defaults to the frontend client proxy. * * @param modeluri the URI of the model to which to subscribe * @param listener the subscription listener. If omitted, the front-end client is substituted. This lets the * client handle both Theia RPC events and the messages from the _Model Server_ * @param options optional subscription options, including message format, time-out, and message filtering */ subscribe(modeluri: URI, listener?: SubscriptionListener, options?: SubscriptionOptionsV2): SubscriptionListener; /** * Subscribe the frontend client of the remote `TheiaModelServerClientV2` service as * the `SubscriptionListener` handler for model notifications. This is * equivalent to passing `undefined` as the second argument to the {@link subscribe} method. * * @param modeluri the URI of the model to which to subscribe * @param options optional subscription options, including message format, time-out, and message filtering */ selfSubscribe(modeluri: URI, options?: SubscriptionOptionsV2): void; } //# sourceMappingURL=protocol.d.ts.map