Module m.listener

Listener implementation where listeners are added as either urls or functions and notified when any or specific messages are received

Usage:

    -- a.script
    local listener = require "ludobits.m.listener"
    
    local l = listener.create()
    
    local function handler1(message_id, message)
    	print(message_id)
    end
    
    local function handler2(message_id, message)
    	print(message_id)
    end
    
    -- add listener function handler1 and listen to all messages
    l.add(handler1)
    -- add listener function handler2 and only listen to "mymessage1" and "mymessage2"
    l.add(handler2, "mymessage1")
    l.add(handler2, "mymessage2")
    
    -- add listener url "#myscript1" and listen to all messages
    l.add(msg.url("#myscript1"))
    -- add listener url "#myscript2" and only listen to "mymessage1" and "mymessage2"
    l.add(msg.url("#myscript2"), "mymessage1")
    l.add(msg.url("#myscript2"), "mymessage2")
    
    
    -- trigger some messages
    l.trigger(hash("mymessage1"), { text = "lorem ipsum" })
    l.trigger(hash("mymessage2"), { text = "lorem ipsum" })
    l.trigger(hash("mymessage3"), { text = "lorem ipsum" })
    l.trigger(hash("foobar"), { foo = "bar" })
    
    
    -- myscript1.script
    function on_message(self, mesage_id, message, sender)
    	print(message_id)
    end
    
    -- myscript2.script
    function on_message(self, mesage_id, message, sender)
    	print(message_id)
    end
    

Functions

create () Create a listener instance
instance.add (url_or_fn_to_add, message_id) Add a function or url to invoke when the listener is triggered
instance.remove (url_or_fn_to_remove, message_id) Remove a previously added callback function or url
instance.trigger (message_id, message) Trigger this listener


Functions

create ()
Create a listener instance

Returns:

    Listener
instance.add (url_or_fn_to_add, message_id)
Add a function or url to invoke when the listener is triggered

Parameters:

  • url_or_fn_to_add URL or function to call. Can be nil in which case the current URL is used.
  • message_id Optional message id to filter on
instance.remove (url_or_fn_to_remove, message_id)
Remove a previously added callback function or url

Parameters:

  • url_or_fn_to_remove
  • message_id Optional message_id to limit removal to
instance.trigger (message_id, message)
Trigger this listener

Parameters:

  • message_id Id of message to trigger
  • message The message itself (can be nil)
generated by LDoc 1.4.6 Last updated 2017-11-27 06:48:33