public static ITriggerBindingProvider Create(INameResolver nameResolver, IStorageAccountProvider storageAccountProvider, IExtensionTypeLocator extensionTypeLocator, IHostIdProvider hostIdProvider, IQueueConfiguration queueConfiguration, IBackgroundExceptionDispatcher backgroundExceptionDispatcher, IContextSetter<IMessageEnqueuedWatcher> messageEnqueuedWatcherSetter, IContextSetter<IBlobWrittenWatcher> blobWrittenWatcherSetter, ISharedContextProvider sharedContextProvider, IExtensionRegistry extensions, TextWriter log) { List<ITriggerBindingProvider> innerProviders = new List<ITriggerBindingProvider>(); innerProviders.Add(new QueueTriggerAttributeBindingProvider(nameResolver, storageAccountProvider, queueConfiguration, backgroundExceptionDispatcher, messageEnqueuedWatcherSetter, sharedContextProvider, log)); innerProviders.Add(new BlobTriggerAttributeBindingProvider(nameResolver, storageAccountProvider, extensionTypeLocator, hostIdProvider, queueConfiguration, backgroundExceptionDispatcher, blobWrittenWatcherSetter, messageEnqueuedWatcherSetter, sharedContextProvider, log)); // add any registered extension binding providers foreach (ITriggerBindingProvider provider in extensions.GetExtensions(typeof(ITriggerBindingProvider))) { innerProviders.Add(provider); } return new CompositeTriggerBindingProvider(innerProviders); }
public static IBindingProvider Create(INameResolver nameResolver, IStorageAccountProvider storageAccountProvider, IExtensionTypeLocator extensionTypeLocator, IContextGetter<IMessageEnqueuedWatcher> messageEnqueuedWatcherGetter, IContextGetter<IBlobWrittenWatcher> blobWrittenWatcherGetter, IExtensionRegistry extensions) { List<IBindingProvider> innerProviders = new List<IBindingProvider>(); innerProviders.Add(new QueueAttributeBindingProvider(nameResolver, storageAccountProvider, messageEnqueuedWatcherGetter)); innerProviders.Add(new BlobAttributeBindingProvider(nameResolver, storageAccountProvider, extensionTypeLocator, blobWrittenWatcherGetter)); innerProviders.Add(new TableAttributeBindingProvider(nameResolver, storageAccountProvider, extensions)); // add any registered extension binding providers foreach (IBindingProvider provider in extensions.GetExtensions(typeof(IBindingProvider))) { innerProviders.Add(provider); } innerProviders.Add(new CloudStorageAccountBindingProvider(storageAccountProvider)); innerProviders.Add(new CancellationTokenBindingProvider()); // The console output binder below will handle all remaining TextWriter parameters. It must come after the // Blob binding provider; otherwise bindings like Do([Blob("a/b")] TextWriter blob) wouldn't work. innerProviders.Add(new ConsoleOutputBindingProvider()); ContextAccessor<IBindingProvider> bindingProviderAccessor = new ContextAccessor<IBindingProvider>(); innerProviders.Add(new RuntimeBindingProvider(bindingProviderAccessor)); innerProviders.Add(new DataBindingProvider()); IBindingProvider bindingProvider = new CompositeBindingProvider(innerProviders); bindingProviderAccessor.SetValue(bindingProvider); return bindingProvider; }
public TableAttributeBindingProvider(INameResolver nameResolver, IStorageAccountProvider accountProvider, IExtensionRegistry extensions) { if (accountProvider == null) { throw new ArgumentNullException("accountProvider"); } if (extensions == null) { throw new ArgumentNullException("extensions"); } _nameResolver = nameResolver; _accountProvider = accountProvider; _tableProvider = new CompositeArgumentBindingProvider( new StorageTableArgumentBindingProvider(), new CloudTableArgumentBindingProvider(), new QueryableArgumentBindingProvider(), new CollectorArgumentBindingProvider(), new AsyncCollectorArgumentBindingProvider(), new TableArgumentBindingExtensionProvider(extensions)); _entityProvider = new CompositeEntityArgumentBindingProvider( new TableEntityArgumentBindingProvider(), new PocoEntityArgumentBindingProvider()); // Supports all types; must come after other providers }
public static FunctionIndexer Create(CloudStorageAccount account = null, INameResolver nameResolver = null, IExtensionRegistry extensionRegistry = null) { IStorageAccount storageAccount = account != null ? new StorageAccount(account) : null; IStorageAccountProvider storageAccountProvider = new SimpleStorageAccountProvider { StorageAccount = account }; IExtensionTypeLocator extensionTypeLocator = new NullExtensionTypeLocator(); ContextAccessor<IMessageEnqueuedWatcher> messageEnqueuedWatcherAccessor = new ContextAccessor<IMessageEnqueuedWatcher>(); ContextAccessor<IBlobWrittenWatcher> blobWrittenWatcherAccessor = new ContextAccessor<IBlobWrittenWatcher>(); ISharedContextProvider sharedContextProvider = new SharedContextProvider(); ITriggerBindingProvider triggerBindingProvider = DefaultTriggerBindingProvider.Create(nameResolver, storageAccountProvider, extensionTypeLocator, new FixedHostIdProvider("test"), new SimpleQueueConfiguration(maxDequeueCount: 5), BackgroundExceptionDispatcher.Instance, messageEnqueuedWatcherAccessor, blobWrittenWatcherAccessor, sharedContextProvider, new DefaultExtensionRegistry(), TextWriter.Null); IBindingProvider bindingProvider = DefaultBindingProvider.Create(nameResolver, storageAccountProvider, extensionTypeLocator, messageEnqueuedWatcherAccessor, blobWrittenWatcherAccessor, new DefaultExtensionRegistry()); IFunctionOutputLoggerProvider outputLoggerProvider = new NullFunctionOutputLoggerProvider(); var task = outputLoggerProvider.GetAsync(CancellationToken.None); task.Wait(); IFunctionOutputLogger outputLogger = task.Result; IFunctionExecutor executor = new FunctionExecutor(new NullFunctionInstanceLogger(), outputLogger, BackgroundExceptionDispatcher.Instance); if (extensionRegistry == null) { extensionRegistry = new DefaultExtensionRegistry(); } return new FunctionIndexer(triggerBindingProvider, bindingProvider, DefaultJobActivator.Instance, executor, extensionRegistry); }
public FunctionIndexProvider(ITypeLocator typeLocator, ITriggerBindingProvider triggerBindingProvider, IBindingProvider bindingProvider, IJobActivator activator, IFunctionExecutor executor, IExtensionRegistry extensions, SingletonManager singletonManager, TraceWriter trace) { if (typeLocator == null) { throw new ArgumentNullException("typeLocator"); } if (triggerBindingProvider == null) { throw new ArgumentNullException("triggerBindingProvider"); } if (bindingProvider == null) { throw new ArgumentNullException("bindingProvider"); } if (activator == null) { throw new ArgumentNullException("activator"); } if (executor == null) { throw new ArgumentNullException("executor"); } if (extensions == null) { throw new ArgumentNullException("extensions"); } if (singletonManager == null) { throw new ArgumentNullException("singletonManager"); } if (trace == null) { throw new ArgumentNullException("trace"); } _typeLocator = typeLocator; _triggerBindingProvider = triggerBindingProvider; _bindingProvider = bindingProvider; _activator = activator; _executor = executor; _extensions = extensions; _singletonManager = singletonManager; _trace = trace; }
public DefaultTypeLocator(TextWriter log, IExtensionRegistry extensions) { if (log == null) { throw new ArgumentNullException("log"); } if (extensions == null) { throw new ArgumentNullException("extensions"); } _log = log; _extensions = extensions; }
public SharpMessagingClient(string identity, IExtensionRegistry extensionRegistry) { _extensionService = new ExtensionService(extensionRegistry, DeliverMessage); _state = ClientState.ClientToServerHandshake1; _connection = new Connection.Connection(identity, _extensionService, false, _bufferManager) { ExtensionFrameReceived = OnExtensionFrame, MessageFrameReceived = OnMessageFrame, WriteCompleted = OnWriteCompleted, //ReceiveBufferSize = 65535 }; _connection.HandshakeReceived += OnServerHandshakeFrame; _connection.Disconnected += OnDisconnected; _connection.Fault += OnConnectionFault; }
public ServerClient(string identity, IExtensionRegistry extensionRegistry, BufferManager bufferManager) { ServerName = identity; _bufferManager = bufferManager; _extensionService = new ExtensionService(extensionRegistry, DeliverMessage); _connection = new Connection.Connection(ServerName, _extensionService, true, _bufferManager) { ExtensionFrameReceived = OnExtensionFrame, MessageFrameReceived = OnMessageFrame, WriteCompleted = OnWriteCompleted, }; _connection.HandshakeReceived += OnHandshakeFrame; _connection.Disconnected += HandleRemoteDisconnect; _state = ServerState.WaitingOnInitialHandshake; ServerName = "FastSocket v" + Major + "." + Minor; }
public static FunctionIndexer Create(CloudStorageAccount account = null, INameResolver nameResolver = null, IExtensionRegistry extensionRegistry = null) { Mock<IServiceProvider> services = new Mock<IServiceProvider>(MockBehavior.Strict); StorageClientFactory clientFactory = new StorageClientFactory(); services.Setup(p => p.GetService(typeof(StorageClientFactory))).Returns(clientFactory); IStorageAccount storageAccount = account != null ? new StorageAccount(account, services.Object) : null; IStorageAccountProvider storageAccountProvider = new SimpleStorageAccountProvider(services.Object) { StorageAccount = account }; IExtensionTypeLocator extensionTypeLocator = new NullExtensionTypeLocator(); ContextAccessor<IMessageEnqueuedWatcher> messageEnqueuedWatcherAccessor = new ContextAccessor<IMessageEnqueuedWatcher>(); ContextAccessor<IBlobWrittenWatcher> blobWrittenWatcherAccessor = new ContextAccessor<IBlobWrittenWatcher>(); ISharedContextProvider sharedContextProvider = new SharedContextProvider(); TestTraceWriter logger = new TestTraceWriter(TraceLevel.Verbose); SingletonManager singletonManager = new SingletonManager(); ITriggerBindingProvider triggerBindingProvider = DefaultTriggerBindingProvider.Create(nameResolver, storageAccountProvider, extensionTypeLocator, new FixedHostIdProvider("test"), new SimpleQueueConfiguration(maxDequeueCount: 5), BackgroundExceptionDispatcher.Instance, messageEnqueuedWatcherAccessor, blobWrittenWatcherAccessor, sharedContextProvider, new DefaultExtensionRegistry(), singletonManager, logger); IBindingProvider bindingProvider = DefaultBindingProvider.Create(nameResolver, storageAccountProvider, extensionTypeLocator, messageEnqueuedWatcherAccessor, blobWrittenWatcherAccessor, new DefaultExtensionRegistry()); TraceWriter trace = new TestTraceWriter(TraceLevel.Verbose); IFunctionOutputLoggerProvider outputLoggerProvider = new NullFunctionOutputLoggerProvider(); IFunctionOutputLogger outputLogger = outputLoggerProvider.GetAsync(CancellationToken.None).Result; IFunctionExecutor executor = new FunctionExecutor(new NullFunctionInstanceLogger(), outputLogger, BackgroundExceptionDispatcher.Instance, trace, null); if (extensionRegistry == null) { extensionRegistry = new DefaultExtensionRegistry(); } return new FunctionIndexer(triggerBindingProvider, bindingProvider, DefaultJobActivator.Instance, executor, extensionRegistry, new SingletonManager(), trace); }
public TableArgumentBindingExtensionProvider(IExtensionRegistry extensions) { _bindingExtensionsProviders = extensions.GetExtensions<IArgumentBindingProvider<ITableArgumentBinding>>(); }
public SharpMessagingServer(IExtensionRegistry extensionProvider) { _extensionProvider = extensionProvider; //ServerName = "FastSocket v" + Major + "." + Minor; ServerName = "SERVER"; }
public ExtensionService(IExtensionRegistry registry, Action<MessageFrame> sendDirectly) { _registry = registry; _sendDirectly = sendDirectly; }