コード例 #1
0
        public static async Task <CloudConnection> Create(
            IIdentity identity,
            Action <string, CloudConnectionStatus> connectionStatusChangedHandler,
            ITransportSettings[] transportSettings,
            IMessageConverterProvider messageConverterProvider,
            IClientProvider clientProvider,
            ICloudListener cloudListener,
            ITokenProvider tokenProvider,
            TimeSpan idleTimeout,
            bool closeOnIdleTimeout,
            TimeSpan operationTimeout)
        {
            Preconditions.CheckNotNull(tokenProvider, nameof(tokenProvider));
            var cloudConnection = new CloudConnection(
                identity,
                connectionStatusChangedHandler,
                transportSettings,
                messageConverterProvider,
                clientProvider,
                cloudListener,
                idleTimeout,
                closeOnIdleTimeout,
                operationTimeout);
            ICloudProxy cloudProxy = await cloudConnection.CreateNewCloudProxyAsync(tokenProvider);

            cloudConnection.cloudProxy = Option.Some(cloudProxy);
            return(cloudConnection);
        }
コード例 #2
0
 public DesiredPropertyUpdateHandler(
     ICloudListener listener,
     IMessageConverter <TwinCollection> converter)
 {
     this.listener  = listener;
     this.converter = converter;
 }
コード例 #3
0
 ClientTokenCloudConnection(
     IIdentity identity,
     Action <string, CloudConnectionStatus> connectionStatusChangedHandler,
     ITransportSettings[] transportSettings,
     IMessageConverterProvider messageConverterProvider,
     IClientProvider clientProvider,
     ICloudListener cloudListener,
     TimeSpan idleTimeout,
     bool closeOnIdleTimeout,
     TimeSpan operationTimeout,
     string productInfo,
     Option <string> modelId)
     : base(
         identity,
         connectionStatusChangedHandler,
         transportSettings,
         messageConverterProvider,
         clientProvider,
         cloudListener,
         idleTimeout,
         closeOnIdleTimeout,
         operationTimeout,
         productInfo,
         modelId)
 {
 }
コード例 #4
0
ファイル: CloudConnection.cs プロジェクト: nlcamp/iotedge
 protected CloudConnection(
     IIdentity identity,
     Action <string, CloudConnectionStatus> connectionStatusChangedHandler,
     ITransportSettings[] transportSettings,
     IMessageConverterProvider messageConverterProvider,
     IClientProvider clientProvider,
     ICloudListener cloudListener,
     TimeSpan idleTimeout,
     bool closeOnIdleTimeout,
     TimeSpan operationTimeout,
     string productInfo,
     Option <string> modelId)
 {
     this.Identity = Preconditions.CheckNotNull(identity, nameof(identity));
     this.ConnectionStatusChangedHandler = connectionStatusChangedHandler;
     this.transportSettingsList          = Preconditions.CheckNotNull(transportSettings, nameof(transportSettings));
     this.messageConverterProvider       = Preconditions.CheckNotNull(messageConverterProvider, nameof(messageConverterProvider));
     this.clientProvider     = Preconditions.CheckNotNull(clientProvider, nameof(clientProvider));
     this.cloudListener      = Preconditions.CheckNotNull(cloudListener, nameof(cloudListener));
     this.idleTimeout        = idleTimeout;
     this.closeOnIdleTimeout = closeOnIdleTimeout;
     this.cloudProxy         = Option.None <ICloudProxy>();
     this.operationTimeout   = operationTimeout;
     this.productInfo        = productInfo;
     this.modelId            = modelId;
 }
コード例 #5
0
ファイル: CloudProxy.cs プロジェクト: TerryWarwick/iotedge
            public CloudReceiver(CloudProxy cloudProxy, ICloudListener cloudListener)
            {
                this.cloudProxy    = Preconditions.CheckNotNull(cloudProxy, nameof(cloudProxy));
                this.cloudListener = Preconditions.CheckNotNull(cloudListener, nameof(cloudListener));
                IMessageConverter <TwinCollection> converter = cloudProxy.messageConverterProvider.Get <TwinCollection>();

                this.desiredUpdateHandler = new DesiredPropertyUpdateHandler(cloudListener, converter, cloudProxy);
            }
コード例 #6
0
ファイル: CloudConnection.cs プロジェクト: danbruder/iotedge
 public CloudConnection(Action <string, CloudConnectionStatus> connectionStatusChangedHandler,
                        ITransportSettings[] transportSettings,
                        IMessageConverterProvider messageConverterProvider,
                        IClientProvider clientProvider,
                        ICloudListener cloudListener)
 {
     this.connectionStatusChangedHandler = connectionStatusChangedHandler;
     this.transportSettingsList          = Preconditions.CheckNotNull(transportSettings, nameof(transportSettings));
     this.messageConverterProvider       = Preconditions.CheckNotNull(messageConverterProvider, nameof(messageConverterProvider));
     this.tokenGetter    = Option.None <TaskCompletionSource <string> >();
     this.clientProvider = Preconditions.CheckNotNull(clientProvider, nameof(clientProvider));
     this.cloudListener  = Preconditions.CheckNotNull(cloudListener, nameof(cloudListener));
 }
