/// <summary> /// Invoke this method before calling Execute(), to initialize the actor /// with details like the device model and message type to simulate. /// SetupAsync() should be called only once. /// </summary> public async Task SetupAsync( string deviceId, DeviceModel deviceModel, IDeviceStateActor deviceStateActor, ConnectionLoopSettings loopSettings) { if (this.status != ActorStatus.None) { this.log.Error("The actor is already initialized", () => new { CurrentDeviceId = this.deviceId, NewDeviceModelName = deviceModel.Name }); throw new DeviceActorAlreadyInitializedException(); } this.deviceModel = deviceModel; this.deviceId = deviceId; this.deviceStateActor = deviceStateActor; this.loopSettings = loopSettings; await this.credentialsSetupLogic.SetupAsync(this, this.deviceId, this.deviceModel); await this.fetchFromRegistryLogic.SetupAsync(this, this.deviceId, this.deviceModel); await this.registerLogic.SetupAsync(this, this.deviceId, this.deviceModel); await this.connectLogic.SetupAsync(this, this.deviceId, this.deviceModel); await this.deregisterLogic.SetupAsync(this, this.deviceId, this.deviceModel); await this.disconnectLogic.SetupAsync(this, this.deviceId, this.deviceModel); this.actorLogger.Init(deviceId, "Connection"); this.status = ActorStatus.ReadyToStart; }
/// <summary> /// Invoke this method before calling Execute(), to initialize the actor /// with details like the device id. SetupAsync() should be called only once. /// </summary> public void Setup( string deviceId, IDeviceStateActor deviceStateActor, IDeviceConnectionActor deviceConnectionActor, PropertiesLoopSettings loopSettings) { if (this.status != ActorStatus.None) { this.log.Error("The actor is already initialized", () => new { CurrentDeviceId = this.deviceId }); throw new DeviceActorAlreadyInitializedException(); } this.deviceId = deviceId; this.deviceStateActor = deviceStateActor; this.deviceConnectionActor = deviceConnectionActor; this.loopSettings = loopSettings; this.updatePropertiesLogic.Setup(this, this.deviceId); this.deviceSetDeviceTagLogic.Setup(this, this.deviceId); this.updatePropertiesLogic.Setup(this, this.deviceId); this.actorLogger.Setup(deviceId, "Properties"); this.status = ActorStatus.ReadyToStart; }
public DeviceConnectionActor( ILogger logger, IActorsLogger actorLogger, IRateLimiting rateLimiting, CredentialsSetup credentialsSetupLogic, FetchFromRegistry fetchFromRegistryLogic, Register registerLogic, Connect connectLogic, Deregister deregisterLogic, Disconnect disconnectLogic) { this.log = logger; this.actorLogger = actorLogger; this.rateLimiting = rateLimiting; this.credentialsSetupLogic = credentialsSetupLogic; this.fetchFromRegistryLogic = fetchFromRegistryLogic; this.registerLogic = registerLogic; this.connectLogic = connectLogic; this.deregisterLogic = deregisterLogic; this.disconnectLogic = disconnectLogic; this.Message = null; this.Client = null; this.Device = null; this.status = ActorStatus.None; this.deviceModel = null; this.deviceId = null; this.deviceStateActor = null; this.failedDeviceConnectionsCount = 0; this.failedRegistrationsCount = 0; this.failedFetchCount = 0; }
/// <summary> /// Invoke this method before calling Execute(), to initialize the actor /// with details like the device model and message type to simulate. /// Setup() should be called only once. /// </summary> public void Setup( string deviceId, DeviceModel deviceModel, DeviceModel.DeviceModelMessage message, IDeviceStateActor deviceStateActor, IDeviceConnectionActor deviceConnectionActor) { if (this.status != ActorStatus.None) { this.log.Error("The actor is already initialized", () => new { CurrentDeviceId = this.deviceId, NewDeviceModelName = deviceModel.Name }); throw new DeviceActorAlreadyInitializedException(); } this.deviceModel = deviceModel; this.Message = message; this.deviceId = deviceId; this.deviceStateActor = deviceStateActor; this.deviceConnectionActor = deviceConnectionActor; this.sendTelemetryLogic.Setup(this, this.deviceId, this.deviceModel); this.actorLogger.Setup(deviceId, "Telemetry"); this.status = ActorStatus.ReadyToStart; }
/// <summary> /// Invoke this method before calling Execute(), to initialize the actor /// with details like the device model and message type to simulate. /// Init() should be called only once. /// </summary> public void Init( ISimulationContext simulationContext, string deviceId, DeviceModel deviceModel, IDeviceStateActor deviceStateActor, ConnectionLoopSettings loopSettings) { this.instance.InitOnce(); this.simulationContext = simulationContext; this.deviceModel = deviceModel; this.deviceId = deviceId; this.deviceStateActor = deviceStateActor; this.loopSettings = loopSettings; this.credentialsSetupLogic.Init(this, this.deviceId, this.deviceModel); this.fetchFromRegistryLogic.Init(this, this.deviceId, this.deviceModel); this.registerLogic.Init(this, this.deviceId, this.deviceModel); this.connectLogic.Init(this, this.deviceId, this.deviceModel); this.deregisterLogic.Init(this, this.deviceId, this.deviceModel); this.disconnectLogic.Init(this, this.deviceId, this.deviceModel); this.actorLogger.Init(deviceId, "Connection"); this.status = ActorStatus.ReadyToStart; this.instance.InitComplete(); }
public DeviceConnectionActor( ILogger logger, IActorsLogger actorLogger, IRateLimiting rateLimiting, Fetch fetchLogic, Register registerLogic, Connect connectLogic) { this.log = logger; this.actorLogger = actorLogger; this.rateLimiting = rateLimiting; this.fetchLogic = fetchLogic; this.registerLogic = registerLogic; this.connectLogic = connectLogic; this.Message = null; this.Client = null; this.Device = null; this.status = ActorStatus.None; this.deviceModel = null; this.deviceId = null; this.deviceStateActor = null; this.failedDeviceConnectionsCount = 0; this.failedRegistrationsCount = 0; this.failedFetchCount = 0; }
public void Init( ISimulationContext simulationContext, string deviceId, DeviceModel deviceModel, IDeviceStateActor deviceStateActor, ConnectionLoopSettings loopSettings) { // TODO: will be implemented when SimulationManager is integrated. }
/// <summary> /// Invoke this method before calling Execute(), to initialize the actor /// with details like the device id. /// </summary> public void Init( ISimulationContext simulationContext, string deviceId, IDeviceStateActor deviceStateActor, IDeviceConnectionActor deviceConnectionActor, PropertiesLoopSettings loopSettings) { this.instance.InitOnce(); this.simulationContext = simulationContext; this.deviceId = deviceId; this.deviceStateActor = deviceStateActor; this.deviceConnectionActor = deviceConnectionActor; this.updatePropertiesLogic.Init(this, this.deviceId); this.actorLogger.Init(deviceId, "Properties"); this.status = ActorStatus.ReadyToStart; this.instance.InitComplete(); }
public DeviceTelemetryActor( ILogger logger, IActorsLogger actorLogger, SendTelemetry sendTelemetryLogic, IInstance instance) { this.log = logger; this.actorLogger = actorLogger; this.sendTelemetryLogic = sendTelemetryLogic; this.instance = instance; this.Message = null; this.status = ActorStatus.None; this.deviceModel = null; this.deviceId = null; this.deviceStateActor = null; this.totalMessagesCount = 0; this.failedMessagesCount = 0; }
public DevicePropertiesActor( ILogger logger, IActorsLogger actorLogger, IRateLimiting rateLimiting, UpdateReportedProperties updatePropertiesLogic, SetDeviceTag deviceSetDeviceTagLogic) { this.log = logger; this.actorLogger = actorLogger; this.rateLimiting = rateLimiting; this.updatePropertiesLogic = updatePropertiesLogic; this.deviceSetDeviceTagLogic = deviceSetDeviceTagLogic; this.status = ActorStatus.None; this.deviceId = null; this.deviceStateActor = null; this.deviceConnectionActor = null; this.failedTwinUpdatesCount = 0; }
public DeviceTelemetryActor( ILogger logger, IActorsLogger actorLogger, IRateLimiting rateLimiting, SendTelemetry sendTelemetryLogic) { this.log = logger; this.actorLogger = actorLogger; this.rateLimiting = rateLimiting; this.sendTelemetryLogic = sendTelemetryLogic; this.Message = null; this.status = ActorStatus.None; this.deviceModel = null; this.deviceId = null; this.deviceStateActor = null; this.totalMessagesCount = 0; this.failedMessagesCount = 0; }
public DevicePropertiesActor( ILogger logger, IActorsLogger actorLogger, UpdateReportedProperties updatePropertiesLogic, SetDeviceTag deviceSetDeviceTagLogic, IInstance instance) { this.log = logger; this.actorLogger = actorLogger; this.updatePropertiesLogic = updatePropertiesLogic; this.deviceSetDeviceTagLogic = deviceSetDeviceTagLogic; this.instance = instance; this.status = ActorStatus.None; this.deviceId = null; this.deviceStateActor = null; this.deviceContext = null; this.failedTwinUpdatesCount = 0; }
/// <summary> /// Invoke this method before calling Execute(), to initialize the actor /// with details like the device model and message type to simulate. /// </summary> public void Init( ISimulationContext simulationContext, string deviceId, DeviceModel deviceModel, DeviceModel.DeviceModelMessage message, IDeviceStateActor deviceStateActor, IDeviceConnectionActor context) { this.instance.InitOnce(); this.simulationContext = simulationContext; this.deviceModel = deviceModel; this.Message = message; this.deviceId = deviceId; this.deviceStateActor = deviceStateActor; this.deviceContext = context; this.sendTelemetryLogic.Init(this, this.deviceId, this.deviceModel); this.actorLogger.Init(deviceId, "Telemetry"); this.status = ActorStatus.ReadyToStart; this.instance.InitComplete(); }