public BlobLogger(CoreReactiveEngine engine, CancellationToken token)
                    {
                        _token = token;

                        var options   = engine.Parent.Options;
                        var engineUri = engine.Parent.Uri;
                        var trace     = engine.Parent.TraceSource;

#pragma warning disable CA2000 // Dispose objects before losing scope. (See remarks in Dispose.)
                        if (options.DumpRecoveryStateBlobs && TryGetBlobLogStreamWriter(options.DumpRecoveryStatePath, engineUri, trace, out var blobLogPath, out var stream))
                        {
                            _blobLogs = new BlockingCollection <string>(new ConcurrentQueue <string>());

                            WriteBlobLogsAsync(stream, token).ContinueWith(t =>
                            {
                                if (t.IsCanceled)
                                {
                                    trace.BlobLogs_Done_Canceled(blobLogPath, engineUri);
                                }
                                else if (t.Exception != null)
                                {
                                    trace.BlobLogs_Done_Error(blobLogPath, engineUri, t.Exception);
                                }
                                else
                                {
                                    trace.BlobLogs_Done_Success(blobLogPath, engineUri);
                                }
                            }, token, TaskContinuationOptions.None, TaskScheduler.Default);
                        }
#pragma warning restore CA2000
                    }
                /// <summary>
                /// Initializes a new instance of the <see cref="StateLoader"/> class.
                /// </summary>
                /// <param name="reader">The reader.</param>
                /// <param name="engine">The engine.</param>
                public StateLoader(IStateReader reader, CoreReactiveEngine engine)
                {
                    Debug.Assert(reader != null, "Reader should not be null.");
                    Debug.Assert(engine != null, "Engine should not be null.");

                    _reader               = reader;
                    _engine               = engine;
                    _registry             = new ShadowRegistry();
                    _placeholderMitigator = new PlaceholderMitigator(engine);
                }
                /// <summary>
                /// Initializes a new instance of the <see cref="StateSaver" /> class.
                /// </summary>
                /// <param name="writer">The writer.</param>
                /// <param name="engine">The engine.</param>
                protected StateSaver(IStateWriter writer, CoreReactiveEngine engine)
                {
                    Debug.Assert(writer != null, "Reader should not be null.");
                    Debug.Assert(engine != null, "Engine should not be null.");

                    _writer   = writer;
                    _engine   = engine;
                    _registry = engine.Parent._registry;
                    _snapshot = _registry.TakeSnapshot();
                }
コード例 #4
0
 public ReliableServiceContext(CoreReactiveEngine engine)
     : base(engine.ExpressionService, new ReactiveEngine(engine))
 {
 }
 public RemoveMitigator(CoreReactiveEngine parent)
 {
     _parent = parent;
 }
 public PlaceholderMitigator(CoreReactiveEngine parent)
     : base(parent)
 {
     _parent = parent;
 }
 public FullMitigator(Action <ReactiveEntity> onRegenerate, CoreReactiveEngine engine)
     : base(engine)
 {
     _onRegenerate = onRegenerate;
 }
 public ReadOnlyMetadataProvider(CoreReactiveEngine engine)
 {
     Provider = new OperatorContextRegistryQueryProvider(engine.Registry);
 }
 private ReadOnlyMetadataServiceContext(CoreReactiveEngine engine, ReactiveEngine e)
     : base(engine.ExpressionService, e, e, new ReadOnlyMetadataProvider(engine))
 {
 }
 public ReadOnlyMetadataServiceContext(CoreReactiveEngine engine)
     : this(engine, new ReactiveEngine(engine))
 {
 }
 public AsyncReactiveEngineProvider(CoreReactiveEngine engine)
 {
     _engine  = engine;
     Provider = new AsyncQueryProvider(engine.Registry);
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="FullStateSaver"/> class.
 /// </summary>
 /// <param name="writer">The writer.</param>
 /// <param name="engine">The engine.</param>
 public FullStateSaver(IStateWriter writer, CoreReactiveEngine engine)
     : base(writer, engine)
 {
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="DifferentialStateSaver"/> class.
 /// </summary>
 /// <param name="writer">The writer.</param>
 /// <param name="engine">The engine.</param>
 public DifferentialStateSaver(IStateWriter writer, CoreReactiveEngine engine)
     : base(writer, engine)
 {
 }
コード例 #14
0
 public ReactiveEngine(CoreReactiveEngine engine)
 {
     _engine = engine;
 }