/// <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));
 }
Beispiel #2
0
 /// <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;
 }
Beispiel #3
0
 /// <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));
 }
Beispiel #4
0
        /// <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);
            }
        }