Exemple #1
0
 public ScenarioHandler(IGlobalCountersControl globalCounters, IUniqueIdGenerator <int> threadIterationIdGenerator, IScenario scenario, IIterationControl context)
 {
     _scenario                   = scenario ?? throw new ArgumentNullException(nameof(scenario));
     _context                    = context ?? throw new ArgumentNullException(nameof(context));
     _globalCounters             = globalCounters ?? throw new ArgumentNullException(nameof(globalCounters));
     _threadIterationIdGenerator = threadIterationIdGenerator ?? throw new ArgumentNullException(nameof(threadIterationIdGenerator));
 }
        static UniqueIdGenerate()
        {
            var configFactory  = new ConfigurationFactory(null, Enumerable.Empty <IAdditionalConfigurationSource>());
            var configAccessor = new ConfigAccessor(configFactory);

            Generator = new UniqueIdGenerator(configAccessor);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MessageBusConfiguration"/> class.
        /// </summary>
        /// <param name="serviceProvider">The configured <see cref="IServiceProvider">service provider</see>.</param>
        /// <param name="clock">The configured <see cref="IClock">clock</see>.</param>
        /// <param name="persistence">The <see cref="IMapPersistence">mapping for persistence</see>.</param>
        /// <param name="messageSender">The configured <see cref="IMessageSender">message sender</see>.</param>
        /// <param name="messageReceiver">The configured <see cref="IMessageReceiver">message receiver</see>.</param>
        /// <param name="commandHandlerRegistrar">The configured <see cref="ICommandHandlerRegistrar">command handler registrar</see>.</param>
        /// <param name="eventReceiverRegistrar">The configured <see cref="IEventReceiverRegistrar">event handler registrar</see>.</param>
        /// <param name="sagaConfiguration">The <see cref="SagaConfiguration">saga configuration</see> used by the message bus.</param>
        /// <param name="uniqueIdGenerator">The configured <see cref="IUniqueIdGenerator">unique identifier generator</see> used by the message bus.</param>
        public MessageBusConfiguration(
            IServiceProvider serviceProvider,
            IClock clock,
            IMapPersistence persistence,
            IMessageSender messageSender,
            IMessageReceiver messageReceiver,
            ICommandHandlerRegistrar commandHandlerRegistrar,
            IEventReceiverRegistrar eventReceiverRegistrar,
            SagaConfiguration sagaConfiguration,
            IUniqueIdGenerator uniqueIdGenerator)
        {
            Arg.NotNull(serviceProvider, nameof(serviceProvider));
            Arg.NotNull(clock, nameof(clock));
            Arg.NotNull(persistence, nameof(persistence));
            Arg.NotNull(messageSender, nameof(messageSender));
            Arg.NotNull(messageReceiver, nameof(messageReceiver));
            Arg.NotNull(commandHandlerRegistrar, nameof(commandHandlerRegistrar));
            Arg.NotNull(eventReceiverRegistrar, nameof(eventReceiverRegistrar));
            Arg.NotNull(sagaConfiguration, nameof(sagaConfiguration));
            Arg.NotNull(uniqueIdGenerator, nameof(uniqueIdGenerator));

            this.serviceProvider = serviceProvider;
            Clock             = clock;
            Persistence       = persistence;
            MessageSender     = messageSender;
            MessageReceiver   = messageReceiver;
            CommandHandlers   = commandHandlerRegistrar;
            EventReceivers    = eventReceiverRegistrar;
            Sagas             = sagaConfiguration;
            UniqueIdGenerator = uniqueIdGenerator;
        }
Exemple #4
0
 public TaskCompletionSourceRegistry(
     IUniqueIdGenerator numericIdGenerator,
     ITransitionScope transitionScope)
 {
     _numericIdGenerator = numericIdGenerator;
     _transitionScope    = transitionScope;
 }
        public FileBasedFabric(
            ITransitionRunner transitionRunner,
            IFileBasedFabricSerializerFactoryAdvisor serializerFactoryAdvisor,
            IUniqueIdGenerator idGenerator,
            IServiceProviderScope serviceProviderScope)
        {
            _transitionRunner     = transitionRunner;
            _serviceProviderScope = serviceProviderScope;

            Directory            = Path.GetFullPath(Path.Combine(System.IO.Directory.GetCurrentDirectory(), "data"));
            TransitionsDirectory = Path.Combine(Directory, "transitions");
            RoutinesDirectory    = Path.Combine(Directory, "routines");
            EventsDirectory      = Path.Combine(Directory, "events");

            var serializerFactory = serializerFactoryAdvisor.Advise();

            _serializationFormat = serializerFactory.Format;
            Serializer           = serializerFactory.Create();

            Connector = new FileBasedFabricConnector(
                idGenerator,
                TransitionsDirectory,
                RoutinesDirectory,
                EventsDirectory,
                AddEventListener,
                Serializer,
                _serializationFormat);
        }
 public ProfilesService(IMaskedEmailsDbContext context, IUniqueIdGenerator generator, IMaskedEmailCommandService commands, IOptions <AppSettings> settings)
 {
     context_   = context;
     generator_ = generator;
     commands_  = commands;
     settings_  = settings;
 }
 public FileBasedFabricConnectorFactory(
     ISerializerFactorySelector serializerFactorySelector,
     IUniqueIdGenerator idGenerator)
 {
     _serializerFactorySelector = serializerFactorySelector;
     _idGenerator = idGenerator;
 }
Exemple #8
0
        public HttpRequestHandler(
            ICommunicationModelProvider communicationModelProvider,
            IDomainServiceProvider domainServiceProvider,
            IRoutineMethodResolver routineMethodResolver,
            IMethodInvokerFactory methodInvokerFactory,
            ISerializerFactorySelector serializerFactorySelector,
            IEnumerable <IEventDispatcher> eventDispatchers,
            IUniqueIdGenerator idGenerator,
            ITransitionCommitter transitionCommitter,
            IRoutineCompletionNotifier routineCompletionNotifier,
            IEnumerable <IHttpIntentPreprocessor> intentPreprocessors,
            IEnumerable <IRoutineTransitionAction> transitionActions,
            ITransitionUserContext transitionUserContext)
        {
            _communicationModelProvider = communicationModelProvider;
            _domainServiceProvider      = domainServiceProvider;
            _routineMethodResolver      = routineMethodResolver;
            _methodInvokerFactory       = methodInvokerFactory;
            _eventDispatcher            = eventDispatchers.FirstOrDefault();
            _idGenerator               = idGenerator;
            _transitionCommitter       = transitionCommitter;
            _routineCompletionNotifier = routineCompletionNotifier;
            _intentPreprocessor        = new AggregateHttpIntentPreprocessor(intentPreprocessors);
            _transitionActions         = transitionActions;
            _transitionUserContext     = transitionUserContext;

            _dasyncJsonSerializer = serializerFactorySelector.Select("dasync+json").Create();

            JsonSettings.Converters.Add(new EntityProjectionConverter(communicationModelProvider.Model));
        }
        /// <summary>
        /// Indicates the message bus configuration will use the specified unique identifier generator.
        /// </summary>
        /// <param name="value">The configured <see cref="IUniqueIdGenerator">unique identifier generator</see>.</param>
        /// <returns>The original <see cref="MessageBusConfigurationBuilder"/> instance.</returns>
        /// <remarks>The default configuration uses <see cref="Guid.NewGuid"/>.</remarks>
        public virtual MessageBusConfigurationBuilder UseUniqueIdGenerator(IUniqueIdGenerator value)
        {
            Arg.NotNull(value, nameof(value));
            Contract.Ensures(Contract.Result <MessageBusConfiguration>() != null);

            UniqueIdGenerator = value;
            return(this);
        }
Exemple #10
0
 public MySqlEventLogger(
     IUniqueIdGenerator uniqueIdGenerator,
     IDbConnectionFactory dbConnection,
     MySqlConfiguration mySqlConfiguration)
 {
     this._mySqlConfiguration = mySqlConfiguration;
     this._uniqueIdGenerator  = uniqueIdGenerator;
     this._dbConnection       = dbConnection;
 }
Exemple #11
0
 public SqlServerEventLogger(
     IUniqueIdGenerator uniqueIdGenerator,
     IDbConnectionFactory dbConnection,
     SqlServerConfiguration sqlServerConfiguration)
 {
     this._sqlServerConfiguration = sqlServerConfiguration;
     this._uniqueIdGenerator      = uniqueIdGenerator;
     this._dbConnection           = dbConnection;
 }
Exemple #12
0
 /// <summary>
 /// Creates new HMQ Server-side socket client
 /// </summary>
 public HorseServerSocket(IHorseServer server, IConnectionInfo info, IUniqueIdGenerator generator, bool useUniqueMessageId = true)
     : base(info)
 {
     Client             = info.Client;
     Server             = server;
     Info               = info;
     _uniqueIdGenerator = generator;
     UseUniqueMessageId = useUniqueMessageId;
 }
Exemple #13
0
 public LinkService(ILinkRepository linkRepository, IClientRepository clientRepository,
                    IUniqueIdGenerator idGenerator, IClickRepository clickRepository, LinkServicePreferences preferences)
 {
     _linkRepository   = linkRepository;
     _clientRepository = clientRepository;
     _idGenerator      = idGenerator;
     _preferences      = preferences;
     _clickRepository  = clickRepository;
 }
        public LocalTestGeneratorAsync()
        {
            _dataStorePath = @"C:\Local\SnowMakerDatastore";

            _dataStore = new DebugOnlyFileDataStore(_dataStorePath);
            _generator = new UniqueIdGenerator(_dataStore)
            {
                BatchSize = 10
            };
        }
Exemple #15
0
 public EventingMethod(
     IEventSubscriber eventSubscriber,
     IUniqueIdGenerator idGenerator,
     ICommunicatorProvider communicatorProvider,
     IServiceResolver serviceResolver)
 {
     _eventSubscriber      = eventSubscriber;
     _idGenerator          = idGenerator;
     _communicatorProvider = communicatorProvider;
     _serviceResolver      = serviceResolver;
 }
 public IntrinsicFlowController(
     ITaskContinuationClassifier taskContinuationClassifier,
     IAsyncStateMachineMetadataProvider asyncStateMachineMetadataProvider,
     IUniqueIdGenerator numericIdGenerator,
     IRoutineMethodIdProvider routineMethodIdProvider)
 {
     _taskContinuationClassifier        = taskContinuationClassifier;
     _asyncStateMachineMetadataProvider = asyncStateMachineMetadataProvider;
     _numericIdGenerator      = numericIdGenerator;
     _routineMethodIdProvider = routineMethodIdProvider;
 }
Exemple #17
0
 public ApiSerialiserTests()
 {
     if (File.Exists("./entrantRowKeys.txt"))
     {
         File.Delete("./entrantRowKeys.txt");
     }
     _RowKeyGenerator = new UniqueIdGenerator(new DebugOnlyFileDataStore("./"))
     {
         BatchSize        = 5,
         MaxWriteAttempts = 1
     };
 }
        public IterationContextFactory(ITimer timer, object initialUserData)
        {
            if (timer == null)
            {
                throw new ArgumentNullException(nameof(timer));
            }

            _timer           = timer;
            _initialUserData = initialUserData;

            _threadIdGenerator = new ThreadSafeIdGenerator();
        }
Exemple #19
0
        public ReplayScenarioHandler(IGlobalCountersControl globalCounters, IUniqueIdGenerator <int> threadIterationIdGenerator, IReplayScenario <TData> scenario, IIterationControl context)
            : base(globalCounters, threadIterationIdGenerator, scenario, context)
        {
            _scenario = scenario;

            _dataContext = new DataContext <TData>
            {
                Timer   = context.Timer,
                Execute = true,
                Context = context
            };
        }
Exemple #20
0
 public EventPublisher(
     IEventSubscriber eventSubscriber,
     IUniqueIdGenerator idGenerator,
     ICommunicatorProvider communicatorProvider,
     IServiceResolver serviceResolver,
     ILocalMethodRunner localMethodRunner)
 {
     _eventSubscriber      = eventSubscriber;
     _idGenerator          = idGenerator;
     _communicatorProvider = communicatorProvider;
     _serviceResolver      = serviceResolver;
     _localMethodRunner    = localMethodRunner;
 }
        public CoreIdGenerator(IConfiguration config)
        {
            var storageConnection = config.GetSection("ConnectionStrings:AzureBlobStorage").Get <BlobStorageConnection>();
            var batchSize         = config.GetValue <int>("IdGeneratorBatchSize");

            _cloudStorageAccount = Microsoft.Azure.Storage.CloudStorageAccount.Parse(storageConnection.ConnectionString);
            _containerName       = storageConnection.ContainerName;

            _dataStore = BlobOptimisticDataStore.CreateAsync(_cloudStorageAccount, _containerName).Result;
            _generator = new UniqueIdGenerator(_dataStore)
            {
                BatchSize = batchSize
            };
        }
 public SegmentContextFactory(IRuntimeEnvironment runtimeEnvironment,
                              ISamplerChainBuilder samplerChainBuilder,
                              IUniqueIdGenerator uniqueIdGenerator,
                              IEntrySegmentContextAccessor entrySegmentContextAccessor,
                              ILocalSegmentContextAccessor localSegmentContextAccessor,
                              IExitSegmentContextAccessor exitSegmentContextAccessor)
 {
     _runtimeEnvironment          = runtimeEnvironment;
     _samplerChainBuilder         = samplerChainBuilder;
     _uniqueIdGenerator           = uniqueIdGenerator;
     _entrySegmentContextAccessor = entrySegmentContextAccessor;
     _localSegmentContextAccessor = localSegmentContextAccessor;
     _exitSegmentContextAccessor  = exitSegmentContextAccessor;
 }
        public InMemoryFabric(ITransitionRunner transitionRunner,
                              IInMemoryFabricSerializerFactoryAdvisor serializerFactoryAdvisor,
                              IUniqueIdGenerator numericIdGenerator,
                              IServiceProviderScope serviceProviderScope)
        {
            _transitionRunner     = transitionRunner;
            _uniqueIdGenerator    = numericIdGenerator;
            _serviceProviderScope = serviceProviderScope;

            DataStore = InMemoryDataStore.Create(ScheduleMessage);
            var serializerFactory = serializerFactoryAdvisor.Advise();

            _serializationFormat = serializerFactory.Format;
            Serializer           = serializerFactory.Create();
            Connector            = new InMemoryFabricConnector(DataStore, Serializer, _serializationFormat);
        }
        public HttpRequestHandler(
            ISerializerProvider serializerProvider,
            IUniqueIdGenerator idGenerator,
            IRoutineCompletionNotifier routineCompletionNotifier,
            IServiceResolver serviceResolver,
            IMethodResolver methodResolver,
            ILocalMethodRunner localTransitionRunner)
        {
            _idGenerator = idGenerator;
            _routineCompletionNotifier = routineCompletionNotifier;
            _serviceResolver           = serviceResolver;
            _methodResolver            = methodResolver;
            _localTransitionRunner     = localTransitionRunner;

            _serializerProvider = serializerProvider;
            _jsonSerializer     = _serializerProvider.GetSerializer("json");
        }
Exemple #25
0
 public ProxyMethodExecutor(
     ITransitionScope transitionScope,
     IRoutineMethodIdProvider routineMethodIdProvider,
     IEventIdProvider eventIdProvider,
     IUniqueIdGenerator numericIdGenerator,
     ITransitionCommitter transitionCommitter,
     IRoutineCompletionNotifier routineCompletionNotifier,
     IEventSubscriber eventSubscriber)
 {
     _transitionScope           = transitionScope;
     _routineMethodIdProvider   = routineMethodIdProvider;
     _eventIdProvider           = eventIdProvider;
     _numericIdGenerator        = numericIdGenerator;
     _transitionCommitter       = transitionCommitter;
     _routineCompletionNotifier = routineCompletionNotifier;
     _eventSubscriber           = eventSubscriber;
 }
Exemple #26
0
 public FileBasedFabricConnector(
     IUniqueIdGenerator idGenerator,
     string transitionsDirectory,
     string routinesDirectory,
     string eventsDirectory,
     Action <EventDescriptor, EventSubscriberDescriptor> addEventListener,
     ISerializer serializer,
     string serializerFormat)
 {
     _idGenerator          = idGenerator;
     _transitionsDirectory = transitionsDirectory;
     _routinesDirectory    = routinesDirectory;
     _eventsDirectory      = eventsDirectory;
     _observersFilePath    = Path.Combine(_eventsDirectory, "observers.yaml");
     _addEventListener     = addEventListener;
     _serializer           = serializer;
     _serializerFormat     = serializerFormat;
 }
Exemple #27
0
 /// <summary>
 /// Constructs an instance of the <see cref="App"/> class with its dependencies.
 /// </summary>
 /// <param name="generator">The unique ID generator.</param>
 /// <param name="builder">The migration runner builder.</param>
 /// <param name="provider">The provider used to find stage runners.</param>
 /// <param name="modelProvider">The provider used to find model provider.</param>
 /// <param name="pluginHost">The stage runner plugin host.</param>
 /// <param name="options">The command line options.</param>
 /// <param name="loggingService">The logging service.</param>
 /// <param name="runnerLogger">The logger for the runner.</param>
 /// <param name="logger">The logger for the app.</param>
 public App(
     IUniqueIdGenerator generator,
     IRunnerBuilder builder,
     IStageComponentProvider provider,
     PluginModelComponentProvider modelProvider,
     IPluginHost <IRunnerComponent> pluginHost,
     IAppOptionsService options,
     ILoggingService loggingService,
     ILogger <Runner.Engine.Runner> runnerLogger,
     ILogger <App> logger)
 {
     // Validate and set members
     _generator      = generator ?? throw new ArgumentNullException(nameof(generator));
     _builder        = builder ?? throw new ArgumentNullException(nameof(builder));
     _provider       = provider ?? throw new ArgumentNullException(nameof(provider));
     _modelProvider  = modelProvider ?? throw new ArgumentNullException(nameof(modelProvider));
     _pluginHost     = pluginHost ?? throw new ArgumentNullException(nameof(pluginHost));
     _options        = options ?? throw new ArgumentNullException(nameof(options));
     _loggingService = loggingService ?? throw new ArgumentNullException(nameof(loggingService));
     _runnerLogger   = runnerLogger ?? throw new ArgumentNullException(nameof(runnerLogger));
     _logger         = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Exemple #28
0
 public TransitionRunner(
     ITransitionScope transitionScope,
     IAsyncStateMachineMetadataProvider asyncStateMachineMetadataProvider,
     //IServiceStateValueContainerProvider serviceStateValueContainerProvider,
     IUniqueIdGenerator idGenerator,
     ITaskCompletionSourceRegistry taskCompletionSourceRegistry,
     IServiceResolver serviceResolver,
     IMethodResolver methodResolver,
     IEventResolver eventResolver,
     ICommunicatorProvider communicatorProvider,
     IEventPublisherProvider eventPublisherProvider,
     IRoutineCompletionSink routineCompletionSink,
     ICommunicationSettingsProvider communicationSettingsProvider,
     IDefaultSerializerProvider defaultSerializerProvider,
     ISerializerProvider serializeProvder,
     IMethodStateStorageProvider methodStateStorageProvider,
     IValueContainerCopier valueContainerCopier,
     IEventSubscriber eventSubscriber,
     ITaskContinuationClassifier taskContinuationClassifier)
 {
     _transitionScope = transitionScope;
     _asyncStateMachineMetadataProvider = asyncStateMachineMetadataProvider;
     //_serviceStateValueContainerProvider = serviceStateValueContainerProvider;
     _idGenerator = idGenerator;
     _taskCompletionSourceRegistry = taskCompletionSourceRegistry;
     _serviceResolver               = serviceResolver;
     _methodResolver                = methodResolver;
     _eventResolver                 = eventResolver;
     _communicatorProvider          = communicatorProvider;
     _eventPublisherProvider        = eventPublisherProvider;
     _routineCompletionSink         = routineCompletionSink;
     _communicationSettingsProvider = communicationSettingsProvider;
     _defaultSerializer             = defaultSerializerProvider.DefaultSerializer;
     _serializeProvder              = serializeProvder;
     _methodStateStorageProvider    = methodStateStorageProvider;
     _valueContainerCopier          = valueContainerCopier;
     _eventSubscriber               = eventSubscriber;
     _taskContinuationClassifier    = taskContinuationClassifier;
 }
 public ProxyMethodExecutor(
     ITransitionScope transitionScope,
     IMethodIdProvider routineMethodIdProvider,
     IEventIdProvider eventIdProvider,
     IUniqueIdGenerator numericIdGenerator,
     IRoutineCompletionNotifier routineCompletionNotifier,
     IEventSubscriber eventSubscriber,
     ICommunicationSettingsProvider communicationSettingsProvider,
     IMethodInvokerFactory methodInvokerFactory,
     ISingleMethodInvoker singleMethodInvoker,
     ISingleEventPublisher singleEventPublisher)
 {
     _transitionScope               = transitionScope;
     _routineMethodIdProvider       = routineMethodIdProvider;
     _eventIdProvider               = eventIdProvider;
     _idGenerator                   = numericIdGenerator;
     _routineCompletionNotifier     = routineCompletionNotifier;
     _eventSubscriber               = eventSubscriber;
     _communicationSettingsProvider = communicationSettingsProvider;
     _methodInvokerFactory          = methodInvokerFactory;
     _singleMethodInvoker           = singleMethodInvoker;
     _singleEventPublisher          = singleEventPublisher;
 }
 public TransitionRunner(
     ITransitionScope transitionScope,
     ITransitionCommitter transitionCommitter,
     IServiceProxyBuilder serviceProxyBuilder,
     IRoutineMethodResolver routineMethodResolver,
     IAsyncStateMachineMetadataProvider asyncStateMachineMetadataProvider,
     IMethodInvokerFactory methodInvokerFactory,
     //IServiceStateValueContainerProvider serviceStateValueContainerProvider,
     IntrinsicRoutines intrinsicRoutines,
     IUniqueIdGenerator idGenerator,
     ITaskCompletionSourceRegistry taskCompletionSourceRegistry)
 {
     _transitionScope                   = transitionScope;
     _transitionCommitter               = transitionCommitter;
     _serviceProxyBuilder               = serviceProxyBuilder;
     _routineMethodResolver             = routineMethodResolver;
     _asyncStateMachineMetadataProvider = asyncStateMachineMetadataProvider;
     _methodInvokerFactory              = methodInvokerFactory;
     //_serviceStateValueContainerProvider = serviceStateValueContainerProvider;
     _intrinsicRoutines            = intrinsicRoutines;
     _idGenerator                  = idGenerator;
     _taskCompletionSourceRegistry = taskCompletionSourceRegistry;
 }