Add AsyncMessenger support

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Remove DispatchQueue in AsyncMessenger

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Add event option

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Add TimeEvent to Event API

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Add STANDBY state process

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Fix Time Event problem

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Add EventCenter stop function

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Replace AsyncConnection* with AsyncconnectionRef

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Add support for mon library

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Add wake up to EventCenter

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Use shared_ptr for EventCallback

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Reconnect when socket is shutdown

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMsgr: Fix remote_reset segv

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMessenger: Use unordered_map instead of map and remove unused codes

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMessenger: Check send queue when message in queue before connect ready

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncConnection: Rescheduler avoid dead lock

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncConnection: Fix incorrect usage for bufferlist::splice

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncMessenger: Use round-robin to dispatch new connection

EventCenter won't own lock to protect data, because each EventCenter will
master own connections.

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
AsyncConnection: Avoid external thread access center

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>
Event: external_event lock may stuck in dead lock

Signed-off-by: Haomai Wang <haomaiwang@gmail.com>