private async Task <bool> RegisterInDiscoveryAsync(string correlationId, ConnectionParams connection) { if (!connection.UseDiscovery) { return(false); } var key = connection.DiscoveryKey; if (_references == null) { return(false); } var discoveries = _references.GetOptional <IDiscovery>(new Descriptor("*", "discovery", "*", "*", "*")); if (discoveries == null) { return(false); } foreach (var discovery in discoveries) { await discovery.RegisterAsync(correlationId, key, connection); } return(true); }
/// <summary> /// Sets references to dependent components. /// </summary> /// <param name="references">references to locate the component dependencies.</param> public virtual void SetReferences(IReferences references) { var counters = references.GetOptional <ICounters>(new Descriptor(null, "counters", null, null, null)); foreach (var counter in counters) { if (counter != this) { _counters.Add(counter); } } }
/// <summary> /// Sets the references. /// </summary> /// <param name="references">The references.</param> public void SetReferences(IReferences references) { var loggers = references.GetOptional <ILogger>(new Descriptor(null, "logger", null, null, null)); foreach (var logger in loggers) { if (logger != this) { _loggers.Add(logger); } } }
/// <summary> /// Sets references to dependent components. /// </summary> /// <param name="references">references to locate the component dependencies. </param> public void SetReferences(IReferences references) { var tracers = references.GetOptional <ITracer>(new Descriptor(null, "tracer", null, null, null)); for (int i = 0; i < tracers.Count; i++) { var tracer = tracers[i]; if (tracer != this) { _tracers.Add(tracer); } } }
private async Task <CredentialParams> LookupInStoresAsync(string correlationId, CredentialParams credential) { if (credential.UseCredentialStore == false) { return(null); } var key = credential.StoreKey; if (_references == null) { return(null); } var components = _references.GetOptional(new Descriptor("*", "credential_store", "*", "*", "*")); if (components.Count == 0) { throw new ReferenceException(correlationId, "Credential store wasn't found to make lookup"); } foreach (var component in components) { var store = component as ICredentialStore; if (store != null) { var resolvedCredential = await store.LookupAsync(correlationId, key); if (resolvedCredential != null) { return(resolvedCredential); } } } return(null); }
/// <summary> /// Gets all optional dependencies by their name. /// </summary> /// <param name="name">the dependency name to locate.</param> /// <returns>a list with found dependencies or empty list of no dependencies was found.</returns> public List <object> GetOptional(string name) { object locator = Locate(name); return(locator != null?_references.GetOptional(locator) : null); }