#pragma once

#include "abstract_coder.hpp"
#include "abstract_tcp_connect.hpp"
#include <memory>


namespace tinyrpc { 
    class TcpClient;
    class ClientTcpConnection : AbstractTcpConnection {

    public:
        ClientTcpConnection(int fd, Reactor& reactor, TcpClient& cli);
        ~ClientTcpConnection();
        
    private:
        void process() override;

    private:
        TcpClient& m_client; 
        std::unordered_map<std::string, std::shared_ptr<AbstractData>> m_respond_datas; // cli

    };

}