コード例 #1
0
        public FileBasedFabric(
            ITransitionRunner transitionRunner,
            INumericIdGenerator numericIdGenerator,
            IFileBasedFabricSerializerFactoryAdvisor serializerFactoryAdvisor,
            INumericIdGenerator idGenerator)
        {
            _transitionRunner = transitionRunner;

            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(
                numericIdGenerator,
                TransitionsDirectory,
                RoutinesDirectory,
                EventsDirectory,
                AddEventListener,
                Serializer,
                _serializationFormat);
        }
コード例 #2
0
        public AzureFunctionsFabric(
            ISerializerFactorySelector serializerFactorySelector,
            INumericIdGenerator idGenerator,
            ITransitionRunner transitionRunner,
            IAzureWebJobsEnviromentalSettings azureWebJobsEnviromentalSettings,
            ICloudStorageAccountFactory cloudStorageAccountFactory,
            AzureFunctionsFabricSettings settings,
            IServiceProxyBuilder serviceProxyBuilder,
            IRoutineMethodResolver routineMethodResolver,
            IMethodInvokerFactory methodInvokerFactory,
            IServiceRegistry serviceRegistry)
        {
            _transitionRunner      = transitionRunner;
            _idGenerator           = idGenerator;
            _settings              = settings;
            _serviceProxyBuilder   = serviceProxyBuilder;
            _routineMethodResolver = routineMethodResolver;
            _methodInvokerFactory  = methodInvokerFactory;
            _serviceRegistry       = serviceRegistry;

#warning Need configurable serializer
            // Hard-code this for now.
            _defaultSerializer = serializerFactorySelector.Select("dasyncjson").Create();

            _storageAccountConnectionString = azureWebJobsEnviromentalSettings.DefaultStorageConnectionString;
            _storageAccount = cloudStorageAccountFactory.Create(_storageAccountConnectionString);

            //#warning make sure that site name is alpha-numeric and does not start with a number
            //            var prefix = azureWebJobsEnviromentalSettings.WebSiteName.ToLowerInvariant();
            var prefix = "";
            _routinesTable = _storageAccount.TableClient.GetTableReference(prefix + "routines");
            _servicesTable = _storageAccount.TableClient.GetTableReference(prefix + "services");
        }
コード例 #3
0
 public FileBasedFabricConnectorFactory(
     ISerializerFactorySelector serializerFactorySelector,
     INumericIdGenerator numericIdGenerator)
 {
     _serializerFactorySelector = serializerFactorySelector;
     _numericIdGenerator        = numericIdGenerator;
 }
コード例 #4
0
 public TaskCompletionSourceRegistry(
     INumericIdGenerator numericIdGenerator,
     ITransitionScope transitionScope)
 {
     _numericIdGenerator = numericIdGenerator;
     _transitionScope    = transitionScope;
 }
コード例 #5
0
 public AzureStorageFabricConnectorFactory(
     ISerializerFactorySelector serializerFactorySelector,
     INumericIdGenerator idGenerator,
     ICloudStorageAccountFactory cloudStorageAccountFactory,
     IStorageAccontConnectionStringResolver storageAccontConnectionStringResolver)
 {
     _serializerFactorySelector = serializerFactorySelector;
     _idGenerator = idGenerator;
     _cloudStorageAccountFactory            = cloudStorageAccountFactory;
     _storageAccontConnectionStringResolver = storageAccontConnectionStringResolver;
 }
コード例 #6
0
 public ProxyMethodExecutor(
     ITransitionScope transitionScope,
     IRoutineMethodIdProvider routineMethodIdProvider,
     INumericIdGenerator numericIdGenerator,
     IRoutineImmediateExecutor routineImmediateExecutor)
 {
     _transitionScope          = transitionScope;
     _routineMethodIdProvider  = routineMethodIdProvider;
     _numericIdGenerator       = numericIdGenerator;
     _routineImmediateExecutor = routineImmediateExecutor;
 }
コード例 #7
0
 public AzureStorageFabricConnectorWithConfiguration(
     ServiceId serviceId,
     INumericIdGenerator idGenerator,
     ICloudQueue transitionsQueue,
     ICloudTable routinesTable,
     ISerializer serializer,
     AzureStorageFabricConnectorConfiguration originalConfiguration)
     : base(serviceId, idGenerator, transitionsQueue, routinesTable, serializer)
 {
     Configuration = originalConfiguration;
 }
