Projekt

Obecné

Profil

Stáhnout (15.8 KB) Statistiky
| Větev: | Revize:
1
declare module "cluster" {
2
    import * as child from "child_process";
3
    import * as events from "events";
4
    import * as net from "net";
5

    
6
    // interfaces
7
    interface ClusterSettings {
8
        execArgv?: string[]; // default: process.execArgv
9
        exec?: string;
10
        args?: string[];
11
        silent?: boolean;
12
        stdio?: any[];
13
        uid?: number;
14
        gid?: number;
15
        inspectPort?: number | (() => number);
16
    }
17

    
18
    interface Address {
19
        address: string;
20
        port: number;
21
        addressType: number | "udp4" | "udp6";  // 4, 6, -1, "udp4", "udp6"
22
    }
23

    
24
    class Worker extends events.EventEmitter {
25
        id: number;
26
        process: child.ChildProcess;
27
        send(message: child.Serializable, sendHandle?: child.SendHandle, callback?: (error: Error | null) => void): boolean;
28
        kill(signal?: string): void;
29
        destroy(signal?: string): void;
30
        disconnect(): void;
31
        isConnected(): boolean;
32
        isDead(): boolean;
33
        exitedAfterDisconnect: boolean;
34

    
35
        /**
36
         * events.EventEmitter
37
         *   1. disconnect
38
         *   2. error
39
         *   3. exit
40
         *   4. listening
41
         *   5. message
42
         *   6. online
43
         */
44
        addListener(event: string, listener: (...args: any[]) => void): this;
45
        addListener(event: "disconnect", listener: () => void): this;
46
        addListener(event: "error", listener: (error: Error) => void): this;
47
        addListener(event: "exit", listener: (code: number, signal: string) => void): this;
48
        addListener(event: "listening", listener: (address: Address) => void): this;
49
        addListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this;  // the handle is a net.Socket or net.Server object, or undefined.
50
        addListener(event: "online", listener: () => void): this;
51

    
52
        emit(event: string | symbol, ...args: any[]): boolean;
53
        emit(event: "disconnect"): boolean;
54
        emit(event: "error", error: Error): boolean;
55
        emit(event: "exit", code: number, signal: string): boolean;
56
        emit(event: "listening", address: Address): boolean;
57
        emit(event: "message", message: any, handle: net.Socket | net.Server): boolean;
58
        emit(event: "online"): boolean;
59

    
60
        on(event: string, listener: (...args: any[]) => void): this;
61
        on(event: "disconnect", listener: () => void): this;
62
        on(event: "error", listener: (error: Error) => void): this;
63
        on(event: "exit", listener: (code: number, signal: string) => void): this;
64
        on(event: "listening", listener: (address: Address) => void): this;
65
        on(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this;  // the handle is a net.Socket or net.Server object, or undefined.
66
        on(event: "online", listener: () => void): this;
67

    
68
        once(event: string, listener: (...args: any[]) => void): this;
69
        once(event: "disconnect", listener: () => void): this;
70
        once(event: "error", listener: (error: Error) => void): this;
71
        once(event: "exit", listener: (code: number, signal: string) => void): this;
72
        once(event: "listening", listener: (address: Address) => void): this;
73
        once(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this;  // the handle is a net.Socket or net.Server object, or undefined.
74
        once(event: "online", listener: () => void): this;
75

    
76
        prependListener(event: string, listener: (...args: any[]) => void): this;
77
        prependListener(event: "disconnect", listener: () => void): this;
78
        prependListener(event: "error", listener: (error: Error) => void): this;
79
        prependListener(event: "exit", listener: (code: number, signal: string) => void): this;
80
        prependListener(event: "listening", listener: (address: Address) => void): this;
81
        prependListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this;  // the handle is a net.Socket or net.Server object, or undefined.
82
        prependListener(event: "online", listener: () => void): this;
83

    
84
        prependOnceListener(event: string, listener: (...args: any[]) => void): this;
85
        prependOnceListener(event: "disconnect", listener: () => void): this;
86
        prependOnceListener(event: "error", listener: (error: Error) => void): this;
87
        prependOnceListener(event: "exit", listener: (code: number, signal: string) => void): this;
88
        prependOnceListener(event: "listening", listener: (address: Address) => void): this;
89
        prependOnceListener(event: "message", listener: (message: any, handle: net.Socket | net.Server) => void): this;  // the handle is a net.Socket or net.Server object, or undefined.
90
        prependOnceListener(event: "online", listener: () => void): this;
91
    }
92

    
93
    interface Cluster extends events.EventEmitter {
94
        Worker: Worker;
95
        disconnect(callback?: () => void): void;
96
        fork(env?: any): Worker;
97
        isMaster: boolean;
98
        isWorker: boolean;
99
        schedulingPolicy: number;
100
        settings: ClusterSettings;
101
        setupMaster(settings?: ClusterSettings): void;
102
        worker?: Worker;
103
        workers?: {
104
            [index: string]: Worker | undefined
105
        };
106

    
107
        readonly SCHED_NONE: number;
108
        readonly SCHED_RR: number;
109

    
110
        /**
111
         * events.EventEmitter
112
         *   1. disconnect
113
         *   2. exit
114
         *   3. fork
115
         *   4. listening
116
         *   5. message
117
         *   6. online
118
         *   7. setup
119
         */
120
        addListener(event: string, listener: (...args: any[]) => void): this;
121
        addListener(event: "disconnect", listener: (worker: Worker) => void): this;
122
        addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
123
        addListener(event: "fork", listener: (worker: Worker) => void): this;
124
        addListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
125
        addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;  // the handle is a net.Socket or net.Server object, or undefined.
126
        addListener(event: "online", listener: (worker: Worker) => void): this;
127
        addListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
128

    
129
        emit(event: string | symbol, ...args: any[]): boolean;
130
        emit(event: "disconnect", worker: Worker): boolean;
131
        emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
132
        emit(event: "fork", worker: Worker): boolean;
133
        emit(event: "listening", worker: Worker, address: Address): boolean;
134
        emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
135
        emit(event: "online", worker: Worker): boolean;
136
        emit(event: "setup", settings: ClusterSettings): boolean;
137

    
138
        on(event: string, listener: (...args: any[]) => void): this;
139
        on(event: "disconnect", listener: (worker: Worker) => void): this;
140
        on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
141
        on(event: "fork", listener: (worker: Worker) => void): this;
142
        on(event: "listening", listener: (worker: Worker, address: Address) => void): this;
143
        on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;  // the handle is a net.Socket or net.Server object, or undefined.
144
        on(event: "online", listener: (worker: Worker) => void): this;
145
        on(event: "setup", listener: (settings: ClusterSettings) => void): this;
146

    
147
        once(event: string, listener: (...args: any[]) => void): this;
148
        once(event: "disconnect", listener: (worker: Worker) => void): this;
149
        once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
150
        once(event: "fork", listener: (worker: Worker) => void): this;
151
        once(event: "listening", listener: (worker: Worker, address: Address) => void): this;
152
        once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;  // the handle is a net.Socket or net.Server object, or undefined.
153
        once(event: "online", listener: (worker: Worker) => void): this;
154
        once(event: "setup", listener: (settings: ClusterSettings) => void): this;
155

    
156
        prependListener(event: string, listener: (...args: any[]) => void): this;
157
        prependListener(event: "disconnect", listener: (worker: Worker) => void): this;
158
        prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
159
        prependListener(event: "fork", listener: (worker: Worker) => void): this;
160
        prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
161
        prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;  // the handle is a net.Socket or net.Server object, or undefined.
162
        prependListener(event: "online", listener: (worker: Worker) => void): this;
163
        prependListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
164

    
165
        prependOnceListener(event: string, listener: (...args: any[]) => void): this;
166
        prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): this;
167
        prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): this;
168
        prependOnceListener(event: "fork", listener: (worker: Worker) => void): this;
169
        prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): this;
170
        // the handle is a net.Socket or net.Server object, or undefined.
171
        prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): this;
