/// <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);
 }