From e91adc4a24fbf30a0051c95c67207026be4d84fb Mon Sep 17 00:00:00 2001 From: dxl <64101226@qq.com> Date: Sat, 11 Apr 2020 13:23:11 +0800 Subject: [PATCH] UniversalDriver added(no implement.). --- .../main/java/cn/rrg/com/UniversalDriver.java | 71 +++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 communication/src/main/java/cn/rrg/com/UniversalDriver.java diff --git a/communication/src/main/java/cn/rrg/com/UniversalDriver.java b/communication/src/main/java/cn/rrg/com/UniversalDriver.java new file mode 100644 index 00000000..3387e547 --- /dev/null +++ b/communication/src/main/java/cn/rrg/com/UniversalDriver.java @@ -0,0 +1,71 @@ +package cn.rrg.com; + +import java.io.IOException; + +import cn.dxl.common.posixio.Communication; + +/** + * This is a universal driver + * base is a buffer + * all data from external + * and new data always call listener impl from dev + * + * @author DXL + * @version 1.0 + */ +public class UniversalDriver implements Communication { + + private OnWriteDataListener onWriteDataListener; + + + @Override + public int write(byte[] sendMsg, int offset, int length, int timeout) throws IOException { + return onWriteDataListener != null ? + onWriteDataListener.onWriteData(sendMsg, offset, length, timeout) + : -1; + } + + @Override + public int read(byte[] recvMsg, int offset, int length, int timeout) throws IOException { + return 0; + } + + @Override + public void flush() throws IOException { + + } + + @Override + public void close() throws IOException { + + } + + public OnWriteDataListener getOnWriteDataListener() { + return onWriteDataListener; + } + + public void setOnWriteDataListener(OnWriteDataListener onWriteDataListener) { + this.onWriteDataListener = onWriteDataListener; + } + + /** + * put some bytes to the buffer, which will be used by the read function + * + * @param data some data, only read function can use. + */ + public void putData(byte[] data) { + + } + + public abstract static class OnWriteDataListener { + /** + * some data from {@link #write(byte[], int, int, int)} + * + * @param data the new data from write fun + * @return your process ret + */ + public int onWriteData(byte[] data, int offset, int length, int timeout) { + return data.length; + } + } +}