// File: /workspace/github_cpp_makefile_star2_O2/trisolaris233[P]httpc/src/server.hpp
// Function: httpc::Server::Server(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned long)
Server(
            const std::string& address,
            const std::string& port,
            const std::string& document_root,
            std::size_t num_thread = GetCPUCoreNumber()
        )
        : io_context_(1)
        , acceptor_(io_context_)
        //, manager_(io_context_)
        , document_root_(document_root)
        , num_of_thread_(num_thread)
        , http_router_(*this) {
            boost::asio::ip::tcp::resolver resolver(io_context_);
            boost::asio::ip::tcp::endpoint endpoint = 
                *(resolver.resolve(address, port)).begin();
            this->acceptor_.open(endpoint.protocol());
            this->acceptor_.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
            this->acceptor_.bind(endpoint);
            this->acceptor_.listen();

            // Accept();
            //f();

            //this->AssignMultithreadAccept_();
            //this->Accept_();
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xb8, %rsp
movq %r8, %r12
movq %rcx, %r14
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, %rbx
pushq $0x1
popq %rsi
callq 0xb21e
leaq 0x10(%rbx), %rdi
movq %rdi, -0x30(%rbp)
movq %rbx, %rsi
xorl %edx, %edx
callq 0xd14c
leaq 0x60(%rbx), %rdi
movq %rdi, -0x38(%rbp)
movq %r14, %rsi
callq 0x8720
leaq 0x80(%rbx), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq 0xb290
movq %r12, 0x118(%rbx)
leaq -0xd8(%rbp), %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0xf7a8
movq (%r15), %rcx
movq 0x8(%r15), %rdx
movq (%r13), %r9
movq 0x8(%r13), %r8
leaq -0x50(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
callq 0xb2f2
movq %r14, %r15
leaq -0x68(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xb30e
leaq -0x60(%rbp), %r14
movq -0x8(%r14), %rax
movq (%rax), %rax
imulq $0x60, 0x8(%r14), %rcx
movups (%rax,%rcx), %xmm0
movups 0xc(%rax,%rcx), %xmm1
movaps %xmm0, -0x90(%rbp)
movups %xmm1, -0x84(%rbp)
movq %r14, %rdi
callq 0xfcf6
leaq -0x48(%rbp), %rdi
callq 0xfcf6
xorl %eax, %eax
cmpw $0x2, -0x90(%rbp)
setne %al
leal 0x2(,%rax,8), %eax
movl %eax, -0x8(%r14)
leaq -0x68(%rbp), %rsi
movq -0x30(%rbp), %r14
movq %r14, %rdi
callq 0xb35e
leaq -0x68(%rbp), %rsi
movl $0x1, (%rsi)
movq %r14, %rdi
callq 0xb3a8
leaq -0x90(%rbp), %rsi
movq %r14, %rdi
callq 0xb3f2
movq %r14, %rdi
movl $0x1000, %esi           # imm = 0x1000
callq 0xb43c
leaq -0xd8(%rbp), %rdi
callq 0x113f4
addq $0xb8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x9f8d
jmp 0x9f8d
movq %rax, %r13
leaq -0x48(%rbp), %rdi
callq 0xfcf6
jmp 0x9f90
movq %r14, %r15
jmp 0x9f8d
movq %r14, %r15
movq %rax, %r13
jmp 0x9f9c
movq %rax, %r13
jmp 0x9fad
movq %rax, %r13
jmp 0x9fb6
movq %rax, %r13
leaq -0xd8(%rbp), %rdi
callq 0x113f4
movq %r15, %rdi
callq 0xb48a
movq -0x38(%rbp), %rdi
callq 0x8280
movq -0x30(%rbp), %rdi
callq 0x1165c
movq %rbx, %rdi
callq 0xb4b4
movq %r13, %rdi
callq 0x8850