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)
39 lines (34 loc) • 1.12 kB
text/typescript
import {Constructor} from '../../../../types/util';
import type AsyncProcess from '../abstract/asyncProcess';
import AsyncProcessPool from '../abstract/asyncProcessPool';
import type RootProcess from './rootProcess';
import RootProcessContext from './rootProcessContext';
/**
* @inheritdoc
*/
class RootProcessPool<
Process extends RootProcess
> extends AsyncProcessPool<MapProcessProvider<Process>, Process> {
/**
* Constructs instance
* @param constructor process constructor
* @param options additional options
*/
constructor(constructor: Constructor<Process>, options: AsyncProcessPool.Options<Process>) {
super((poolContext, args) => {
let context = new RootProcessContext(poolContext);
return {
context,
args,
process: new constructor(context)
} as AsyncProcessPool.ConstructedProcess<any>;
}, options);
}
}
export default RootProcessPool;
type MapProcessProvider<
Process extends RootProcess
> = (
context: AsyncProcessPool.Context,
args: [...args: AsyncProcess.Arguments<Process>]
) => AsyncProcessPool.ConstructedProcess<Process>;