From 2f6678c7eb59fa1253d8294ab3b9d805886b0635 Mon Sep 17 00:00:00 2001 From: Fancy code <258828110.@qq.com> Date: Thu, 11 Apr 2024 20:46:26 +0800 Subject: [PATCH] Improve:TcpModule. --- utils/TcpModule/include/TcpModule.h | 3 ++- utils/TcpModule/src/ITcpServer.cpp | 2 +- utils/TcpModule/src/ITcpServer.h | 2 +- utils/TcpModule/src/TcpModule.cpp | 18 ++++++++++++------ utils/TcpModule/src/TcpServerImpl.cpp | 7 +++++-- utils/TcpModule/src/TcpServerImpl.h | 2 +- 6 files changed, 22 insertions(+), 12 deletions(-) diff --git a/utils/TcpModule/include/TcpModule.h b/utils/TcpModule/include/TcpModule.h index 21de5c8..3f2156f 100644 --- a/utils/TcpModule/include/TcpModule.h +++ b/utils/TcpModule/include/TcpModule.h @@ -44,8 +44,9 @@ typedef struct tcp_parm } TcpClientParam; void *CreateTcpServer(const TcpServerParam param); void FreeTcpServer(void *object); -void AcceptClientSetParam(void *object, const ClientAcceptParam param); +// void AcceptClientSetParam(void *object, const ClientAcceptParam param); ssize_t AcceptClientWrite(void *object, const void *buf, const size_t bufLenght); +void AcceptClientClose(void *object); void *CreateTcpClient(const TcpClientParam param); void FreeTcpClient(void *object); ssize_t TcpClientWrite(void *object, const void *buf, const size_t bufLenght); diff --git a/utils/TcpModule/src/ITcpServer.cpp b/utils/TcpModule/src/ITcpServer.cpp index f61b8c4..a26c05c 100644 --- a/utils/TcpModule/src/ITcpServer.cpp +++ b/utils/TcpModule/src/ITcpServer.cpp @@ -16,7 +16,7 @@ #include "ILog.h" #include "TcpModule.h" #include -void ITcpClientAccept::SetParam(const ClientAcceptParam ¶m) +void ITcpClientAccept::Close(void) { } void ITcpClientAccept::Readed(const void *data, size_t length) diff --git a/utils/TcpModule/src/ITcpServer.h b/utils/TcpModule/src/ITcpServer.h index 5f72f50..098ad0b 100644 --- a/utils/TcpModule/src/ITcpServer.h +++ b/utils/TcpModule/src/ITcpServer.h @@ -22,7 +22,7 @@ class ITcpClientAccept public: ITcpClientAccept() = default; virtual ~ITcpClientAccept() = default; - virtual void SetParam(const ClientAcceptParam ¶m); + virtual void Close(void); virtual void Readed(const void *data, size_t length); virtual ssize_t Write(const void *data, size_t length); virtual void Closed(void); diff --git a/utils/TcpModule/src/TcpModule.cpp b/utils/TcpModule/src/TcpModule.cpp index ab28bc9..4101b25 100644 --- a/utils/TcpModule/src/TcpModule.cpp +++ b/utils/TcpModule/src/TcpModule.cpp @@ -58,12 +58,12 @@ void FreeTcpServer(void *object) free(((char *)object) - sizeof(ITcpServerHeader)); // TODO: bug? } } -void AcceptClientSetParam(void *object, const ClientAcceptParam param) -{ - if (TcpClientAcceptObjectCheck(object) == true) { - (*(std::shared_ptr *)object)->SetParam(param); - } -} +// void AcceptClientSetParam(void *object, const ClientAcceptParam param) +// { +// if (TcpClientAcceptObjectCheck(object) == true) { +// (*(std::shared_ptr *)object)->SetParam(param); +// } +// } ssize_t AcceptClientWrite(void *object, const void *buf, const size_t bufLenght) { if (TcpClientAcceptObjectCheck(object) == true) { @@ -71,6 +71,12 @@ ssize_t AcceptClientWrite(void *object, const void *buf, const size_t bufLenght) } return TCP_MODULE_WRITE_ERROR; } +void AcceptClientClose(void *object) +{ + if (TcpClientAcceptObjectCheck(object) == true) { + return (*(std::shared_ptr *)object)->Close(); + } +} void *CreateTcpClient(const TcpClientParam param) { std::shared_ptr *client = TcpModuleMakePtr::GetInstance()->CreateTcpClient(param); diff --git a/utils/TcpModule/src/TcpServerImpl.cpp b/utils/TcpModule/src/TcpServerImpl.cpp index b67b561..231a1c2 100644 --- a/utils/TcpModule/src/TcpServerImpl.cpp +++ b/utils/TcpModule/src/TcpServerImpl.cpp @@ -60,9 +60,12 @@ TcpClientAcceptImpl::TcpClientAcceptImpl(const hio_t *io, const void *object, co : mIo(io), mObjectThis(object), mParam(param) { } -void TcpClientAcceptImpl::SetParam(const ClientAcceptParam ¶m) +void TcpClientAcceptImpl::Close(void) { - // mParam = param; + if (nullptr != mIo) { + hio_t *io = (hio_t *)mIo; + hio_close(io); + } } void TcpClientAcceptImpl::Readed(const void *data, size_t length) { diff --git a/utils/TcpModule/src/TcpServerImpl.h b/utils/TcpModule/src/TcpServerImpl.h index 68e85ac..007f63f 100644 --- a/utils/TcpModule/src/TcpServerImpl.h +++ b/utils/TcpModule/src/TcpServerImpl.h @@ -27,7 +27,7 @@ class TcpClientAcceptImpl : public ITcpClientAccept, public std::enable_shared_f public: TcpClientAcceptImpl(const hio_t *io, const void *object, const ClientAcceptParam ¶m); virtual ~TcpClientAcceptImpl() = default; - void SetParam(const ClientAcceptParam ¶m) override; + void Close(void) override; void Readed(const void *data, size_t length) override; ssize_t Write(const void *data, size_t length) override; void Closed(void) override;