diff -r a151135b0cf9 -r aa2539c91954 tracesrv/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/decodeplugins/dictionary/encoder/Trace.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tracesrv/tracecompiler/src/com.nokia.tracecompiler/src/com/nokia/tracecompiler/decodeplugins/dictionary/encoder/Trace.java Fri Oct 08 14:56:39 2010 +0300 @@ -0,0 +1,120 @@ +/* +* Copyright (c) 2008 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: +* +* Writes Trace objects +* +*/ +package com.nokia.tracecompiler.decodeplugins.dictionary.encoder; + +/** + * Writes Trace objects + * + */ +public class Trace { + + /** + * Starts <trace data-ref=""> structure + * + * @param dataRef + * reference to actual data stored in <data> structure + * @param name + * name of the trace. Can be null if trace doesn't have name + */ + static void startTrace(int dataRef, String name) { + StringBuffer sb = new StringBuffer(); + sb.append(TagWriter.TRACE_START_OPEN); + if (dataRef >= 0) { + TagWriter.appendAttribute(sb, TagWriter.DATA_REF_ATTR, String + .valueOf(dataRef), false); + + if (name != null && name != "") { //$NON-NLS-1$ + TagWriter.appendAttribute(sb, TagWriter.NAME_ATTR, name, true); + } + } + sb.append(TagWriter.TAG_CLOSE); + TagWriter.write(sb.toString(), TagWriter.INDENT_3); + + } + + /** + * Writes </trace> + */ + static void endTrace() { + TagWriter.write(TagWriter.TRACE_END, TagWriter.INDENT_3); + } + + /** + * Writes <options> + */ + public static void startOptions() { + Options.startOptions(TagWriter.INDENT_4); + } + + /** + * Writes </options> + */ + public static void endOptions() { + Options.endOptions(TagWriter.INDENT_4); + } + + /** + * Writes user defined tags <mytagXXX>value</mytagXXX> + * + * @param tag + * user defined tag + * @param value + * value of the tag + */ + public static void writeOption(String tag, String value) { + Options.writeOptions(tag, value, TagWriter.INDENT_5); + } + + /** + * Writes <instance id="" locRef="" line="" methodName="" + * className=""/> structure + * + * @param id + * unique id number for this instance in current group structure + * @param locRef + * unique location reference for instance (reference to + * <locations> structure + * @param line + * positive number of line where data were founded in source file + * @param methodName + * name of the function from which trace was generated + * @param className + * this is class name or namespace name for method described in + * methodname attribute + */ + public static void writeInstance(int id, int locRef, int line, + String methodName, String className) { + StringBuffer sb = new StringBuffer(); + sb.append(TagWriter.INSTANCE_START_OPEN); + TagWriter.appendAttribute(sb, TagWriter.ID_ATTR, String.valueOf(id), + false); + TagWriter.appendAttribute(sb, TagWriter.LOC_REF_ATTR, String + .valueOf(locRef), true); + TagWriter.appendAttribute(sb, TagWriter.LINE_ATTR, + String.valueOf(line), true); + TagWriter.appendAttribute(sb, TagWriter.METHODNAME_ATTR, methodName, + true); + if (className != null) { + TagWriter.appendAttribute(sb, TagWriter.CLASSNAME_ATTR, className, + true); + } + sb.append(TagWriter.TAG_END); + TagWriter.write(sb.toString(), TagWriter.INDENT_4); + } +}