Add simple PubSub code adapted from jQuery manual.
authorMike Taylor <mike@indexdata.com>
Thu, 27 Feb 2014 15:23:56 +0000 (15:23 +0000)
committerMike Taylor <mike@indexdata.com>
Thu, 27 Feb 2014 15:23:56 +0000 (15:23 +0000)
tools/htdocs/mkws.js

index abf8c0a..72ca3f3 100644 (file)
@@ -142,6 +142,29 @@ var mkws = {
 };
 
 
+// The following PubSub code is modified from the jQuery manual:
+// https://api.jquery.com/jQuery.Callbacks/
+//
+// Use as:
+//     mkws.queue("eventName").subscribe(function(param1, param2 ...) { ... });
+//     mkws.queue("eventName").publish(arg1, arg2, ...);
+
+(function() {
+  var queues = {};
+  mkws.queue = function(id) {
+    if (!queues[id]) {
+      var callbacks = $.Callbacks();
+      queues[id] = {
+       publish: callbacks.fire,
+       subscribe: callbacks.add,
+       unsubscribe: callbacks.remove
+      };
+    }
+    return queues[id];
+  }
+}());
+
+
 // Define empty mkws_config for simple applications that don't define it.
 if (mkws_config == null || typeof mkws_config != 'object') {
     var mkws_config = {};