X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=python3%2Fashd%2Fasync.py;h=4247bd6e6f47ed4486b4a3c895ba2e7d0aae69d6;hp=3493959aca15079814eac00406e9378c6ed6fef2;hb=be6ec4ec06b2f394a58aa652a22a300fae371994;hpb=4350acb522111f385f74dd9c7f8b3e47443ff225 diff --git a/python3/ashd/async.py b/python3/ashd/async.py index 3493959..4247bd6 100644 --- a/python3/ashd/async.py +++ b/python3/ashd/async.py @@ -165,12 +165,25 @@ class epoller(object): def watcher(): return epoller() -class sockbuffer(object): - def __init__(self, sk): - self.sk = sk +class channel(object): + readable = False + writable = False + + def __init__(self): + self.watcher = None + + def fileno(self): + raise NotImplementedError("fileno()") + + def close(self): + pass + +class sockbuffer(channel): + def __init__(self, socket, **kwargs): + super().__init__(**kwargs) + self.sk = socket self.eof = False self.obuf = bytearray() - self.watcher = None def fileno(self): return self.sk.fileno() @@ -211,8 +224,9 @@ class sockbuffer(object): self.obuf[:] = b"" self.eof = True -class callbuffer(object): - def __init__(self): +class callbuffer(channel): + def __init__(self, **kwargs): + super().__init__(**kwargs) self.queue = [] self.rp, self.wp = os.pipe() self.lock = threading.Lock()