// Stats returns the status of the connection. public IDictionary <string, object> Stats() { dbMu.Wait(); try { lock (timeMu) lock (txStateMu) { var fkEnabled = db.FKConstraints(); var m = new Dictionary <string, object>(); m.Add("last_used_at", LastUsedAt); m.Add("created_at", CreatedAt); m.Add("idle_timeout", IdleTimeout.ToString()); m.Add("tx_timeout", TxTimeout.ToString()); m.Add("id", ID); m.Add("fk_constraints", fkEnabled ? "enabled" : "disabled"); if (TxStartedAt.HasValue) { m.Add("tx_started_at", TxStartedAt.ToString()); } return(m); } } finally { dbMu.Release(); } }
public override int GetHashCode() { int hash = 1; if (MaxSize != 0) { hash ^= MaxSize.GetHashCode(); } if (IdleTimeout != 0UL) { hash ^= IdleTimeout.GetHashCode(); } if (MaxConcurrentStreamsLowWatermark != 0) { hash ^= MaxConcurrentStreamsLowWatermark.GetHashCode(); } if (_unknownFields != null) { hash ^= _unknownFields.GetHashCode(); } return(hash); }
static void Main(string[] args) { if (!args.Contains <string>("/seminterface") && !args.Contains <string>("/ajuda")) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new frmXPZBackup()); } else { if (args.Contains <string>("/ajuda")) { string mensagem = ""; mensagem += "---------------------------------------------------------------------" + Environment.NewLine; mensagem += "Versão atual do XPZBackup: " + Application.ProductVersion + Environment.NewLine; mensagem += "---------------------------------------------------------------------" + Environment.NewLine; mensagem += "Parâmetros:" + Environment.NewLine; mensagem += Environment.NewLine; mensagem += "/seminterface: Inicializa o programa sem a interface, utilizando as configurações feitas pela interface" + Environment.NewLine; mensagem += Environment.NewLine; mensagem += "/desligar: Usado junto com o parâmetro /seminterface, desliga a máquina no final do processo" + Environment.NewLine; mensagem += Environment.NewLine; mensagem += "/idletimeout <segundos>: Só funcionará com o parâmetro /seminterface. Espera que o sistema esteja em X segundos de inatividade (sem entrada do usuário) antes de fazer o backup" + Environment.NewLine; mensagem += Environment.NewLine; mensagem += "/ajuda: Exibe essa mensagem de ajuda" + Environment.NewLine; mensagem += "---------------------------------------------------------------------" + Environment.NewLine; Common.MensagemInfo(mensagem); } else { if (args.Contains <string>("/seminterface")) { bool desligarNoFinal = args.Contains <string>("/desligar"); Configs configuracoes = ProcessadorXml.Ler(); if (configuracoes.DesabilitarDesligamento) { desligarNoFinal = false; } int idleTimeout = 0; for (int i = 0; i < args.Length; i++) { if (args[i] == "/idletimeout") { if ((i + 1) < args.Length) { idleTimeout = Convert.ToInt32(args[i + 1].ToString()); } else { Common.MensagemErro("Valor Incorreto informado para o parâmetro /idletimeout, verifique os parâmetros informados!"); } } } if (idleTimeout > 0) { int idleTimeoutMilliseconds = idleTimeout * 1000; while (IdleTimeout.GetIdleTime() < idleTimeoutMilliseconds) { Thread.Sleep(1000); } } List <string> retorno = Tarefas.Executar(configuracoes, desligarNoFinal); if (retorno.Count > 0) { string mensagensRetorno = ""; foreach (string s in retorno) { mensagensRetorno += s + Environment.NewLine; } Common.MensagemErro(mensagensRetorno); } } else { Common.MensagemErro("Parâmetros inválidos, verifique os parâmetros informados!"); Application.Exit(); } } } }
protected virtual void OnIdleTimeout(EventArgs e) { IdleTimeout?.Invoke(this, e); }