test multicontent stream
parent
5049d97a24
commit
e2f0e2d046
|
|
@ -25,14 +25,16 @@ def with_(N, R, T, p):
|
|||
released = CBAppend(p)
|
||||
cb = CBFork(triggered, released)
|
||||
|
||||
bucket = Bucket(N, R, T, cb.cb())
|
||||
buckets = {}
|
||||
|
||||
while True:
|
||||
got = readline()
|
||||
if got:
|
||||
bucket.push()
|
||||
if not got:
|
||||
[buckets[i].pop() for i in buckets]
|
||||
else:
|
||||
bucket.pop()
|
||||
if not got in buckets:
|
||||
buckets[got] = Bucket(N, R, T, cb.cb(got))
|
||||
buckets[got].push()
|
||||
|
||||
def readline():
|
||||
def __input(*args):
|
||||
|
|
@ -47,9 +49,9 @@ def readline():
|
|||
signal.signal(signal.SIGALRM, __input)
|
||||
signal.alarm(timeout)
|
||||
foo = _input()
|
||||
return not foo is None
|
||||
return foo
|
||||
|
||||
class Bucket:
|
||||
class Bucket():
|
||||
def __init__(self, N, R, T, CB):
|
||||
self.q = 0.0
|
||||
self.N = N
|
||||
|
|
@ -103,7 +105,7 @@ class CBSignals():
|
|||
self.__signal_triggered = signal_triggered
|
||||
self.__signal_released = signal_released
|
||||
|
||||
def cb(self):
|
||||
def cb(self, payload):
|
||||
def cb(state):
|
||||
print(f"state is now {state}")
|
||||
kill(
|
||||
|
|
@ -119,10 +121,10 @@ class CBAppend():
|
|||
def __init__(self, path):
|
||||
self.__path = path
|
||||
|
||||
def cb(self):
|
||||
def cb(self, payload):
|
||||
def cb(state):
|
||||
with open(self.__path, "a") as f:
|
||||
f.write(f"{state}\n")
|
||||
f.write(f"{'/' if not state else ''}{payload}\n")
|
||||
return cb
|
||||
|
||||
class CBFork():
|
||||
|
|
@ -130,9 +132,9 @@ class CBFork():
|
|||
self.__triggered = triggered
|
||||
self.__released = released
|
||||
|
||||
def cb(self):
|
||||
cb_triggered = self.__triggered.cb()
|
||||
cb_released = self.__released.cb()
|
||||
def cb(self, payload):
|
||||
cb_triggered = self.__triggered.cb(payload)
|
||||
cb_released = self.__released.cb(payload)
|
||||
def cb(state):
|
||||
if state:
|
||||
return cb_triggered(state)
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ trap cleanup EXIT
|
|||
python3 ./state_to_buttons.py &
|
||||
|
||||
(
|
||||
while echo ""; do
|
||||
while echo $((RANDOM%2)); do
|
||||
if [ 0 == $((RANDOM%4)) ]; then
|
||||
sleep 3
|
||||
fi
|
||||
|
|
|
|||
Loading…
Reference in New Issue