2021-08-19 19:50:21 +00:00
|
|
|
from .schema import dataspace
|
2021-08-19 20:08:53 +00:00
|
|
|
from .during import During
|
2021-12-25 21:59:21 +00:00
|
|
|
from . import turn
|
2021-08-19 19:50:21 +00:00
|
|
|
|
|
|
|
# decorator
|
2021-12-25 21:59:21 +00:00
|
|
|
def observe(ds, pattern):
|
2021-08-19 19:50:21 +00:00
|
|
|
def publish_observer(entity):
|
|
|
|
turn.publish(ds, dataspace.Observe(pattern, turn.ref(entity)))
|
|
|
|
return entity
|
|
|
|
return publish_observer
|
2021-08-19 20:08:53 +00:00
|
|
|
|
|
|
|
# decorator
|
2021-12-25 21:59:21 +00:00
|
|
|
def on_message(ds, pattern, *args, **kwargs):
|
|
|
|
return lambda on_msg: observe(ds, pattern)(During(*args, **kwargs).msg_handler(on_msg))
|
2021-08-19 20:08:53 +00:00
|
|
|
|
|
|
|
# decorator
|
2021-12-25 21:59:21 +00:00
|
|
|
def during(ds, pattern, *args, **kwargs):
|
|
|
|
return lambda on_add: observe(ds, pattern)(During(*args, **kwargs).add_handler(on_add))
|