'Log on to this account.
Takes care to not start a connection if a connection is
already in progress.  You will need to implement
L{_startLogOn} for this to work, and it would be a good idea
to override L{_loginFailed} too.
@returntype: Deferred L{interfaces.IClient}'

def logOn(self, chatui):

    if ((not self._isConnecting) and (not self._isOnline)):
        self._isConnecting = 1
        d = self._startLogOn(chatui)
        d.addCallback(self._cb_logOn)
        d.addCallback(chatui.registerAccountClient)
        d.addErrback(self._loginFailed)
        return d
    else:
        raise error.ConnectError('Connection    in    progress')
