diff -r a151135b0cf9 -r aa2539c91954 tracesrv/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/engine/TraceCompilerEngineGlobals.java --- /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; + } + +}