Beispiel #1
0
 public SocketServer(ILogger logger, IStateRequestRouter stateRequestRouter, IConnectionRegistry connectionRegistry, IQueryResolver queryResolver)
 {
     _queryResolver      = queryResolver;
     _logger             = logger;
     _stateRequestRouter = stateRequestRouter;
     _connectionRegistry = connectionRegistry;
 }
 public ModuleToModuleMessageHandler(IConnectionRegistry connectionRegistry, IIdentityProvider identityProvider, ModuleToModuleResponseTimeout responseTimeout)
     : base(connectionRegistry)
 {
     this.identityProvider   = Preconditions.CheckNotNull(identityProvider);
     this.tokenCleanupPeriod = responseTimeout;
     this.timer = new Timer(this.CleanTokens, null, responseTimeout, responseTimeout);
 }
        public SubscriptionChangeHandler(
            ICloud2DeviceMessageHandler cloud2DeviceMessageHandler,
            IModuleToModuleMessageHandler moduleToModuleMessageHandler,
            IDirectMethodHandler directMethodHandler,
            ITwinHandler twinHandler,
            IConnectionRegistry connectionRegistry,
            IIdentityProvider identityProvider)
        {
            Preconditions.CheckNotNull(cloud2DeviceMessageHandler);
            Preconditions.CheckNotNull(moduleToModuleMessageHandler);
            Preconditions.CheckNotNull(directMethodHandler);
            Preconditions.CheckNotNull(twinHandler);

            this.connectionRegistry = Preconditions.CheckNotNull(connectionRegistry);
            this.identityProvider   = Preconditions.CheckNotNull(identityProvider);

            this.subscriptionPatterns = new List <SubscriptionPattern>();
            this.subscriptionPatterns.AddRange(Preconditions.CheckNotNull(cloud2DeviceMessageHandler.WatchedSubscriptions));
            this.subscriptionPatterns.AddRange(Preconditions.CheckNotNull(moduleToModuleMessageHandler.WatchedSubscriptions));
            this.subscriptionPatterns.AddRange(Preconditions.CheckNotNull(directMethodHandler.WatchedSubscriptions));
            this.subscriptionPatterns.AddRange(Preconditions.CheckNotNull(twinHandler.WatchedSubscriptions));

            // Later we need all possible subscriptions in use, but don't want to recalculate every time, so
            // store it now.
            this.allSubscriptions = this.subscriptionPatterns.Select(s => s.Subscription).Distinct().ToArray();
        }
Beispiel #4
0
        public DeviceProxy(
            IIdentity identity,
            bool isDirectClient,
            IConnectionRegistry connectionRegistry,
            ITwinHandler twinHandler,
            IModuleToModuleMessageHandler moduleToModuleMessageHandler,
            ICloud2DeviceMessageHandler cloud2DeviceMessageHandler,
            IDirectMethodHandler directMethodHandler)
        {
            this.Identity                     = Preconditions.CheckNotNull(identity);
            this.connectionRegistry           = Preconditions.CheckNotNull(connectionRegistry);
            this.twinHandler                  = Preconditions.CheckNotNull(twinHandler);
            this.moduleToModuleMessageHandler = Preconditions.CheckNotNull(moduleToModuleMessageHandler);
            this.cloud2DeviceMessageHandler   = Preconditions.CheckNotNull(cloud2DeviceMessageHandler);
            this.directMethodHandler          = Preconditions.CheckNotNull(directMethodHandler);
            this.isActive                     = new AtomicBoolean(true);
            this.IsDirectClient               = isDirectClient;

            // when a child edge device connects, it uses $edgeHub identity.
            // Although it is a direct client, it uses the indirect topics
            if (identity is ModuleIdentity moduleIdentity)
            {
                if (string.Equals(moduleIdentity.ModuleId, Constants.EdgeHubModuleId))
                {
                    this.IsDirectClient = false;
                }
            }

            Events.Created(this.Identity);
        }
 protected PacketHandler(INetworkBootstrap networkBootstrap, IPacketHandlerRegistry packetHandlerRegistry,
                         IConnectionRegistry connectionRegistry, IConnection connection)
 {
     NetworkBootstrap      = networkBootstrap;
     PacketHandlerRegistry = packetHandlerRegistry;
     ConnectionRegistry    = connectionRegistry;
     Connection            = connection;
 }
Beispiel #6
0
 protected PacketInboundHandler(INetworkBootstrap networkBootstrap, IPacketRegistry packetRegistry,
                                IConnectionRegistry connectionRegistry, IPacketHandlerRegistry packetHandlerRegistry)
 {
     _networkBootstrap      = networkBootstrap ?? throw new ArgumentNullException(nameof(networkBootstrap));
     _packetRegistry        = packetRegistry ?? throw new ArgumentNullException(nameof(packetRegistry));
     _connectionRegistry    = connectionRegistry ?? throw new ArgumentNullException(nameof(connectionRegistry));
     _packetHandlerRegistry =
         packetHandlerRegistry ?? throw new ArgumentNullException(nameof(packetHandlerRegistry));
 }
 public DefaultBootstrap(BootstrapTypeEnum bootstrapType, TimeSpan packetHandlerTickingInterval,
                         IConnectionRegistry connectionRegistry       = null,
                         IPacketRegistry packetRegistry               = null,
                         IPacketHandlerRegistry packetHandlerRegistry = null, Type inboundHandlerType = null)
 {
     _inboundHandlerType = inboundHandlerType ?? typeof(DefaultPacketInboundHandler);
     if (!typeof(PacketInboundHandler).IsAssignableFrom(_inboundHandlerType))
     {
         throw new ArgumentException(
                   $"{_inboundHandlerType.FullName} is not assignable from {typeof(PacketInboundHandler).FullName}");
     }
     BootstrapType = bootstrapType;
     _packetHandlerTickingInterval = packetHandlerTickingInterval.TotalMilliseconds;
     ConnectionRegistry            = connectionRegistry ?? new DefaultConnectionRegistry();
     PacketRegistry        = packetRegistry ?? new DefaultPacketRegistry();
     PacketHandlerRegistry = packetHandlerRegistry ?? new DefaultPacketHandlerRegistry(this, ConnectionRegistry);
 }
