public NodeClient this[AtlasNodeInfo info] { get { var desc = info.GetDescriptor(); if (!pool.ContainsKey(desc)) { RecreateConnection(info); } else { try { pool[desc].TestConnection(); } catch { // Retry try { RecreateConnection(info); } catch { } } } if (pool.ContainsKey(desc)) { return(pool[desc]); } else { return(null); } } }
public void Connect() { Transport.Open(); TestConnection(); NodeInfo = Client.getInfo(); Console.WriteLine("Connected to {0}", NodeInfo.GetName()); }
public NodeClient(AtlasNodeInfo info) { Transport = new TBufferedTransport(new TSocket(info.Host, (int)info.Port)); TProtocol protocol = new TBinaryProtocol(Transport); Client = new AtlasNode.Client(protocol); }
public void Read(TProtocol iprot) { TField field; iprot.ReadStructBegin(); while (true) { field = iprot.ReadFieldBegin(); if (field.Type == TType.Stop) { break; } switch (field.ID) { case 1: if (field.Type == TType.Struct) { Node = new AtlasNodeInfo(); Node.Read(iprot); } else { TProtocolUtil.Skip(iprot, field.Type); } break; case 2: if (field.Type == TType.I64) { Id = iprot.ReadI64(); } else { TProtocolUtil.Skip(iprot, field.Type); } break; default: TProtocolUtil.Skip(iprot, field.Type); break; } iprot.ReadFieldEnd(); } iprot.ReadStructEnd(); }
public void RecreateConnection(AtlasNodeInfo info) { var desc = info.GetDescriptor(); if (pool.ContainsKey(desc)) { try { pool[desc].Disconnect(); } catch { } pool.Remove(desc); } var client = new NodeClient(info); client.Connect(); pool[desc] = client; }
public static AtlasNodeDescriptor GetDescriptor(this AtlasNodeInfo info) { return(new AtlasNodeDescriptor(info.Host, (int)info.Port)); }
public static string GetName(this AtlasNodeInfo info) { return(string.Format("{0}:{1} ({2})", info.Host, info.Port, info.Name)); }
public Config() { BootstrapNode = new AtlasNodeInfo { Host = "ajenti.org", Port = 1957 }; }