コード例 #7
0
ファイル: CloudProxy.cs プロジェクト: danbruder/iotedge
        public CloudProxy(IClient client,
                          IMessageConverterProvider messageConverterProvider,
                          string clientId,
                          Action <string, CloudConnectionStatus> connectionStatusChangedHandler,
                          ICloudListener cloudListener)
        {
            this.client = Preconditions.CheckNotNull(client, nameof(client));
            this.messageConverterProvider = Preconditions.CheckNotNull(messageConverterProvider, nameof(messageConverterProvider));
            this.clientId      = Preconditions.CheckNonWhiteSpace(clientId, nameof(clientId));
            this.cloudReceiver = new CloudReceiver(this, Preconditions.CheckNotNull(cloudListener, nameof(cloudListener)));

            if (connectionStatusChangedHandler != null)
            {
                this.connectionStatusChangedHandler = connectionStatusChangedHandler;
            }
        }
コード例 #8
0
 public CloudProxy(IClient client,
                   IMessageConverterProvider messageConverterProvider,
                   string clientId,
                   Action <string, CloudConnectionStatus> connectionStatusChangedHandler,
                   ICloudListener cloudListener,
                   TimeSpan idleTimeout)
 {
     this.client = Preconditions.CheckNotNull(client, nameof(client));
     this.messageConverterProvider = Preconditions.CheckNotNull(messageConverterProvider, nameof(messageConverterProvider));
     this.clientId       = Preconditions.CheckNonWhiteSpace(clientId, nameof(clientId));
     this.cloudReceiver  = new CloudReceiver(this, Preconditions.CheckNotNull(cloudListener, nameof(cloudListener)));
     this.timer          = new Timer(idleTimeout.TotalMilliseconds);
     this.timer.Elapsed += this.HandleIdleTimeout;
     this.timer.Start();
     if (connectionStatusChangedHandler != null)
     {
         this.connectionStatusChangedHandler = connectionStatusChangedHandler;
     }
 }
コード例 #9
0
 public CloudConnection(Action <string, CloudConnectionStatus> connectionStatusChangedHandler,
                        ITransportSettings[] transportSettings,
                        IMessageConverterProvider messageConverterProvider,
                        IClientProvider clientProvider,
                        ICloudListener cloudListener,
                        ITokenProvider edgeHubTokenProvider,
                        IDeviceScopeIdentitiesCache deviceScopeIdentitiesCache,
                        TimeSpan idleTimeout)
 {
     this.connectionStatusChangedHandler = connectionStatusChangedHandler;
     this.transportSettingsList          = Preconditions.CheckNotNull(transportSettings, nameof(transportSettings));
     this.messageConverterProvider       = Preconditions.CheckNotNull(messageConverterProvider, nameof(messageConverterProvider));
     this.tokenGetter                = Option.None <TaskCompletionSource <string> >();
     this.clientProvider             = Preconditions.CheckNotNull(clientProvider, nameof(clientProvider));
     this.cloudListener              = Preconditions.CheckNotNull(cloudListener, nameof(cloudListener));
     this.idleTimeout                = idleTimeout;
     this.edgeHubTokenProvider       = Preconditions.CheckNotNull(edgeHubTokenProvider, nameof(edgeHubTokenProvider));
     this.deviceScopeIdentitiesCache = Preconditions.CheckNotNull(deviceScopeIdentitiesCache, nameof(deviceScopeIdentitiesCache));
 }
コード例 #10
0
ファイル: CloudProxy.cs プロジェクト: rdivossen/iotedge
 public CloudProxy(IClient client,
                   IMessageConverterProvider messageConverterProvider,
                   string clientId,
                   Action <string, CloudConnectionStatus> connectionStatusChangedHandler,
                   ICloudListener cloudListener,
                   TimeSpan idleTimeout,
                   bool closeOnIdleTimeout)
 {
     this.client = Preconditions.CheckNotNull(client, nameof(client));
     this.messageConverterProvider = Preconditions.CheckNotNull(messageConverterProvider, nameof(messageConverterProvider));
     this.clientId      = Preconditions.CheckNonWhiteSpace(clientId, nameof(clientId));
     this.cloudReceiver = new CloudReceiver(this, Preconditions.CheckNotNull(cloudListener, nameof(cloudListener)));
     this.timer         = new ResettableTimer(this.HandleIdleTimeout, idleTimeout, Events.Log, true);
     this.timer.Start();
     this.closeOnIdleTimeout = closeOnIdleTimeout;
     if (connectionStatusChangedHandler != null)
     {
         this.connectionStatusChangedHandler = connectionStatusChangedHandler;
     }
     Events.Initialized(this);
 }
コード例 #11
0
ファイル: CloudProxy.cs プロジェクト: yphuangms/iotedge
 public void BindCloudListener(ICloudListener cloudListener)
 {
     this.cloudReceiver = new CloudReceiver(this, cloudListener);
     Events.BindCloudListener(this);
 }