172
        prependOnceListener(event: "online", listener: (worker: Worker) => void): this;
173
        prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): this;
174
    }
175

    
176
    const SCHED_NONE: number;
177
    const SCHED_RR: number;
178

    
179
    function disconnect(callback?: () => void): void;
180
    function fork(env?: any): Worker;
181
    const isMaster: boolean;
182
    const isWorker: boolean;
183
    let schedulingPolicy: number;
184
    const settings: ClusterSettings;
185
    function setupMaster(settings?: ClusterSettings): void;
186
    const worker: Worker;
187
    const workers: {
188
        [index: string]: Worker | undefined
189
    };
190

    
191
    /**
192
     * events.EventEmitter
193
     *   1. disconnect
194
     *   2. exit
195
     *   3. fork
196
     *   4. listening
197
     *   5. message
198
     *   6. online
199
     *   7. setup
200
     */
201
    function addListener(event: string, listener: (...args: any[]) => void): Cluster;
202
    function addListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
203
    function addListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
204
    function addListener(event: "fork", listener: (worker: Worker) => void): Cluster;
205
    function addListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
206
     // the handle is a net.Socket or net.Server object, or undefined.
207
    function addListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;
208
    function addListener(event: "online", listener: (worker: Worker) => void): Cluster;
209
    function addListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
