tracesrv/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/TraceCompilerEngineGlobals.java
changeset 56 aa2539c91954
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tracesrv/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/TraceCompilerEngineGlobals.java	Fri Oct 08 14:56:39 2010 +0300
@@ -0,0 +1,255 @@
+/*
+* Copyright (c) 2008-2010 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:
+*
+* Access point to the exported interfaces of TraceCompiler engine
+*
+*/
+package com.nokia.tracecompiler.engine;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import com.nokia.tracecompiler.TraceCompilerLogger;
+import com.nokia.tracecompiler.engine.source.SourceEngine;
+import com.nokia.tracecompiler.model.TraceCompilerException;
+import com.nokia.tracecompiler.model.TraceModel;
+import com.nokia.tracecompiler.plugin.TraceCompilerPlugin;
+import com.nokia.tracecompiler.source.SourceConstants;
+
+/**
+ * Access point to the exported interfaces of TraceCompiler engine
+ * 
+ */
+public class TraceCompilerEngineGlobals {
+
+	/**
+	 * Max group ID
+	 */
+	public static final int MAX_GROUP_ID = 65535; // CodForChk_Dis_Magic
+
+	/**
+	 * Max trace ID
+	 */
+	public static final int MAX_TRACE_ID = 65535; // CodForChk_Dis_Magic
+
+	/**
+	 * TraceCompiler engine instance
+	 */
+	private static TraceCompilerEngine instance;
+	
+	/**
+	 * default licence
+	 */
+	static String defaultLicence;
+	
+	/**
+	 * default licence
+	 */
+	static String defaultLicenceWithHash;
+	
+	/**
+	 * Constructor is hidden
+	 */
+	private TraceCompilerEngineGlobals() {
+	}
+
+	/**
+	 * Starts TraceCompiler engine.
+	 * @throws TraceCompilerException 
+	 */
+	public static void start() throws TraceCompilerException {
+		if (instance == null) {
+			instance = new TraceCompilerEngine();
+			instance.start();
+		}
+	}
+
+	/**
+	 * Shuts down the TraceCompiler instance
+	 * @throws TraceCompilerException 
+	 */
+	public static void shutdown() throws TraceCompilerException {
+		if (instance != null) {
+			instance.shutdown();
+			instance = null;
+		}
+	}
+
+	/**
+	 * Gets the configuration interface. The configuration interface is not
+	 * available until view has been registered.
+	 * 
+	 * @return the configuration
+	 */
+	public static TraceCompilerEngineConfiguration getConfiguration() {
+		return instance.getConfiguration();
+	}
+
+	/**
+	 * Gets the trace model
+	 * 
+	 * @return the model
+	 */
+	public static TraceModel getTraceModel() {
+		return instance.getModel();
+	}
+
+	/**
+	 * Gets the source engine
+	 * 
+	 * @return the source engine
+	 */
+	public static SourceEngine getSourceEngine() {
+		return instance.getSourceEngine();
+	}
+
+	/**
+	 * Gets the trace compiler interface
+	 * 
+	 * @return trace compiler
+	 */
+	public static TraceCompilerEngineInterface getTraceCompiler() {
+		return instance.getTraceCompiler();
+	}
+
+	/**
+	 * Gets the events interface
+	 * 
+	 * @return the events interface
+	 */
+	public static TraceCompilerEngineEvents getEvents() {
+		if (instance != null) {
+			return instance.getEvents();
+		} else {
+			return null;
+		}
+	}
+
+	/**
+	 * Called by a plug-in to register itself
+	 * 
+	 * @param plugin
+	 *            the plugin to be registered
+	 */
+	public static void registerPlugin(TraceCompilerPlugin plugin) {
+		instance.registerPlugin(plugin);
+	}
+
+	/**
+	 * Called by a plug-in to unregister itself
+	 * 
+	 * @param plugin
+	 *            the plugin to be unregistered
+	 */
+	public static void unregisterPlugin(TraceCompilerPlugin plugin) {
+		if (instance != null) {
+			instance.unregisterPlugin(plugin);
+		}
+	}
+
+	/**
+	 * Called by the view plug-in to register the view
+	 * 
+	 * @param view
+	 *            the view
+	 * @throws TraceCompilerException 
+	 */
+	public static void setView(TraceCompilerEngineView view) throws TraceCompilerException {
+		instance.setView(view);
+	}
+
+	/**
+	 * Gets the source context manager
+	 * 
+	 * @return the context manager
+	 */
+	public static SourceContextManager getSourceContextManager() {
+		return instance.getSourceContextManager();
+	}
+
+	/**
+	 * Get project path
+	 * 
+	 * @return project path
+	 */
+	public static String getProjectPath() {
+		String projetcPath = instance.getProjectPath();
+		return projetcPath;
+	}
+
+	/**
+	 * Set project path
+	 * 
+	 * @param path
+	 *            the path
+	 */
+	public static void setProjectPath(String path) {
+		instance.setProjectPath(path);
+	}
+	
+	/**
+	 * get default licence from com/nokia/tracecompiler/licence.lic
+	 * c++ comment format
+	 * @param boolean cppCommented
+	 *  if true, it returns the licence in cpp comment \/** ... **\/
+	 *  else it retuen the licence in a # comment ## ... ##
+	 * @return String licence
+	 */
+	public static String getDefaultLicence(boolean cppCommented) {
+		String licenceResourceName;
+		if (cppCommented) {
+			if (defaultLicence == null) {
+				licenceResourceName = "/com/nokia/tracecompiler/licence.lic"; //$NON-NLS-1$
+				defaultLicence = readLicence(licenceResourceName);
+			}
+			return defaultLicence;
+		} else {
+			if (defaultLicenceWithHash == null) {
+				licenceResourceName = "/com/nokia/tracecompiler/licence_hash.lic"; //$NON-NLS-1$
+				defaultLicenceWithHash = readLicence(licenceResourceName);
+			}
+			return defaultLicenceWithHash;
+		}
+	}
+
+	/**
+	 * read the provided resource file and return the text in it.
+	 */
+	private static String readLicence(String aLicenceResourceName) {
+		String licenceText = null;
+		InputStream is = instance.getClass().getResourceAsStream(aLicenceResourceName); 
+		if (is != null) {
+			InputStreamReader isr = new InputStreamReader(is);
+			BufferedReader br = new BufferedReader(isr);
+			StringBuffer sb = new StringBuffer();
+			String line;
+			try {
+				while ((line = br.readLine()) != null) {
+					sb.append(line + SourceConstants.LINE_FEED);
+				}
+				licenceText = sb.toString();
+				br.close();
+				isr.close();
+				is.close();
+			} catch (IOException e) {
+				TraceCompilerLogger.printWarning(Messages.getString("TraceCompilerErrorMessages.LicenceFileError") + e.getMessage()); //$NON-NLS-1$
+			}
+		}
+		return licenceText;
+	}
+
+}