Ejemplo n.º 1
0
bool TCPListener::Send(Message *m)
{
    auto it = _conHndlrs.find(m->Conn());

    if (it != _conHndlrs.end())
    {
        Connection *c = it->first;
        ConnectionHandler *h = it->second;

        if (c->IsOpen())
        {
            h->Send(m);

        } else
        {
            _conHndlrs.erase(it);
            delete h;

            if (m->Owner() == 0)
                delete m;
        }

        return true;

    }
    else if (m->Cmd() == "") // skip dummy messages
    {
        if (m->Owner() == 0)
            delete m;

        return true;
    }

    return false;
}