metaapi.cloud-sdk
Version:
SDK for MetaApi, a professional cloud forex API which includes MetaTrader REST API and MetaTrader websocket API. Supports both MetaTrader 5 (MT5) and MetaTrader 4 (MT4). CopyFactory copy trading API included. (https://metaapi.cloud)
77 lines (66 loc) • 2.92 kB
TypeScript
import MetaApiWebsocketClient from "../clients/metaApi/metaApiWebsocket.client";
import ClientApiClient from "../clients/metaApi/clientApi.client";
import HistoryStorage from "./historyStorage";
import MetatraderAccount from "./metatraderAccount";
import StreamingMetaApiConnection from "./streamingMetaApiConnection";
import RpcMetaApiConnection from "./rpcMetaApiConnection";
import {MetaApiOpts} from './metaApi';
/**
* Manages account connections
*/
export default class ConnectionRegistry {
/**
* Constructs a MetaTrader connection registry instance
* @param {MetaApiOpts} options metaapi options
* @param {MetaApiWebsocketClient} metaApiWebsocketClient MetaApi websocket client
* @param {ClientApiClient} clientApiClient client API client
* @param {string} application application id
* @param {string} refreshSubscriptionsOpts subscriptions refresh options
*/
constructor(options: MetaApiOpts, metaApiWebsocketClient: MetaApiWebsocketClient, clientApiClient: ClientApiClient,
application: string, refreshSubscriptionsOpts: string);
/**
* Creates and returns a new account streaming connection if doesnt exist, otherwise returns old
* @param {MetatraderAccount} account MetaTrader account id to connect to
* @param {HistoryStorage} historyStorage terminal history storage
* @param {Date} [historyStartTime] history start time
* @return {StreamingMetaApiConnection} streaming metaapi connection
*/
connectStreaming(account: MetatraderAccount, historyStorage: HistoryStorage, historyStartTime?: Date): StreamingMetaApiConnection;
/**
* Removes a streaming connection from registry
* @param {MetatraderAccount} account MetaTrader account to remove from registry
*/
removeStreaming(account: MetatraderAccount): void;
/**
* Creates and returns a new account rpc connection if doesnt exist, otherwise returns old
* @param {MetatraderAccount} account MetaTrader account id to connect to
* @returns {RpcMetaApiConnection} rpc metaapi connection
*/
connectRpc(account: MetatraderAccount): RpcMetaApiConnection;
/**
* Removes an RPC connection from registry
* @param {MetatraderAccount} account MetaTrader account to remove from registry
*/
removeRpc(account: MetatraderAccount): void;
/**
* Returns application type
* @return {string} application type
*/
get application(): string;
/**
* Returns the dictionary of streaming connections
* @returns {{[id: string]: StreamingMetaApiConnection}}
*/
get streamingConnections(): {[id: string]: StreamingMetaApiConnection};
/**
* Returns the dictionary of rpc connections
* @returns {{[id: string]: RpcMetaApiConnection}}
*/
get rpcConnections(): {[id: string]: RpcMetaApiConnection};
/**
* Closes all connection instances for an account
* @param {string} accountId
*/
closeAllInstances(accountId: string): void;
}