210

    
211
    function emit(event: string | symbol, ...args: any[]): boolean;
212
    function emit(event: "disconnect", worker: Worker): boolean;
213
    function emit(event: "exit", worker: Worker, code: number, signal: string): boolean;
214
    function emit(event: "fork", worker: Worker): boolean;
215
    function emit(event: "listening", worker: Worker, address: Address): boolean;
216
    function emit(event: "message", worker: Worker, message: any, handle: net.Socket | net.Server): boolean;
217
    function emit(event: "online", worker: Worker): boolean;
218
    function emit(event: "setup", settings: ClusterSettings): boolean;
219

    
220
    function on(event: string, listener: (...args: any[]) => void): Cluster;
221
    function on(event: "disconnect", listener: (worker: Worker) => void): Cluster;
222
    function on(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
223
    function on(event: "fork", listener: (worker: Worker) => void): Cluster;
224
    function on(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
225
    function on(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;  // the handle is a net.Socket or net.Server object, or undefined.
226
    function on(event: "online", listener: (worker: Worker) => void): Cluster;
227
    function on(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
228

    
229
    function once(event: string, listener: (...args: any[]) => void): Cluster;
230
    function once(event: "disconnect", listener: (worker: Worker) => void): Cluster;
231
    function once(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
232
    function once(event: "fork", listener: (worker: Worker) => void): Cluster;
233
    function once(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
234
    function once(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;  // the handle is a net.Socket or net.Server object, or undefined.
235
    function once(event: "online", listener: (worker: Worker) => void): Cluster;
236
    function once(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
237

    
238
    function removeListener(event: string, listener: (...args: any[]) => void): Cluster;
239
    function removeAllListeners(event?: string): Cluster;
240
    function setMaxListeners(n: number): Cluster;
241
    function getMaxListeners(): number;
242
    function listeners(event: string): Function[];
243
    function listenerCount(type: string): number;
244

    
245
    function prependListener(event: string, listener: (...args: any[]) => void): Cluster;
246
    function prependListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
247
    function prependListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
248
    function prependListener(event: "fork", listener: (worker: Worker) => void): Cluster;
249
    function prependListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
250
     // the handle is a net.Socket or net.Server object, or undefined.
251
    function prependListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;
252
    function prependListener(event: "online", listener: (worker: Worker) => void): Cluster;
253
    function prependListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
254

    
255
    function prependOnceListener(event: string, listener: (...args: any[]) => void): Cluster;
256
    function prependOnceListener(event: "disconnect", listener: (worker: Worker) => void): Cluster;
257
    function prependOnceListener(event: "exit", listener: (worker: Worker, code: number, signal: string) => void): Cluster;
258
    function prependOnceListener(event: "fork", listener: (worker: Worker) => void): Cluster;
259
    function prependOnceListener(event: "listening", listener: (worker: Worker, address: Address) => void): Cluster;
260
     // the handle is a net.Socket or net.Server object, or undefined.
261
    function prependOnceListener(event: "message", listener: (worker: Worker, message: any, handle: net.Socket | net.Server) => void): Cluster;
262
    function prependOnceListener(event: "online", listener: (worker: Worker) => void): Cluster;
263
    function prependOnceListener(event: "setup", listener: (settings: ClusterSettings) => void): Cluster;
264

    
265
    function eventNames(): string[];
266
}
(8-8/45)