crashanalysercmd/UI/Plugins/CAPluginCrashAnalyser/Plugin/CAPluginCrashAnalysis.cs
author Matti Laitinen <matti.t.laitinen@nokia.com>
Thu, 11 Feb 2010 15:50:58 +0200
changeset 0 818e61de6cd1
permissions -rw-r--r--
Add initial version of Crash Analyser cmdline under EPL

/*
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
*
* Contributors:
* 
* Description:
*
*/
using System.Threading;
using SymbianUtils;
using CrashAnalyserEngine.Engine;
using CrashAnalyserEngine.Plugins;
using CrashItemLib.Engine;
using CrashItemLib.Engine.Interfaces;
using CAPCrashAnalysis.CommandLine;

namespace CAPCrashAnalysis.Plugin
{
	public class CAPluginCrashAnalysis : CAPlugin, ICIEngineUI
	{
		#region Constructors
        public CAPluginCrashAnalysis( CAEngine aEngine )
            : base( aEngine, KPluginName )
		{
            iCommandLineEngine = new CACmdLineEngine( this );
            iCrashItemEngine = new CIEngine( aEngine.DebugEngine, this );
		}
		#endregion

        #region Constants
        public const string KPluginName = "Crash File Analysis";
        #endregion

		#region API
        public string GetSupportedCrashFileTypes()
        {
            return CrashItemEngine.PluginRegistry.GetSupportedCrashFileTypes();
        }

        public void PrimeSources( string[] aFileNames )
        {
            // Seed up the crash item engine with all our file names
            CrashItemEngine.ClearAll();
            foreach ( string file in aFileNames )
            {
                CrashItemEngine.Prime( new System.IO.FileInfo( file ) );
            }
        }

        public void IdentifyCrashes( TSynchronicity aSynchronicity )
        {
            CrashItemEngine.IdentifyCrashes( aSynchronicity );
        }
        #endregion

        #region From CAPlugin
        public override bool IsCommandLineHandler( string aName )
        {
            bool ret = iCommandLineEngine.IsCommandLineHandler( aName );
            return ret;
        }

        public override int RunCommandLineOperations()
        {
            int error = iCommandLineEngine.RunCommandLineOperations();
            return error;
        }

        public override CAPlugin.TType Type
        {
            get { return CAPlugin.TType.ETypeEngine; }
        }
        #endregion

		#region Properties
        public CIEngine CrashItemEngine
        {
            get { return iCrashItemEngine; }
        }
		#endregion

        #region Event handlers
        #endregion

        #region Internal methods
        #endregion

        #region From ICIEngineUI
        void ICIEngineUI.CITrace( string aMessage )
        {
            base.UIEngine.UIManager.UITrace( aMessage );
        }

        void ICIEngineUI.CITrace( string aFormat, params object[] aParameters )
        {
            base.UIEngine.UIManager.UITrace( aFormat, aParameters );
        }
        #endregion

        #region Operators
        public static implicit operator CIEngine( CAPluginCrashAnalysis aCrashFileEngine )
        {
            return aCrashFileEngine.CrashItemEngine;
        }
        #endregion

        #region Data members
        private readonly CIEngine iCrashItemEngine;
        private readonly CACmdLineEngine iCommandLineEngine;
        #endregion
    }
}