#pragma once #include "coroutine.hpp" #include "fd_event.hpp" #include "reactor.hpp" #include "tcp_buffer.hpp" namespace tinyrpc { class TcpConnection { public: enum class State{ Disconnected, Connected }; public: TcpConnection(int fd, Reactor* reactor); void mainLoopFun(); ~TcpConnection(); private: void input(); void output(); void process(); private: FdEvent m_fdEvent; Coroutine m_mainCoroutine; State m_state{State::Connected}; TcpBuffer m_writeBuffer{}; TcpBuffer m_readBuffer{}; Reactor* m_reactor{}; // TODO .... 完善 TcpConnection 类 }; }