def __init__(self, portaReceber=45455, portaResponder=45456, parent=None): super().__init__(portaReceber=portaReceber, portaResponder=portaResponder, ipServidor=conf.IP_SERVIDOR, parent=parent) self._servicoConexao = ServicoConexaoCliente(self) self._servicoConexao.conectadoServidor.connect(self._emitirConectadoEAtualizarUsuarios) self._usuarioAtual = Usuario() self._usuarioAtual.load() self._enviarInformacaoUsuario()
class ServicoClienteMensageiro(ServicoConversaCliente): listaClientesAtualizada = pyqtSignal(list) dadosUsuarioAtualizado = pyqtSignal(Usuario) conectado = pyqtSignal(bool) def __init__(self, portaReceber=45455, portaResponder=45456, parent=None): super().__init__(portaReceber=portaReceber, portaResponder=portaResponder, ipServidor=conf.IP_SERVIDOR, parent=parent) self._servicoConexao = ServicoConexaoCliente(self) self._servicoConexao.conectadoServidor.connect(self._emitirConectadoEAtualizarUsuarios) self._usuarioAtual = Usuario() self._usuarioAtual.load() self._enviarInformacaoUsuario() def _receberInformacaoTipoValor(self, de, tipo, valor): if tipo == _ServicoMensageiro.LISTA_USUARIOS: self.listaClientesAtualizada.emit(valor) elif tipo == _ServicoMensageiro.USUARIO_ALTERADO: self.dadosUsuarioAtualizado.emit(valor.copy()) elif tipo == _ServicoMensageiro.PEDIR_DADOS: self._enviarInformacaoUsuario() super()._receberInformacaoTipoValor(de, tipo, valor) def _emitirConectadoEAtualizarUsuarios(self, con): self.conectado.emit(con) if con: self.atualizarDadosUsuarios() def atualizarDadosUsuarios(self): self._enviarInformacaoServidor(_ServicoMensageiro.PEDIR_DADOS) def estaConectado(self): return self._servicoConexao.estaConectado() def _enviarInformacaoUsuario(self): if self._servicoConexao.estaConectado(): self._enviarInformacaoServidor(_ServicoMensageiro.DADOS_USUARIO, self._usuarioAtual) def setNome(self, nome): if nome != self.getNome(): self._usuarioAtual.setNome(nome) self._usuarioAtual.save() self._enviarInformacaoUsuario() def getNome(self): return self._usuarioAtual.getNome() def setStatus(self, status): if status != self.getStatus(): self._usuarioAtual.setStatus(status) self._usuarioAtual.save() self._enviarInformacaoUsuario() def getStatus(self): return self._usuarioAtual.getStatus()