Example #1
0
        /// <summary>
        /// Activates sources of the time source and provides an object that deactivates them on dispose.
        /// </summary>
        protected IDisposable ObtainSourceActiveState()
        {
            using (sync.HighPriority)
            {
                foreach (var slave in handles.All)
                {
                    slave.SourceSideActive = true;
                    slave.RequestStart();
                }
            }

            var result = new DisposableWrapper();

            result.RegisterDisposeAction(() =>
            {
                using (sync.HighPriority)
                {
                    foreach (var slave in handles.All)
                    {
                        slave.SourceSideActive = false;
                    }
                }
            });
            return(result);
        }
        public static IDisposable ObtainSinkInactiveState(this ITimeSink @this)
        {
            var result = new DisposableWrapper();

            @this.TimeHandle.SinkSideActive = false;
            result.RegisterDisposeAction(() => @this.TimeHandle.SinkSideActive = true);
            return(result);
        }
Example #3
0
        public static IDisposable TraceRegion(this object o, string message     = null,
                                              [CallerLineNumber] int lineNumber = 0,
                                              [CallerMemberName] string caller  = null,
                                              [CallerFilePath] string fileName  = null)
        {
            var result = new DisposableWrapper();

            Trace(o, $"Entering: {message}", lineNumber, caller, fileName);
            result.RegisterDisposeAction(() => Trace(o, $"Leaving: {message}. Entered", lineNumber, caller, fileName));
            return(result);
        }