finish lifecycle conditions handling and add flapper condition
[god.git] / lib / god / trigger.rb
blob580613ccb21599127a8b9c8ac014c9a039624680
1 module God
2   
3   class Trigger
4     
5     class << self
6       attr_accessor :triggers
7     end
8     
9     @triggers = []
10     @mutex = Mutex.new
11     
12     def self.register(condition)
13       @mutex.synchronize do
14         self.triggers << condition
15       end
16     end
17     
18     def self.deregister(condition)
19       @mutex.synchronize do
20         self.triggers.delete(condition)
21       end
22     end
23     
24     def self.broadcast(message, payload)
25       @mutex.synchronize do
26         self.triggers.each do |t|
27           t.process(message, payload)
28         end
29       end
30     end
31     
32   end
33   
34 end