Created base files
This commit is contained in:
28
pytchat/core_async/buffer.py
Normal file
28
pytchat/core_async/buffer.py
Normal file
@@ -0,0 +1,28 @@
|
||||
|
||||
import asyncio
|
||||
class Buffer(asyncio.Queue):
|
||||
'''
|
||||
チャットデータを格納するバッファの役割を持つLIFOキュー
|
||||
|
||||
Parameter
|
||||
---------
|
||||
maxsize : int
|
||||
格納するチャットブロックの最大個数。0の場合は無限。
|
||||
最大値を超える場合は古いチャットブロックから破棄される。
|
||||
'''
|
||||
def __init__(self,maxsize = 0):
|
||||
super().__init__(maxsize)
|
||||
|
||||
async def put(self,item):
|
||||
if item is None:
|
||||
return
|
||||
if super().full():
|
||||
super().get_nowait()
|
||||
await super().put(item)
|
||||
|
||||
async def get(self):
|
||||
ret = []
|
||||
ret.append(await super().get())
|
||||
while not super().empty():
|
||||
ret.append(super().get_nowait())
|
||||
return ret
|
||||
Reference in New Issue
Block a user