/usr/lib/ruby/1.9.1/mhc-signal.rb is in mhc-utils 0.25.1+20130926-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | # -*- coding: utf-8 -*-
### mhc-signal.rb
##
## Author: Yoshinari Nomura <nom@quickhack.net>
##
## Created: 1999/07/16
## Revised: $Date: 2001/03/13 07:01:25 $
##
################################################################
################# common staff #################################
################################################################
################################################################
## message couduit
class SignalConduit
def initialize
@proc_table = {}
@sd = 0
end
def signal_emit(sig, *arg)
return 0 if @proc_table[sig] .nil?
@proc_table[sig] .keys .sort .each{|k|
@proc_table[sig][k] .call(*arg)
}
end
def signal_connect(sig, &p)
@sd += 1
@proc_table[sig] = {} if @proc_table[sig] .nil?
@proc_table[sig][@sd] = p
return @sd
end
def signal_disconnect(sd)
@proc_table .each_key{|sig|
# @proc_table[sig][sd] = nil
@proc_table[sig] .delete(sd)
}
end
def dump
@proc_table .each_key{|sig|
print "(#{self}) #{sig} -> " # if $DEBUG
@proc_table[sig] .each_key{|sd|
print @proc_table[sig][sd], " "
}
print "\n" # if $DEBUG
}
end
end
################################################################
## message couduit with alarm
class Alarm < SignalConduit
def initialize
super
@now = Time .now .localtime
@th = Thread .new {
while true
tick
sleep 3
end
}
@th .abort_on_exception= true
end
def tick
now = Time .now .localtime
if (now != @now)
signal_emit('sec-changed')
end
if (now .day != @now .day)
signal_emit('day-changed')
end
if (now .min != @now .min)
signal_emit('min-changed')
end
if (now .month != @now .month)
signal_emit('month-changed')
end
@now = now
end
end
### Copyright Notice:
## Copyright (C) 1999, 2000 Yoshinari Nomura. All rights reserved.
## Copyright (C) 2000 MHC developing team. All rights reserved.
## Redistribution and use in source and binary forms, with or without
## modification, are permitted provided that the following conditions
## are met:
##
## 1. Redistributions of source code must retain the above copyright
## notice, this list of conditions and the following disclaimer.
## 2. Redistributions in binary form must reproduce the above copyright
## notice, this list of conditions and the following disclaimer in the
## documentation and/or other materials provided with the distribution.
## 3. Neither the name of the team nor the names of its contributors
## may be used to endorse or promote products derived from this software
## without specific prior written permission.
##
## THIS SOFTWARE IS PROVIDED BY THE TEAM AND CONTRIBUTORS ``AS IS''
## AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
## LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
## FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
## THE TEAM OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
## INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
## (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
## SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
## HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
## STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
## ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
## OF THE POSSIBILITY OF SUCH DAMAGE.
### mhc-signal.rb ends here
|