Beispiel #8
0
        public DeviceProxy(
            IIdentity identity,
            IConnectionRegistry connectionRegistry,
            ITwinHandler twinHandler,
            IModuleToModuleMessageHandler moduleToModuleMessageHandler,
            ICloud2DeviceMessageHandler cloud2DeviceMessageHandler,
            IDirectMethodHandler directMethodHandler)
        {
            this.Identity                     = Preconditions.CheckNotNull(identity);
            this.connectionRegistry           = Preconditions.CheckNotNull(connectionRegistry);
            this.twinHandler                  = Preconditions.CheckNotNull(twinHandler);
            this.moduleToModuleMessageHandler = Preconditions.CheckNotNull(moduleToModuleMessageHandler);
            this.cloud2DeviceMessageHandler   = Preconditions.CheckNotNull(cloud2DeviceMessageHandler);
            this.directMethodHandler          = Preconditions.CheckNotNull(directMethodHandler);
            this.isActive                     = new AtomicBoolean(true);

            Events.Created(this.Identity);
        }
Beispiel #9
0
        public SubscriptionChangeHandler(
            ICloud2DeviceMessageHandler cloud2DeviceMessageHandler,
            IModuleToModuleMessageHandler moduleToModuleMessageHandler,
            IDirectMethodHandler directMethodHandler,
            ITwinHandler twinHandler,
            IConnectionRegistry connectionRegistry,
            IIdentityProvider identityProvider)
        {
            Preconditions.CheckNotNull(cloud2DeviceMessageHandler);
            Preconditions.CheckNotNull(moduleToModuleMessageHandler);
            Preconditions.CheckNotNull(directMethodHandler);
            Preconditions.CheckNotNull(twinHandler);

            this.connectionRegistry = Preconditions.CheckNotNull(connectionRegistry);
            this.identityProvider   = Preconditions.CheckNotNull(identityProvider);

            this.subscriptionPatterns = new List <SubscriptionPattern>();
            this.subscriptionPatterns.AddRange(Preconditions.CheckNotNull(cloud2DeviceMessageHandler.WatchedSubscriptions));
            this.subscriptionPatterns.AddRange(Preconditions.CheckNotNull(moduleToModuleMessageHandler.WatchedSubscriptions));
            this.subscriptionPatterns.AddRange(Preconditions.CheckNotNull(directMethodHandler.WatchedSubscriptions));
            this.subscriptionPatterns.AddRange(Preconditions.CheckNotNull(twinHandler.WatchedSubscriptions));
        }
 public Cloud2DeviceMessageHandler(IConnectionRegistry connectionRegistry)
     : base(connectionRegistry)
 {
 }
 public MessageConfirmingHandler(IConnectionRegistry connectionRegistry) => this.connectionRegistry = connectionRegistry;
Beispiel #12
0
 public DirectMethodHandler(IConnectionRegistry connectionRegistry, IIdentityProvider identityProvider)
 {
     this.connectionRegistry = Preconditions.CheckNotNull(connectionRegistry);
     this.identityProvider = Preconditions.CheckNotNull(identityProvider);
 }
Beispiel #13
0
 public ModuleToModuleMessageHandler(IConnectionRegistry connectionRegistry, IIdentityProvider identityProvider)
     : base(connectionRegistry)
 {
     this.identityProvider = Preconditions.CheckNotNull(identityProvider);
 }
Beispiel #14
0
 public ModuleToModuleMessageHandler(IConnectionRegistry connectionRegistry)
     : base(connectionRegistry)
 {
 }
 public DefaultPacketInboundHandler(INetworkBootstrap networkBootstrap, IPacketRegistry packetRegistry,
                                    IConnectionRegistry connectionRegistry, IPacketHandlerRegistry packetHandlerRegistry) : base(
         networkBootstrap, packetRegistry, connectionRegistry, packetHandlerRegistry)
 {
 }
Beispiel #16
0
 public PacketHandler(INetworkBootstrap networkBootstrap, IPacketHandlerRegistry packetHandlerRegistry,
                      IConnectionRegistry connectionRegistry, IConnection connection) : base(networkBootstrap,
                                                                                             packetHandlerRegistry, connectionRegistry, connection)
 {
 }
Beispiel #17
0
 public DefaultPacketHandlerRegistry(INetworkBootstrap networkBootstrap, IConnectionRegistry connectionRegistry)
 {
     _networkBootstrap   = networkBootstrap;
     _connectionRegistry = connectionRegistry;
 }