Index: frog/lib/node/cluster.dart |
=================================================================== |
--- frog/lib/node/cluster.dart (revision 0) |
+++ frog/lib/node/cluster.dart (revision 0) |
@@ -0,0 +1,43 @@ |
+// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file |
+// for details. All rights reserved. Use of this source code is governed by a |
+// BSD-style license that can be found in the LICENSE file. |
+ |
+#library('cluster'); |
+#import('node.dart'); |
+ |
+// module cluster |
+ |
+/** |
+ * Note: cluster.fork will fail when run from frogsh. It will succeed |
+ * when dart code is compiled to JavaScript, and the resulting |
+ * JavaScript is run from node.js. |
Jennifer Messerly
2012/01/21 01:00:31
nice comment. I think this is an issue with our pa
|
+ */ |
+ |
+typedef void ClusterDeathListener(ChildProcess cp); |
+ |
+class cluster native "require('cluster')" { |
+ static void fork() native; |
+ static bool isMaster; |
+ static bool isWorker; |
+ |
+ // EventEmitter |
+ static void removeAllListeners(String event) native; |
+ static void setMaxListeners(num n) native; |
+ var _listeners(String key) |
+ native "return this.listeners(key);"; |
+ |
+ // Death event |
+ static void emitDeath(ChildProcess cp) |
+ native "this.emit('death', cp);"; |
+ static void addListenerDeath(ClusterDeathListener listener) |
+ native "this.addListener('death', listener);"; |
+ static void onDeath(ClusterDeathListener listener) |
+ native "this.on('death', listener);"; |
+ static void onceDeath(ClusterDeathListener listener) |
+ native "this.once('death', listener);"; |
+ static void removeListenerDeath(ClusterDeathListener listener) |
+ native "this.removeListener('death', listener);"; |
+ static List<ClusterDeathListener> listenersDeath() |
+ => new _NativeListPrimitiveElement<ClusterDeathListener>(_listeners( |
+ 'death')); |
+} |