def _clock(): ''' O relogio pulsou, verifica os timeouts de solicitacoes de conexao enfileiradas ''' for i in range(_NUMERO_MAX_CONEXOES): con = _pool_conexoes.obterConexao(i) if(con.timerEstaLigado()): con.setTimer(con.obterTimer() - 1) if(con.obterTimer() == 0): con.setEstado(EstadosConexao.PARADO) _log.logar('Solicitacao de conexao expirou: ' + str(con)) camada_rede.enviar_requisicao_clear(con.obterId(), con.obterEnderecoLocal(), con.obterEnderecoRemoto()) _pool_conexoes.liberarConexao(con)
def disconnect(con_id): ''' Encerra a conexao ''' con = _pool_conexoes.obterConexao(con_id) if(con.obterReqLiberarRecebida()): _log.logar('Usuario remoto ja desconectou') con.setEstado(EstadosConexao.PARADO) _log.logar('Conexao desconectada: ' + str(con)) camada_rede.enviar_confirmacao_clear(con_id, con.obterEnderecoLocal(), con.obterEnderecoRemoto()) _pool_conexoes.liberarConexao(con) return ErrosTransporte.OK con.setEstado(EstadosConexao.DESCONECTANDO) _log.logar('Desconectando conexao: ' + str(con)) camada_rede.enviar_requisicao_clear(con_id, con.obterEnderecoLocal(), con.obterEnderecoRemoto()) _pool_conexoes.liberarConexao(con) return ErrosTransporte.OK