Example #1
0
        private static FunctionDefinition CreateTriggeredFunctionDefinitionImpl <TTriggerValue>(
            ITriggerBinding triggerBinding, string parameterName, IFunctionExecutor executor, FunctionDescriptor descriptor,
            IReadOnlyDictionary <string, IBinding> nonTriggerBindings, IFunctionInvoker invoker, SingletonManager singletonManager)
        {
            ITriggeredFunctionBinding <TTriggerValue>         functionBinding = new TriggeredFunctionBinding <TTriggerValue>(descriptor, parameterName, triggerBinding, nonTriggerBindings, singletonManager);
            ITriggeredFunctionInstanceFactory <TTriggerValue> instanceFactory = new TriggeredFunctionInstanceFactory <TTriggerValue>(functionBinding, invoker, descriptor);
            ITriggeredFunctionExecutor triggerExecutor = new TriggeredFunctionExecutor <TTriggerValue>(descriptor, executor, instanceFactory);
            IListenerFactory           listenerFactory = new ListenerFactory(descriptor, triggerExecutor, triggerBinding);

            return(new FunctionDefinition(descriptor, instanceFactory, listenerFactory));
        }
Example #2
0
        public IFunctionDefinition CreateFunctionDefinition(IReadOnlyDictionary <string, IBinding> nonTriggerBindings,
                                                            IFunctionInvoker invoker, FunctionDescriptor functionDescriptor)
        {
            ITriggeredFunctionBinding <IStorageQueueMessage> functionBinding =
                new TriggeredFunctionBinding <IStorageQueueMessage>(_parameterName, this, nonTriggerBindings);
            ITriggeredFunctionInstanceFactory <IStorageQueueMessage> instanceFactory =
                new TriggeredFunctionInstanceFactory <IStorageQueueMessage>(functionBinding, invoker,
                                                                            functionDescriptor);
            IListenerFactory listenerFactory = new QueueListenerFactory(_queue, _queueConfiguration,
                                                                        _backgroundExceptionDispatcher, _messageEnqueuedWatcherSetter, _sharedContextProvider, _log,
                                                                        instanceFactory);

            return(new FunctionDefinition(instanceFactory, listenerFactory));
        }
Example #3
0
        public IFunctionDefinition CreateFunctionDefinition(IReadOnlyDictionary <string, IBinding> nonTriggerBindings,
                                                            IFunctionInvoker invoker, FunctionDescriptor functionDescriptor)
        {
            ITriggeredFunctionBinding <IStorageBlob> functionBinding =
                new TriggeredFunctionBinding <IStorageBlob>(_parameterName, this, nonTriggerBindings);
            ITriggeredFunctionInstanceFactory <IStorageBlob> instanceFactory =
                new TriggeredFunctionInstanceFactory <IStorageBlob>(functionBinding, invoker, functionDescriptor);
            IStorageBlobContainer container       = _client.GetContainerReference(_path.ContainerNamePattern);
            IListenerFactory      listenerFactory = new BlobListenerFactory(_hostIdProvider, _queueConfiguration,
                                                                            _backgroundExceptionDispatcher, _blobWrittenWatcherSetter, _messageEnqueuedWatcherSetter,
                                                                            _sharedContextProvider, _log, functionDescriptor.Id, _account, container, _path, instanceFactory);

            return(new FunctionDefinition(instanceFactory, listenerFactory));
        }
Example #4
0
        public IFunctionDefinition CreateFunctionDefinition(IReadOnlyDictionary <string, IBinding> nonTriggerBindings,
                                                            IFunctionInvoker invoker, FunctionDescriptor functionDescriptor)
        {
            ITriggeredFunctionBinding <BrokeredMessage> functionBinding =
                new TriggeredFunctionBinding <BrokeredMessage>(_parameterName, this, nonTriggerBindings);
            ITriggeredFunctionInstanceFactory <BrokeredMessage> instanceFactory =
                new TriggeredFunctionInstanceFactory <BrokeredMessage>(functionBinding, invoker, functionDescriptor);
            IListenerFactory listenerFactory;

            if (_queueName != null)
            {
                listenerFactory = new ServiceBusQueueListenerFactory(_account, _queueName, instanceFactory);
            }
            else
            {
                listenerFactory = new ServiceBusSubscriptionListenerFactory(_account, _topicName, _subscriptionName,
                                                                            instanceFactory);
            }

            return(new FunctionDefinition(instanceFactory, listenerFactory));
        }