#include <net_base.h>
#include <util.h>

std::shared_ptr<spdlog::logger> g_Logger;

void TestHandle(CFrameBuffer* buf)
{
    g_Logger->info("type: {}", buf->type_);   
    g_Logger->info("len: {}", buf->len_);   
    g_Logger->info("{} exec. 中文测试", __FUNCTION__);
}

int main()
{
    char buffer[] = "Java";
    g_Logger = get_logger("test1", "test1.log");
    asio::io_context io_context;
    std::shared_ptr<CTcpClient> client = std::make_shared<CTcpClient>(io_context, g_Logger);
    if (!client->connect("127.0.0.1", "8080")) {
        return -1;
    }
    client->send(buffer, sizeof(buffer));
    std::function<void(CFrameBuffer*)> func = TestHandle;
    client->register_func(func);
    client->async_recv();
    std::thread t([&io_context]() { io_context.run(); });
    char line[512]{};
    while (std::cin.getline(line, 512)) {
        if (std::strstr(line, "end")) {
            break;
        }
    }
    client->disconnect();
    t.join();
    return 0;
}