private Task <byte[]> OnListen(MethodCall call)
 {
     if (_activeSink != null)
     {
         try
         {
             _handler.OnCancel(null);
         }
         catch (Exception e)
         {
             TizenLog.Error($"{_channel.Name}: Failed to close existing event stream. {e.Message}");
         }
     }
     try
     {
         _activeSink = new EventSinkImpl(this);
         _handler.OnListen(call.Arguments, _activeSink);
         return(Task.FromResult(_channel.Codec.EncodeSuccessEnvelope(null)));
     }
     catch (Exception e)
     {
         _activeSink = null;
         TizenLog.Error($"{_channel.Name}: Failed to open event stream. {e.Message}");
         return(Task.FromResult(_channel.Codec.EncodeErrorEnvelope("error", e.Message, null)));
     }
 }
Esempio n. 2
0
        public override void Run(string[] args)
        {
            // Log any unhandled exception.
            AppDomain.CurrentDomain.UnhandledException += (s, e) =>
            {
                var exception = e.ExceptionObject as Exception;
                TizenLog.Error($"Unhandled exception: {exception}");
            };

            base.Run(args);
        }
 private Task <byte[]> OnCancel(MethodCall call)
 {
     if (_activeSink != null)
     {
         try
         {
             _handler.OnCancel(call.Arguments);
             return(Task.FromResult(_channel.Codec.EncodeSuccessEnvelope(null)));
         }
         catch (Exception e)
         {
             TizenLog.Error($"{_channel.Name}: Failed to close event stream. {e.Message}");
             return(Task.FromResult(_channel.Codec.EncodeErrorEnvelope("error", e.Message, null)));
         }
     }
     else
     {
         return(Task.FromResult(_channel.Codec.EncodeErrorEnvelope("error", "No active stream to cancel.", null)));
     }
 }