/// <summary> /// Service start method /// </summary> protected override void Start() { if (_state == null) { _state = new IpCameraState(); } _utilitiesPort = DsspHttpUtilitiesService.Create(Environment); Uri httpAlias = ServiceInfo.HttpServiceAlias; if (httpAlias != null) { _prefix = httpAlias.AbsolutePath; _alternatePrefix = AlternateContractServiceInfo[0].HttpServiceAlias.AbsolutePath; } else { LogError(LogGroups.Activation, "Service requires HTTP transport"); DefaultDropHandler(new DsspDefaultDrop()); return; } base.Start(); MainPortInterleave.CombineWith( new Interleave( new ExclusiveReceiverGroup( Arbiter.Receive <Bitmap>(true, _imagePort, ImageHandler) ), new ConcurrentReceiverGroup( Arbiter.Receive <DateTime>(true, _imagePort, GetImageHandler) ) ) ); _imagePort.Post(DateTime.UtcNow); }
public void ReplaceHandler(Replace replace) { _state = replace.Body; replace.ResponsePort.Post(DefaultReplaceResponseType.Instance); }