Add() 공개 메소드

Adds a IBuildListener to the end of the collection.
public Add ( IBuildListener item ) : int
item IBuildListener The to be added to the end of the collection.
리턴 int
예제 #1
0
        /// <summary>
        /// Replaces existing build event handlers with a handler that enqueues
        /// build events into this queue
        /// </summary>
        /// <param name="proj"></param>
        public void Install(Project proj, String hideTarget)
        {
            _hideTarget = hideTarget;

            BuildListenerCollection coll = new BuildListenerCollection();
            coll.Add(this);

            proj.DetachBuildListeners();
            proj.AttachBuildListeners(coll);
        }
예제 #2
0
        /// <summary>
        /// Add the listeners specified in the command line arguments,
        /// along with the default listener, to the specified project.
        /// </summary>
        /// <param name="cmdlineOptions">The command-line options.</param>
        /// <param name="project">The <see cref="Project" /> to add listeners to.</param>
        private static void AddBuildListeners(CommandLineOptions cmdlineOptions, Project project)
        {
            BuildListenerCollection listeners   = new BuildListenerCollection();
            IBuildLogger            buildLogger = null;
            TextWriter outputWriter             = Console.Out;

            if (cmdlineOptions.LogFile != null)
            {
                try {
                    outputWriter = new StreamWriter(new FileStream(cmdlineOptions.LogFile.FullName, FileMode.Create, FileAccess.Write, FileShare.Read));
                } catch (Exception ex) {
                    throw new BuildException(string.Format(CultureInfo.InvariantCulture,
                                                           ResourceUtils.GetString("NA1005"), cmdlineOptions.LogFile.FullName),
                                             Location.UnknownLocation, ex);
                }
            }

            if (cmdlineOptions.LoggerType != null)
            {
                try {
                    buildLogger = ConsoleDriver.CreateLogger(cmdlineOptions.LoggerType);
                } catch (Exception ex) {
                    throw new BuildException(string.Format(CultureInfo.InvariantCulture,
                                                           ResourceUtils.GetString("NA1003"), cmdlineOptions.LoggerType),
                                             Location.UnknownLocation, ex);
                }
            }

            // if no logger was specified on the commandline or an error occurred
            // while creating an instance of the specified logger, use the default
            // logger.
            if (buildLogger == null)
            {
                buildLogger = new DefaultLogger();
            }

            // only set OutputWriter if build logger does not derive from
            // DefaultLogger, or if logfile was specified on command-line.
            // Setting the OutputWriter of the DefaultLogger to Console.Out
            // would cause issues with unit tests.
            if (!(buildLogger is DefaultLogger) || cmdlineOptions.LogFile != null)
            {
                buildLogger.OutputWriter = outputWriter;
            }

            // set threshold of build logger equal to threshold of project
            buildLogger.Threshold = project.Threshold;

            // set emacs mode
            buildLogger.EmacsMode = cmdlineOptions.EmacsMode;

            // add build logger to listeners collection
            listeners.Add(buildLogger);

            // add listeners to listener collection
            foreach (string listenerTypeName in cmdlineOptions.Listeners)
            {
                try {
                    IBuildListener listener = ConsoleDriver.CreateListener(listenerTypeName);
                    listeners.Add(listener);
                } catch (Exception ex) {
                    throw new BuildException(string.Format(CultureInfo.InvariantCulture,
                                                           ResourceUtils.GetString("NA1002"), listenerTypeName),
                                             Location.UnknownLocation, ex);
                }
            }

            // attach listeners to project
            project.AttachBuildListeners(listeners);
        }
예제 #3
0
        /// <summary>
        /// Add the listeners specified in the command line arguments,
        /// along with the default listener, to the specified project.
        /// </summary>
        /// <param name="cmdlineOptions">The command-line options.</param>
        /// <param name="project">The <see cref="Project" /> to add listeners to.</param>
        private static void AddBuildListeners(CommandLineOptions cmdlineOptions, Project project)
        {
            BuildListenerCollection listeners = new BuildListenerCollection();
            IBuildLogger buildLogger = null;
            TextWriter outputWriter = Console.Out;

            if (cmdlineOptions.LogFile != null) {
                try {
                    outputWriter = new StreamWriter(new FileStream(cmdlineOptions.LogFile.FullName, FileMode.Create, FileAccess.Write, FileShare.Read));
                } catch (Exception ex) {
                    throw new BuildException(string.Format(CultureInfo.InvariantCulture,
                        ResourceUtils.GetString("NA1005"), cmdlineOptions.LogFile.FullName),
                        Location.UnknownLocation, ex);
                }
            }

            if (cmdlineOptions.LoggerType != null) {
                try {
                    buildLogger = ConsoleDriver.CreateLogger(cmdlineOptions.LoggerType);
                } catch (Exception ex) {
                    throw new BuildException(string.Format(CultureInfo.InvariantCulture,
                        ResourceUtils.GetString("NA1003"), cmdlineOptions.LoggerType),
                        Location.UnknownLocation, ex);
                }
            }

            // if no logger was specified on the commandline or an error occurred
            // while creating an instance of the specified logger, use the default
            // logger.
            if (buildLogger == null) {
                buildLogger = new DefaultLogger();
            }

            // only set OutputWriter if build logger does not derive from
            // DefaultLogger, or if logfile was specified on command-line.
            // Setting the OutputWriter of the DefaultLogger to Console.Out
            // would cause issues with unit tests.
            if (!typeof(DefaultLogger).IsAssignableFrom(buildLogger.GetType()) || cmdlineOptions.LogFile != null) {
                buildLogger.OutputWriter = outputWriter;
            }

            // set threshold of build logger equal to threshold of project
            buildLogger.Threshold = project.Threshold;

            // set emacs mode
            buildLogger.EmacsMode = cmdlineOptions.EmacsMode;

            // add build logger to listeners collection
            listeners.Add(buildLogger);

            // add listeners to listener collection
            foreach (string listenerTypeName in cmdlineOptions.Listeners) {
                try {
                    IBuildListener listener = ConsoleDriver.CreateListener(listenerTypeName);
                    listeners.Add(listener);
                } catch (Exception ex) {
                    throw new BuildException(string.Format(CultureInfo.InvariantCulture,
                        ResourceUtils.GetString("NA1002"), listenerTypeName),
                        Location.UnknownLocation, ex);
                }
            }

            // attach listeners to project
            project.AttachBuildListeners(listeners);
        }
예제 #4
0
        /// <summary>
        /// Add the listeners specified in the command line arguments,
        /// along with the default listener, to the specified project.
        /// </summary>
        private void AddBuildListeners()
        {
            Assert.NotNull(_project, "project");

            // Create new logger
            IBuildLogger buildLogger = new GuiLogger(_logger);

            // set threshold of build logger equal to threshold of project
            buildLogger.Threshold = _project.Threshold;

            // add build logger to listeners collection
            BuildListenerCollection listeners = new BuildListenerCollection();
            listeners.Add(buildLogger);

            // attach listeners to project
            _project.AttachBuildListeners(listeners);
        }