コード例 #1
0
        /// <summary>
        /// Constructs a client to read & write data from/to a Loom DAppChain.
        /// </summary>
        /// <param name="writeClient">RPC client to use for submitting transactions.</param>
        /// <param name="readClient">RPC client to use for querying DAppChain state.</param>
        /// <param name="configuration">Client configuration structure.</param>
        /// <param name="callExecutor">Blockchain call execution flow controller.</param>
        public DAppChainClient(IRpcClient writeClient, IRpcClient readClient, DAppChainClientConfiguration configuration = null, IDAppChainClientCallExecutor callExecutor = null)
        {
            this.writeClient = writeClient;
            this.readClient  = readClient;

            this.Configuration = configuration ?? new DAppChainClientConfiguration();
            this.CallExecutor  = callExecutor ?? new DefaultDAppChainClientCallExecutor(this);
        }
コード例 #2
0
        public DefaultDAppChainClientCallExecutor(DAppChainClientConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            this.configuration = configuration;
        }
コード例 #3
0
        public DAppChainClient Create()
        {
            DAppChainClientConfiguration configuration = this.configuration ?? new DAppChainClientConfiguration();
            IDAppChainClientCallExecutor callExecutor  = this.callExecutor ?? new DefaultDAppChainClientCallExecutor(this.configuration);

            return(new DAppChainClient(this.writer, this.reader, configuration, callExecutor)
            {
                TxMiddleware = this.txMiddleware,
                Logger = this.logger ?? NullLogger.Instance
            });
        }
コード例 #4
0
        /// <summary>
        /// Constructs a client to read & write data from/to a Loom DAppChain.
        /// </summary>
        /// <param name="writeClient">RPC client to use for submitting transactions.</param>
        /// <param name="readClient">RPC client to use for querying DAppChain state.</param>
        /// <param name="configuration">Client configuration structure.</param>
        /// <param name="callExecutor">Blockchain call execution flow controller.</param>
        public DAppChainClient(IRpcClient writeClient, IRpcClient readClient, DAppChainClientConfiguration configuration = null, IDAppChainClientCallExecutor callExecutor = null)
        {
            if (writeClient == null && readClient == null)
            {
                throw new ArgumentException("Both write and read clients can't be null");
            }

            this.writeClient = writeClient;
            this.readClient  = readClient;

            this.Configuration = configuration ?? new DAppChainClientConfiguration();
            this.CallExecutor  = callExecutor ?? new DefaultDAppChainClientCallExecutor(this);
        }
コード例 #5
0
        /// <summary>
        /// Constructs a client to read & write data from/to a Loom DAppChain.
        /// </summary>
        /// <param name="writeClient">RPC client to use for submitting transactions.</param>
        /// <param name="readClient">RPC client to use for querying DAppChain state.</param>
        /// <param name="configuration">Client configuration structure.</param>
        /// <param name="callExecutor">Blockchain call execution flow controller.</param>
        public DAppChainClient(
            IRpcClient writeClient,
            IRpcClient readClient,
            DAppChainClientConfiguration configuration = null,
            IDAppChainClientCallExecutor callExecutor  = null)
        {
            if (writeClient == null && readClient == null)
            {
                throw new ArgumentException("Both write and read clients can't be null");
            }

            this.writeClient = writeClient;
            this.readClient  = readClient;

            this.Configuration = configuration ?? new DAppChainClientConfiguration();
            this.CallExecutor  = callExecutor ?? new DefaultDAppChainClientCallExecutor(this.Configuration);

            if (this.readClient != null)
            {
                this.readClient.EventReceived          += ReadClientOnEventReceived;
                this.readClient.ConnectionStateChanged += ReadClientOnConnectionStateChanged;
            }
        }
コード例 #6
0
 public DAppChainClientBuilder WithConfiguration(DAppChainClientConfiguration configuration)
 {
     this.configuration = configuration;
     return(this);
 }