1 |
|
2 | import reduct = require('reduct');
|
3 | import Config from './config';
|
4 | import Accounts from './accounts';
|
5 | import Core from './core';
|
6 | import Stats from './stats';
|
7 | import { Middleware, MiddlewareDefinition } from '../types/middleware';
|
8 | import { PluginInstance } from '../types/plugin';
|
9 | export default class MiddlewareManager {
|
10 | protected config: Config;
|
11 | protected accounts: Accounts;
|
12 | protected core: Core;
|
13 | protected middlewares: {
|
14 | [key: string]: Middleware;
|
15 | };
|
16 | protected stats: Stats;
|
17 | private startupHandlers;
|
18 | private teardownHandlers;
|
19 | private outgoingDataHandlers;
|
20 | private outgoingMoneyHandlers;
|
21 | private started;
|
22 | constructor(deps: reduct.Injector);
|
23 | construct(name: string, definition: MiddlewareDefinition): Middleware;
|
24 | setup(): Promise<void>;
|
25 | startup(): Promise<void>;
|
26 | addPlugin(accountId: string, plugin: PluginInstance): Promise<void>;
|
27 | removePlugin(accountId: string, plugin: PluginInstance): Promise<void>;
|
28 | sendData(data: Buffer, accountId: string): Promise<Buffer>;
|
29 | sendMoney(amount: string, accountId: string): Promise<void>;
|
30 | getMiddleware(name: string): Middleware | undefined;
|
31 | private createHandler;
|
32 | }
|