Exemplo n.º 1
0
    bool rpc_session::on_disconnected(bool is_write)
    {
        bool ret;
        if (set_disconnected())
        {
            rpc_session_ptr sp = this;
            if (is_client())
            {
                _net.on_client_session_disconnected(sp);
            }
            else
            {
                _net.on_server_session_disconnected(sp);
            }

            ret = true;
        }
        else
        {
            ret = false;
        }

        if (is_write)
        {
            clear_send_queue(false);
        }

        return ret;
    }
Exemplo n.º 2
0
    rpc_session::~rpc_session()
    {
        clear_send_queue(false);

        {
            utils::auto_lock<utils::ex_lock_nr> l(_lock);
            dassert(0 == _sending_msgs.size(), "sending queue is not cleared yet");
            dassert(0 == _message_count.load(), "sending queue is not cleared yet");
        }
    }
Exemplo n.º 3
0
    bool rpc_session::on_disconnected(bool is_write)
    {
        if (is_client())
        {
            set_disconnected();
            rpc_session_ptr sp = this;
            _net.on_client_session_disconnected(sp);
        }
        
        else
        {
            rpc_session_ptr sp = this;
            _net.on_server_session_disconnected(sp);
        }

        if (is_write)
        {
            clear_send_queue(false);
        }

        return true;
    }