/// <summary> /// Initializes a new instance. /// </summary> /// <param name="nodes"></param> /// <param name="store"></param> /// <param name="invoker"></param> /// <param name="logger"></param> public KValueAccessor(IKStore <TNodeId> store, IKLookup <TNodeId> nodes, IKInvoker <TNodeId> invoker, ILogger logger) { this.store = store ?? throw new ArgumentNullException(nameof(store)); this.lookup = nodes ?? throw new ArgumentNullException(nameof(nodes)); this.invoker = invoker ?? throw new ArgumentNullException(nameof(invoker)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
/// <summary> /// Initializes a new instance. /// </summary> /// <param name="host"></param> /// <param name="invoker"></param> /// <param name="logger"></param> /// <param name="k"></param> public KBucket(IKHost <TNodeId> host, IKInvoker <TNodeId> invoker, ILogger logger, int k) { this.host = host ?? throw new ArgumentNullException(nameof(host)); this.invoker = invoker ?? throw new ArgumentNullException(nameof(invoker)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); this.k = k; }
/// <summary> /// Initializes a new instance. /// </summary> /// <param name="host"></param> /// <param name="router"></param> /// <param name="invoker"></param> /// <param name="lookup"></param> /// <param name="logger"></param> public KConnector(IKHost <TNodeId> host, IKRouter <TNodeId> router, IKInvoker <TNodeId> invoker, IKLookup <TNodeId> lookup, ILogger logger) { this.host = host ?? throw new ArgumentNullException(nameof(host)); this.router = router ?? throw new ArgumentNullException(nameof(router)); this.invoker = invoker ?? throw new ArgumentNullException(nameof(invoker)); this.lookup = lookup ?? throw new ArgumentNullException(nameof(lookup)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
/// <summary> /// Initializes a new instance. /// </summary> /// <param name="options"></param> /// <param name="host"></param> /// <param name="invoker"></param> /// <param name="logger"></param> public KFixedTableRouter(IOptions <KFixedTableRouterOptions> options, IKHost <TNodeId> host, IKInvoker <TNodeId> invoker, ILogger logger) { this.options = options ?? throw new ArgumentNullException(nameof(options)); this.host = host ?? throw new ArgumentNullException(nameof(host)); this.logger = logger ?? throw new ArgumentNullException(nameof(logger)); logger.LogInformation("Initializing Fixed Table Router with {NodeId}.", host.SelfId); buckets = new KBucket <TNodeId> [Unsafe.SizeOf <TNodeId>() * 8]; for (var i = 0; i < buckets.Length; i++) { buckets[i] = new KBucket <TNodeId>(host, invoker, logger, options.Value.K); } }