public RecoveryEnabledConnection(IEnumerable <string> hostnames, Connection connection, AutoRecoverySettings recoverySettings) { _hostnames = hostnames; _connection = connection; _recoverySettings = recoverySettings; _connection.Recovery = this; _channelRecoveries = new List <RecoveryEnabledChannel>(); _recoveryCancellationTokenSource = new CancellationTokenSource(); }
public RecoveryEnabledChannel(Channel channel, AutoRecoverySettings recoverySettings) { _channel = channel; _recoverySettings = recoverySettings; _declaredExchanges = new List <ExchangeDeclaredRecovery>(); _boundExchanges = new List <ExchangeBindRecovery>(); _declaredQueues = new List <QueueDeclaredRecovery>(); _boundQueues = new List <QueueBoundRecovery>(); _consumersRegistered = new List <QueueConsumerRecovery>(); _rpcHelpers = new List <BaseRpcHelper>(); }
public async Task <IConnection> StartConnection(AutoRecoverySettings autoRecovery) { using (var console = new RestConsole(_host, _username, _password)) { var vhosts = await console.GetVHosts(); var users = await console.GetUsers(); Console.WriteLine("vhosts: " + vhosts.Aggregate(" ", (agg, vhst) => agg + " " + vhst.Name)); Console.WriteLine("users: " + users.Aggregate(" ", (agg, u) => agg + " " + u.Name + "[" + u.Tags + "]")); if (!vhosts.Any(v => v.Name == _vhost)) { await console.CreateVHost(_vhost); await console.SetUserVHostPermission(_username, _vhost); } } LogAdapter.LogDebugFn = (cat, msg, exc) => { Console.WriteLine("DEBUG [{0}] : {1} - {2}", cat, msg, exc); }; LogAdapter.LogErrorFn = (cat, msg, exc) => { var color = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.Error.WriteLine("ERROR [{0}] : {1} - {2}", cat, msg, exc); Console.ForegroundColor = color; }; LogAdapter.LogWarnFn = (cat, msg, exc) => { var color = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Magenta; Console.WriteLine("WARN [{0}] : {1} - {2}", cat, msg, exc); Console.ForegroundColor = color; }; var conn = await ConnectionFactory.Connect(_host, _vhost, _username, _password, recoverySettings : autoRecovery); if (conn is Connection) { _io = (conn as Connection)._io; } else if (conn is RecoveryEnabledConnection) { _io = (conn as RecoveryEnabledConnection)._connection._io; } _conn = conn; return(conn); }
public RecoveryEnabledConnection(string hostname, Connection connection, AutoRecoverySettings recoverySettings) : this(new[] { hostname }, connection, recoverySettings) { }