client泛型优化

This commit is contained in:
Redkale
2023-01-13 11:21:54 +08:00
parent ad059eb3d6
commit cf37303b5e
6 changed files with 21 additions and 7 deletions

View File

@@ -15,6 +15,7 @@ import org.redkale.net.*;
* 详情见: https://redkale.org
*
* @author zhangjx
*
* @since 2.7.0
*/
public class ClientAddress implements java.io.Serializable {

View File

@@ -12,6 +12,9 @@ import org.redkale.net.*;
/**
*
* @author zhangjx
*
* @since 2.3.0
*
* @param <T> 泛型
*/
public class ClientFuture<T> extends CompletableFuture<T> implements Runnable {

View File

@@ -10,7 +10,7 @@ import org.redkale.net.AsyncIOThread;
import org.redkale.util.ObjectPool;
/**
* 客户端版的IO线程
* 客户端IO线程
*
* <p>
* 详情见: https://redkale.org

View File

@@ -6,7 +6,6 @@
package org.redkale.net.client;
import java.io.Serializable;
import java.util.function.BiConsumer;
import org.redkale.net.WorkThread;
import org.redkale.util.*;
@@ -19,7 +18,7 @@ import org.redkale.util.*;
*
* @since 2.3.0
*/
public abstract class ClientRequest implements BiConsumer<ClientConnection, ByteArray> {
public abstract class ClientRequest {
protected long createTime = System.currentTimeMillis();
@@ -27,8 +26,7 @@ public abstract class ClientRequest implements BiConsumer<ClientConnection, Byte
protected String traceid;
@Override
public abstract void accept(ClientConnection conn, ByteArray array);
public abstract void writeTo(ClientConnection conn, ByteArray array);
public Serializable getRequestid() {
return null;

View File

@@ -8,8 +8,14 @@ package org.redkale.net.client;
import java.io.Serializable;
/**
*
* <p>
* 详情见: https://redkale.org
*
* @author zhangjx
*
* @since 2.3.0
*
* @param <P> message
*/
public class ClientResponse<P> {
@@ -22,7 +28,7 @@ public class ClientResponse<P> {
public ClientResponse() {
}
public ClientResponse(ClientRequest request, P message) {
this.request = request;
this.message = message;

View File

@@ -13,8 +13,14 @@ import org.redkale.net.AsyncIOThread;
import org.redkale.util.*;
/**
* 客户端IO写线程
*
* <p>
* 详情见: https://redkale.org
*
* @author zhangjx
*
* @since 2.8.0
*/
public class ClientWriteIOThread extends AsyncIOThread {
@@ -115,7 +121,7 @@ public class ClientWriteIOThread extends AsyncIOThread {
for (ClientFuture en : list) {
++i;
ClientRequest request = en.request;
request.accept(conn, writeArray);
request.writeTo(conn, writeArray);
if (!request.isCompleted()) {
conn.pauseWriting.set(true);
conn.pauseRequests.addAll(list.subList(i, list.size()));