時間ベースのシミュレーションに SimPy を使用しています。
特定のイベントをリッスンし、イベントが発生したときにそのイベントのパラメーターを返す Messager プロセスがあります。
class Messager(Process):
def __init__(self):
Process.__init__(self,'messager')
def monitor(self):
while True:
yield waitevent, self, messageEvent
print messageEvent.signalparam
messager = Messager()
activate(messager,messager.monitor())
これはうまくいきます。ただし、実際には、メッセージャで処理する必要があるイベントが複数あるため、メッセージャがイベントのリストで原因となるイベントの signalparam を返すようにします。
messageEvents = [Event1,Event2,Event3]
class Messager(Process):
def __init__(self):
Process.__init__(self,'messager')
def monitor(self):
while True:
yield waitevent, self, messageEvents
.....
発生したイベントの signalparam にアクセスするにはどうすればよいですか?