public LogSourcePreprocessing(
                LogSourcesPreprocessingManager owner,
                IPreprocessingUserRequests userRequests,
                Action <YieldedProvider> providerYieldedCallback,
                RecentLogEntry recentLogEntry,
                PreprocessingOptions options
                ) :
                this(owner, userRequests, providerYieldedCallback)
            {
                this.options = options;
                preprocLogic = async() =>
                {
                    IConnectionParams            preprocessedConnectParams = null;
                    IFileBasedLogProviderFactory fileBasedFactory          = recentLogEntry.Factory as IFileBasedLogProviderFactory;
                    bool interrupted = false;
                    if (fileBasedFactory != null)
                    {
                        using (var perfop = new Profiling.Operation(trace, recentLogEntry.Factory.GetUserFriendlyConnectionName(recentLogEntry.ConnectionParams)))
                        {
                            PreprocessingStepParams currentParams = null;
                            foreach (var loadedStep in LoadStepsFromConnectionParams(recentLogEntry.ConnectionParams))
                            {
                                currentParams = await ProcessLoadedStep(loadedStep, currentParams).ConfigureAwait(continueOnCapturedContext: !isLongRunning);

                                perfop.Milestone(string.Format("completed {0} {1}", loadedStep.Action, loadedStep.Param));
                                if (currentParams == null)
                                {
                                    interrupted = true;
                                    break;
                                }
                                currentDescription = genericProcessingDescription;
                            }
                            if (currentParams != null)
                            {
                                preprocessedConnectParams = fileBasedFactory.CreateParams(currentParams.Uri);
                                currentParams.DumpToConnectionParams(preprocessedConnectParams);
                            }
                        }
                    }
                    if (!interrupted)
                    {
                        var provider = new YieldedProvider(recentLogEntry.Factory, preprocessedConnectParams ?? recentLogEntry.ConnectionParams, "",
                                                           (this.options & PreprocessingOptions.MakeLogHidden) != 0);
                        ((IPreprocessingStepCallback)this).YieldLogProvider(provider);
                    }
                };
            }
Example #2
0
        void ApplyIndependentLogsMode()
        {
            string tmp = ((string)view.ReadControlValue(ControlId.FileSelector)).Trim();

            if (tmp == "")
            {
                return;
            }
            view.WriteControlValue(ControlId.FileSelector, "");
            foreach (string fname in FileListUtils.ParseFileList(tmp))
            {
                try
                {
                    model.Create(factory, factory.CreateParams(fname));
                }
                catch (Exception e)
                {
                    alerts.ShowPopup("Error",
                                     string.Format("Failed to create log source for '{0}': {1}", fname, e.Message),
                                     AlertFlags.Ok | AlertFlags.WarningIcon);
                    break;
                }
            }
        }