summaryrefslogtreecommitdiff
path: root/examples/resources/lib/pubsub.lua
diff options
context:
space:
mode:
Diffstat (limited to 'examples/resources/lib/pubsub.lua')
-rw-r--r--examples/resources/lib/pubsub.lua24
1 files changed, 18 insertions, 6 deletions
diff --git a/examples/resources/lib/pubsub.lua b/examples/resources/lib/pubsub.lua
index 2847d92..47d9a63 100644
--- a/examples/resources/lib/pubsub.lua
+++ b/examples/resources/lib/pubsub.lua
@@ -13,21 +13,33 @@ function PubSub:add( name )
self.signals[ name ] = {}
end
+function PubSub:remove( name )
+ if self.signals[ name ] ~= nil then
+ table.remove( self.signals, name )
+ end
+end
+
function PubSub:subscribe( name, func )
- table.insert( self.signals[ name ], func )
+ if self.signals[ name ] ~= nil then
+ table.insert( self.signals[ name ], func )
+ end
end
function PubSub:unSubscribe( name, uFunc )
- for i, func in ipairs( self.signals[ name ] ) do
- if func == uFunc then
- table.remove( self.signals[ name ], i )
+ if self.signals[ name ] ~= nil then
+ for i, func in ipairs( self.signals[ name ] ) do
+ if func == uFunc then
+ table.remove( self.signals[ name ], i )
+ end
end
end
end
function PubSub:publish( name, ... )
- for _, func in ipairs( self.signals[ name ] ) do
- func( ... )
+ if self.signals[ name ] ~= nil then
+ for _, func in ipairs( self.signals[ name ] ) do
+ func( ... )
+ end
end
end