1 line
8.6 KiB
Plaintext
Executable File
1 line
8.6 KiB
Plaintext
Executable File
{"version":3,"sources":["Connectors/IwcConnector.coffee"],"names":[],"mappings":"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","file":"Connectors/IwcConnector.js","sourceRoot":"/source/","sourcesContent":["\n#\n# @param {Function} callback The callback is called when the connector is initialized.\n# @param {String} initial_user_id Optional. You can set you own user_id (since the ids of duiclient are not always unique)\n#\ncreateIwcConnector = (callback, options)->\n userIwcHandler = null\n if options?\n {iwcHandler: userIwcHandler} = options\n\n iwcHandler = {}\n duiClient = new DUIClient()\n #@duiClient = new iwc.Client()\n duiClient.connect (intent)->\n iwcHandler[intent.action]?.map (f)->\n setTimeout ()->\n f intent\n , 0\n if userIwcHandler?\n userIwcHandler intent\n\n duiClient.initOK()\n\n received_HB = null\n\n #\n # The Iwc Connector adds support for the Inter-Widget-Communication protocol that is used in the Role-SDK.\n #\n # You must not use your own IWC client when using this connector!!\n #\n # @see http://dbis.rwth-aachen.de/cms/projects/the-xmpp-experience#interwidget-communication\n # @see http://dbis.rwth-aachen.de/cms/projects/ROLE\n #\n class IwcConnector\n\n #\n # @param {Engine} engine The transformation engine\n # @param {HistoryBuffer} HB\n # @param {Array<Function>} execution_listener You must ensure that whenever an operation is executed, every function in this Array is called.\n # @param {YattaFramework} yatta The Yatta framework.\n #\n constructor: (@engine, @HB, @execution_listener, @yatta)->\n @duiClient = duiClient\n @iwcHandler = iwcHandler\n\n send_ = (o)=>\n if Object.getOwnPropertyNames(@initialized).length isnt 0\n @send o\n @execution_listener.push send_\n\n @initialized = {}\n receiveHB = (json)=>\n HB = json.extras.HB\n him = json.extras.user\n this.engine.applyOpsCheckDouble HB\n @initialized[him] = true\n iwcHandler[\"Yatta_push_HB_element\"] = [receiveHB]\n\n @sendIwcIntent \"Yatta_get_HB_element\", @HB.getOperationCounter()\n\n receive_ = (intent)=>\n o = intent.extras\n if @initialized[o.uid.creator]? # initialize first\n @receive o\n\n @iwcHandler[\"Yatta_new_operation\"] = [receive_]\n\n if received_HB?\n @engine.applyOpsCheckDouble received_HB\n\n sendHistoryBuffer = (intent)=>\n state_vector = intent.extras\n console.log state_vector\n json =\n HB : @yatta.getHistoryBuffer()._encode(state_vector)\n user : @yatta.getUserId()\n @sendIwcIntent \"Yatta_push_HB_element\", json\n @iwcHandler[\"Yatta_get_HB_element\"] = [sendHistoryBuffer]\n\n #\n # Set your own IWC handler. It will be called after Yatta consumed the\n # data from the received intent.\n #\n setIwcHandler: (f)->\n userIwcHandler = f\n\n #\n # Helper for sending iwc intents.\n # @overload sendIwcIntent intent\n # @param {Object} intent The intent object.\n # @overload sendIwcIntent action_name, content\n # @param {String} action_name The name of the action that is going to be send.\n # @param {String} content The content that is atteched to the intent.\n #\n sendIwcIntent: (action_name, content)->\n intent = null\n if arguments.length >= 2\n [action_name, content] = arguments\n intent =\n action: action_name\n component: \"\"\n data: \"\"\n dataType: \"\"\n flags: [\"PUBLISH_GLOBAL\"]\n extras: content\n else\n intent = arguments[0]\n\n @duiClient.sendIntent(intent)\n\n #\n # @private\n # This function is called whenever an operation was executed.\n # @param {Operation} o The operation that was executed.\n #\n send: (o)->\n if o.uid.creator is @HB.getUserId() and (typeof o.uid.op_number isnt \"string\")\n @sendIwcIntent \"Yatta_new_operation\", o\n\n #\n # @private\n # This function is called whenever an operation was received from another peer.\n # @param {Operation} o The operation that was received.\n #\n receive: (o)->\n if o.uid.creator isnt @HB.getUserId()\n @engine.applyOp o\n\n\n init = ()->\n # proposed_user_id = duiClient.getIwcClient()._componentName #TODO: This is stupid! why can't i use this?\n proposed_user_id = Math.floor(Math.random()*1000000)\n callback IwcConnector, proposed_user_id\n\n setTimeout init, 5000\n\n undefined\n\n\nmodule.exports = createIwcConnector\nif window?\n if not window.Y?\n window.Y = {}\n window.Y.createIwcConnector = createIwcConnector\n\n"]} |