コード例 #8
0
 public IntrinsicFlowController(
     ITaskContinuationClassifier taskContinuationClassifier,
     IAsyncStateMachineMetadataProvider asyncStateMachineMetadataProvider,
     INumericIdGenerator numericIdGenerator,
     IRoutineMethodIdProvider routineMethodIdProvider)
 {
     _taskContinuationClassifier        = taskContinuationClassifier;
     _asyncStateMachineMetadataProvider = asyncStateMachineMetadataProvider;
     _numericIdGenerator      = numericIdGenerator;
     _routineMethodIdProvider = routineMethodIdProvider;
 }
コード例 #9
0
 public AzureStorageFabricConnector(
     ServiceId serviceId,
     INumericIdGenerator idGenerator,
     ICloudQueue transitionsQueue,
     ICloudTable routinesTable,
     ISerializer serializer)
 {
     _serviceId        = serviceId;
     _idGenerator      = idGenerator;
     _transitionsQueue = transitionsQueue;
     _routinesTable    = routinesTable;
     _serializer       = serializer;
 }
コード例 #10
0
        public InMemoryFabric(ITransitionRunner transitionRunner,
                              IInMemoryFabricSerializerFactoryAdvisor serializerFactoryAdvisor,
                              INumericIdGenerator numericIdGenerator)
        {
            _transitionRunner   = transitionRunner;
            _numericIdGenerator = numericIdGenerator;

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

            _serializationFormat = serializerFactory.Format;
            Serializer           = serializerFactory.Create();
            Connector            = new InMemoryFabricConnector(DataStore, Serializer, _serializationFormat);
        }
コード例 #11
0
 public ProxyMethodExecutor(
     ITransitionScope transitionScope,
     IRoutineMethodIdProvider routineMethodIdProvider,
     IEventIdProvider eventIdProvider,
     INumericIdGenerator numericIdGenerator,
     ITransitionCommitter transitionCommitter,
     IRoutineCompletionNotifier routineCompletionNotifier,
     IEventSubscriber eventSubscriber)
 {
     _transitionScope           = transitionScope;
     _routineMethodIdProvider   = routineMethodIdProvider;
     _eventIdProvider           = eventIdProvider;
     _numericIdGenerator        = numericIdGenerator;
     _transitionCommitter       = transitionCommitter;
     _routineCompletionNotifier = routineCompletionNotifier;
     _eventSubscriber           = eventSubscriber;
 }
コード例 #12
0
 public FileBasedFabricConnector(
     INumericIdGenerator numericIdGenerator,
     string transitionsDirectory,
     string routinesDirectory,
     string eventsDirectory,
     Action <EventDescriptor, EventSubscriberDescriptor> addEventListener,
     ISerializer serializer,
     string serializerFormat)
 {
     _numericIdGenerator   = numericIdGenerator;
     _transitionsDirectory = transitionsDirectory;
     _routinesDirectory    = routinesDirectory;
     _eventsDirectory      = eventsDirectory;
     _observersFilePath    = Path.Combine(_eventsDirectory, "observers.yaml");
     _addEventListener     = addEventListener;
     _serializer           = serializer;
     _serializerFormat     = serializerFormat;
 }
コード例 #13
0
 public TransitionRunner(
     ITransitionScope transitionScope,
     ITransitionCommitter transitionCommitter,
     IServiceProxyBuilder serviceProxyBuilder,
     IRoutineMethodResolver routineMethodResolver,
     IAsyncStateMachineMetadataProvider asyncStateMachineMetadataProvider,
     IMethodInvokerFactory methodInvokerFactory,
     IServiceStateValueContainerProvider serviceStateValueContainerProvider,
     IntrinsicRoutines intrinsicRoutines,
     INumericIdGenerator idGenerator)
 {
     _transitionScope                    = transitionScope;
     _transitionCommitter                = transitionCommitter;
     _serviceProxyBuilder                = serviceProxyBuilder;
     _routineMethodResolver              = routineMethodResolver;
     _asyncStateMachineMetadataProvider  = asyncStateMachineMetadataProvider;
     _methodInvokerFactory               = methodInvokerFactory;
     _serviceStateValueContainerProvider = serviceStateValueContainerProvider;
     _intrinsicRoutines                  = intrinsicRoutines;
     _idGenerator = idGenerator;
 }