// File: billDrett[P]Bulletin-Boards/boardClient.cpp
// Function: BoardClient::menu(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>&)
int BoardClient::menu(string& line)
{
    string command, name;
    int id;
    istringstream iss(line);

    iss>> command;
    if(iss.fail())
    {
        cout<<"error command"<<endl;
        return 0;
    }
    if(command == "createchannel")
    {
        iss>> id>>name;
        if(!iss)
        {
            cout<<"error command"<<endl;
        }
        this->createChanel(id, name);
    }
    else if(command == "getmessages")
    {
        iss >>id;
        if(!iss)
        {
            cout<<"error command"<<endl;
        }
        this->getMessages(id);
    }
    else if(command == "exit")
    {
        cout<<"exit client"<<endl;
        this->exitClient();
        return -1;
    }
    else if(command == "shutdown")
    {
        cout<<"server shudown"<<endl;
        this->shutdownServer();
        return -1;
    }
    else //error
    {
        cout<<"error"<<endl;
    }
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x218(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x33e0
leaq -0x58(%rbp), %rdi
callq 0x33e0
movq -0x18(%rbp), %rsi
leaq -0x1e0(%rbp), %rdi
movl $0x8, %edx
callq 0x3480
jmp 0x5677
leaq -0x1e0(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x33a0
jmp 0x5689
movq -0x1e0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1e0(%rbp,%rax), %rdi
callq 0x3030
movb %al, -0x219(%rbp)
jmp 0x56a9
movb -0x219(%rbp), %al
testb $0x1, %al
jne 0x56b5
jmp 0x572a
movq 0x9914(%rip), %rdi      # 0xefd0
leaq 0x5aae(%rip), %rsi      # 0xb171
callq 0x32c0
movq %rax, -0x228(%rbp)
jmp 0x56d1
movq -0x228(%rbp), %rdi
movq 0x98e1(%rip), %rsi      # 0xefc0
callq 0x3300
jmp 0x56e6
movl $0x0, -0x4(%rbp)
movl $0x1, -0x1f0(%rbp)
jmp 0x5a2c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x5a62
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x5a56
leaq 0x5a4e(%rip), %rsi      # 0xb17f
leaq -0x38(%rbp), %rdi
callq 0x5a80
movb %al, -0x229(%rbp)
jmp 0x5742
movb -0x229(%rbp), %al
testb $0x1, %al
jne 0x5751
jmp 0x5845
leaq -0x1e0(%rbp), %rdi
leaq -0x5c(%rbp), %rsi
callq 0x31e0
movq %rax, -0x238(%rbp)
jmp 0x576a
movq -0x238(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x33a0
jmp 0x577c
movq -0x1e0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1e0(%rbp,%rax), %rdi
callq 0x3180
movb %al, -0x239(%rbp)
jmp 0x579c
movb -0x239(%rbp), %al
testb $0x1, %al
jne 0x57a8
jmp 0x57db
movq 0x9821(%rip), %rdi      # 0xefd0
leaq 0x59bb(%rip), %rsi      # 0xb171
callq 0x32c0
movq %rax, -0x248(%rbp)
jmp 0x57c4
movq -0x248(%rbp), %rdi
movq 0x97ee(%rip), %rsi      # 0xefc0
callq 0x3300
jmp 0x57d9
jmp 0x57db
movl -0x5c(%rbp), %eax
movl %eax, -0x24c(%rbp)
leaq -0x210(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x3150
jmp 0x57f6
movl -0x24c(%rbp), %esi
movq -0x218(%rbp), %rdi
leaq -0x210(%rbp), %rdx
callq 0x4870
jmp 0x5811
leaq -0x210(%rbp), %rdi
callq 0x31f0
jmp 0x5a1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x31f0
jmp 0x5a56
leaq 0x5941(%rip), %rsi      # 0xb18d
leaq -0x38(%rbp), %rdi
callq 0x5a80
movb %al, -0x24d(%rbp)
jmp 0x585d
movb -0x24d(%rbp), %al
testb $0x1, %al
jne 0x586c
jmp 0x58f3
leaq -0x1e0(%rbp), %rdi
leaq -0x5c(%rbp), %rsi
callq 0x31e0
jmp 0x587e
movq -0x1e0(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x1e0(%rbp,%rax), %rdi
callq 0x3180
movb %al, -0x24e(%rbp)
jmp 0x589e
movb -0x24e(%rbp), %al
testb $0x1, %al
jne 0x58aa
jmp 0x58dd
movq 0x971f(%rip), %rdi      # 0xefd0
leaq 0x58b9(%rip), %rsi      # 0xb171
callq 0x32c0
movq %rax, -0x258(%rbp)
jmp 0x58c6
movq -0x258(%rbp), %rdi
movq 0x96ec(%rip), %rsi      # 0xefc0
callq 0x3300
jmp 0x58db
jmp 0x58dd
movq -0x218(%rbp), %rdi
movl -0x5c(%rbp), %esi
callq 0x4a80
jmp 0x58ee
jmp 0x5a19
leaq 0x589f(%rip), %rsi      # 0xb199
leaq -0x38(%rbp), %rdi
callq 0x5a80
movb %al, -0x259(%rbp)
jmp 0x590b
movb -0x259(%rbp), %al
testb $0x1, %al
jne 0x5917
jmp 0x596c
movq 0x96b2(%rip), %rdi      # 0xefd0
leaq 0x5879(%rip), %rsi      # 0xb19e
callq 0x32c0
movq %rax, -0x268(%rbp)
jmp 0x5933
movq -0x268(%rbp), %rdi
movq 0x967f(%rip), %rsi      # 0xefc0
callq 0x3300
jmp 0x5948
movq -0x218(%rbp), %rdi
callq 0x55c0
jmp 0x5956
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl $0x1, -0x1f0(%rbp)
jmp 0x5a2c
leaq 0x5837(%rip), %rsi      # 0xb1aa
leaq -0x38(%rbp), %rdi
callq 0x5a80
movb %al, -0x269(%rbp)
jmp 0x5984
movb -0x269(%rbp), %al
testb $0x1, %al
jne 0x5990
jmp 0x59e2
movq 0x9639(%rip), %rdi      # 0xefd0
leaq 0x5815(%rip), %rsi      # 0xb1b3
callq 0x32c0
movq %rax, -0x278(%rbp)
jmp 0x59ac
movq -0x278(%rbp), %rdi
movq 0x9606(%rip), %rsi      # 0xefc0
callq 0x3300
jmp 0x59c1
movq -0x218(%rbp), %rdi
callq 0x55f0
jmp 0x59cf
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
movl $0x1, -0x1f0(%rbp)
jmp 0x5a2c
movq 0x95e7(%rip), %rdi      # 0xefd0
leaq 0x57d2(%rip), %rsi      # 0xb1c2
callq 0x32c0
movq %rax, -0x280(%rbp)
jmp 0x59fe
movq -0x280(%rbp), %rdi
movq 0x95b4(%rip), %rsi      # 0xefc0
callq 0x3300
jmp 0x5a13
jmp 0x5a15
jmp 0x5a17
jmp 0x5a19
jmp 0x5a1b
movl $0x0, -0x4(%rbp)
movl $0x1, -0x1f0(%rbp)
leaq -0x1e0(%rbp), %rdi
callq 0x31a0
leaq -0x58(%rbp), %rdi
callq 0x31f0
leaq -0x38(%rbp), %rdi
callq 0x31f0
movl -0x4(%rbp), %eax
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
leaq -0x1e0(%rbp), %rdi
callq 0x31a0
leaq -0x58(%rbp), %rdi
callq 0x31f0
leaq -0x38(%rbp), %rdi
callq 0x31f0
movq -0x1e8(%rbp), %rdi
callq 0x34b0