def stdServer(server: Server, contractSerializer: Serializer) -> None: sout = sys.stdout.buffer sin = sys.stdin.buffer def writeBytes(value: bytes) -> None: sent = 0 while sent < len(value): written = sout.write(value[sent:]) if written == 0: raise RuntimeError("pipe connection broken") sent += written def readBytes(length: int) -> bytes: buffer = b'' while len(buffer) < length: chunk = sin.read(length - len(buffer)) if len(chunk) == 0: raise RuntimeError("pipe connection broken") buffer += chunk return buffer messageSerializer = MessageSerializer(contractSerializer) writer = Writer(writeBytes) reader = Reader(readBytes) while True: messageSerializer.write( server.invoke(cast(Request, messageSerializer.read(reader))), writer) sout.flush()
def stdServer(server, contractSerializer): # type: (Server, Serializer) -> None sout = sys.stdout sin = sys.stdin def writeBytes(value): # type: (bytes) -> None sout.write(value) def readBytes(length): # type: (int) -> bytes buffer = b'' while len(buffer) < length: chunk = sin.read(length - len(buffer)) if len(chunk) == 0: raise RuntimeError("pipe connection broken") buffer += chunk return buffer messageSerializer = MessageSerializer(contractSerializer) writer = Writer(writeBytes) reader = Reader(readBytes) while True: messageSerializer.write( server.invoke(cast(Request, messageSerializer.read(reader))), writer) sout.flush()
def stdServer(server: Server, contractSerializer: Serializer) -> None: sout = sys.stdout.buffer sin = sys.stdin.buffer def writeBytes(value: bytes) -> None: sent = 0 while sent < len(value): written = sout.write(value[sent:]) if written == 0: raise RuntimeError("pipe connection broken") sent += written def readBytes(length: int) -> bytes: buffer = b'' while len(buffer) < length: chunk = sin.read(length - len(buffer)) if len(chunk) == 0: raise RuntimeError("pipe connection broken") buffer += chunk return buffer messageSerializer = MessageSerializer(contractSerializer) writer = Writer(writeBytes) reader = Reader(readBytes) while True: messageSerializer.write(server.invoke(cast(Request, messageSerializer.read(reader))), writer) sout.flush()
def stdServer(server, contractSerializer): # type: (Server, Serializer) -> None sout = sys.stdout sin = sys.stdin def writeBytes(value): # type: (bytes) -> None sout.write(value) def readBytes(length): # type: (int) -> bytes buffer = b"" while len(buffer) < length: chunk = sin.read(length - len(buffer)) if len(chunk) == 0: raise RuntimeError("pipe connection broken") buffer += chunk return buffer messageSerializer = MessageSerializer(contractSerializer) writer = Writer(writeBytes) reader = Reader(readBytes) while True: messageSerializer.write(server.invoke(cast(Request, messageSerializer.read(reader))), writer) sout.flush()