/// <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); }
public DefaultDAppChainClientCallExecutor(DAppChainClientConfiguration configuration) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } this.configuration = configuration; }
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 }); }
/// <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); }
/// <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; } }
public DAppChainClientBuilder WithConfiguration(DAppChainClientConfiguration configuration) { this.configuration = configuration; return(this); }