41 lines
775 B
C++
41 lines
775 B
C++
#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 clearClient();
|
|
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 类
|
|
};
|
|
|
|
} |