public CrystalDifusionConnectionEvents(ICrystalDifusionConnectionBase conn, CrystalConnectionMessageHandle handle, ILogger <CrystalDifusionConnectionEvents> logger, string connectionId, DifusionCredential credential, ICrystalConnectionStatistics connectionStatistics) { this.conn = conn; this.logger = logger; this.connectionId = connectionId; this.handle = handle; this.credential = credential; Disconnected = DisconnectHandle; Connected = ConnectedtHandle; crystalReader = new CrystalConnectionReaderEvent(this, conn, logger, Disconnected, connectionId); crystalWriter = new CrystalConnectionWriterEvent(conn, logger, Disconnected, queue, connectionId); crystalWatcher = new CrystalConnectionWatcher(queue, Disconnected, logger); reconnect = new AtomicRunBoolean(false); watch = new AtomicRunBoolean(false); connected = new AtomicRunBoolean(false); this.connectionStatistics = connectionStatistics; }
public bool Load() { string user = config.GetSection("CrystalUserName").Value; string pass = config.GetSection("CrystalPassword").Value; int port = config.GetSection("CrystalPort").Value != null?Convert.ToInt16(config.GetSection("CrystalPort").Value) : 81; int qtdConnections = config.GetSection("qtd_connections").Value != null?Convert.ToInt16(config.GetSection("qtd_connections").Value) : 1; listHost = config.GetSection("CrystalHosts") .GetChildren() .Select(x => x.Value) .ToList(); if (string.IsNullOrEmpty(user) || string.IsNullOrEmpty(pass) || listHost == null || !listHost.Any()) { return(false); } credential = new DifusionCredential(user, pass, ""); LoadConnections(credential, qtdConnections, port); return(true); }
public static ICrystalDifusionConnectionBase CreateCrystalConnection(ILoggerFactory loggerFactory, PostmanThread postmanThread) { var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); IConfigurationRoot config = builder.Build(); string user = config.GetSection("CrystalUserName").Value; string pass = config.GetSection("CrystalPassword").Value; IEnumerable <string> hosts = config.GetSection("CrystalHosts") .GetChildren() .Select(x => x.Value) .ToArray(); string host = hosts.FirstOrDefault(); int port = config.GetSection("CrystalPort").Value != null?Convert.ToInt16(config.GetSection("CrystalPort").Value) : 81; DifusionCredential credential = new DifusionCredential(user, pass, ""); ILogger <ICrystalDifusionConnectionBase> logger = loggerFactory.CreateLogger <ICrystalDifusionConnectionBase>(); ILogger <CrystalDifusionConnectionEvents> loggerConn = loggerFactory.CreateLogger <CrystalDifusionConnectionEvents>(); ListCircular <string> listCircular = new ListCircular <string>(); listCircular.Add(host); ICrystalDifusionConnectionBase conn = new CrystalDifusionConnectionBase(new Streaming.Crystal.Connection.Manager.CrystalAddress(listCircular, port), logger); connEvent = new CrystalDifusionConnectionEvents(conn, new DirectNoficationMessage(postmanThread), loggerConn, "1", credential, new CrystalConnectionStatistics()); return(conn); }
private void LoadConnections(DifusionCredential credential, int qtdConnections, int port) { connections = new ConcurrentQueue <ICrystalConnection>(); for (var i = 0; i < qtdConnections; i++) { ICrystalDifusionConnectionBase connBase = new CrystalDifusionConnectionBase(CreateCrystalAddress(port), loggerFactory.CreateLogger <ICrystalDifusionConnectionBase>()); CrystalDifusionConnectionEvents conn = new CrystalDifusionConnectionEvents(connBase, messageHandle, loggerFactory.CreateLogger <CrystalDifusionConnectionEvents>(), "CrystalConnection " + (i + 1), credential, new CrystalConnectionStatistics()); connections.Enqueue(conn); conn.Connect(); } }