protected virtual void AddMessageHandler <T>(Func <IMessage <T>, object> processMessageFn, Action <IMessage <T>, Exception> processExceptionEx, TQueueHandlerConfiguration queueHandlerConfiguration, MessageHandlerConfiguration messageHandlerConfiguration) { if (RegisteredHandlers.ContainsKey(typeof(T))) { throw new ArgumentException("Message handler has already been registered for type: " + typeof(T).Name); } this.RegisteredHandlers.Add(typeof(T), RegisterHandler(processMessageFn, processExceptionEx, queueHandlerConfiguration, messageHandlerConfiguration)); }
public static FileHandler GetFileHandler(FileHandler.FileType fileType) { FileHandler newHandler = null; if (RegisteredHandlers.ContainsKey(fileType)) { newHandler = Activator.CreateInstance(RegisteredHandlers[fileType]) as FileHandler; } else { Logger.Error("Unable to determine file parser type"); } return(newHandler); }
protected void AddMessageHandler <T, TResponse>(Func <IMessage <T>, TResponse> processMessageFn, Action <IMessage <T>, Exception> processExceptionEx, TQueueHandlerConfiguration queueHandlerConfiguration, MessageHandlerConfiguration messageHandlerConfiguration) { if (RegisteredHandlers.ContainsKey(typeof(T))) { throw new ArgumentException("Message handler has already been registered for type: " + typeof(T).Name); } var wrappedTypedResponseFn = WrapTypedResponseHandler(processMessageFn); this.AddMessageHandler <T>(wrappedTypedResponseFn, processExceptionEx, queueHandlerConfiguration, messageHandlerConfiguration); // this.RegisteredHandlers.Add(typeof(T), RegisterHandler(wrappedTypedResponseFn, processExceptionEx, noOfThreads)); if (typeof(TResponse) == typeof(object)) { return; } this.ResponseMessageTypes.Add(typeof(TResponse)); //// Need to enable queue creation }