package org.eclipse.linuxtools.ctf.core.event.types;
/**
- * <b><u>ArrayDeclaration</u></b>
+ * A CTF array declaration
+ *
+ * Arrays are fixed-length. Their length is declared in the type
+ * declaration within the meta-data. They contain an array of "inner type"
+ * elements, which can refer to any type not containing the type of the
+ * array being declared (no circular dependency). The length is the number
+ * of elements in an array.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class ArrayDeclaration implements IDeclaration {
import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
/**
- * <b><u>ArrayDefinition</u></b>
+ * A CTF array definiton
+ *
+ * Arrays are fixed-length. Their length is declared in the type
+ * declaration within the meta-data. They contain an array of "inner type"
+ * elements, which can refer to any type not containing the type of the
+ * array being declared (no circular dependency). The length is the number
+ * of elements in an array.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class ArrayDefinition extends Definition {
import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
/**
- * <b><u>Definition</u></b><br>
- * A definition is like an object of a declaration class. It fills the declaration with values. <br>
+ * A CTF definiton
+ *
+ * A definition is like an object of a declaration class. It fills the declaration
+ * with values. <br>
* An example: <br>
* int i = 0; <br>
* <b>int</b> is the declaration.<br>
* <b>i</b> is the definition.<br>
* <b>0</b> is the value assigned to the definition, not the declaration.<br>
*
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public abstract class Definition {
package org.eclipse.linuxtools.ctf.core.event.types;
/**
- * <b><u>Encoding</u></b>
- * <p>
- * Encoding types
+ * CTF encoding types
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public enum Encoding {
/** UTF-8 encoding */
import java.util.List;
/**
- * <b><u>EnumDeclaration</u></b>
+ * A CTF enum declaration.
+ *
+ * The definition of a enum point basic data type. It will take the data
+ * from a trace and store it (and make it fit) as an integer and a string.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class EnumDeclaration implements IDeclaration {
import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
/**
- * <b><u>EnumDefinition</u></b>
+ * A CTF enum definition.
+ *
+ * The definition of a enum point basic data type. It will take the data
+ * from a trace and store it (and make it fit) as an integer and a string.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class EnumDefinition extends Definition {
import java.nio.ByteOrder;
/**
- * Float declaration
+ * A CTF float declaration.
+ *
+ * The declaration of a floating point basic data type.
*
+ * @version 1.0
* @author Matthew Khouzam
- *
*/
public class FloatDeclaration implements IDeclaration {
import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
/**
- * Float definition
- * @author Matthew Khouzam
+ * A CTF float definition.
+ *
+ * The definition of a floating point basic data type. It will take the data
+ * from a trace and store it (and make it fit) as a double.
*
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class FloatDefinition extends Definition {
// ------------------------------------------------------------------------
package org.eclipse.linuxtools.ctf.core.event.types;
/**
- * <b><u>IDeclaration</u></b>
+ * A CTF data type declaration.
+ *
+ * An example: <br>
+ * int i = 0; <br>
+ * <b>int</b> is the declaration.<br>
+ * <b>i</b> is the definition.<br>
+ * <b>0</b> is the value assigned to the definition, not the declaration.<br>
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public interface IDeclaration {
package org.eclipse.linuxtools.ctf.core.event.types;
/**
- * <b><u>IDefinitionScope</u></b>
+ * The scope of a CTF definition. Used for compound types.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public interface IDefinitionScope {
import java.nio.ByteOrder;
/**
- * <b><u>IntegerDeclaration</u></b>
+ * A CTF integer declaration.
+ *
+ * The declaration of a integer basic data type.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class IntegerDeclaration implements IDeclaration {
import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
/**
- * <b><u>IntegerDefinition</u></b>
- * <p>
+ * A CTF integer definition.
+ *
+ * The definition of a integer basic data type. It will take the data
+ * from a trace and store it (and make it fit) as a long.
+ *
* TODO: Reading integers with an endianness different from the trace endianness
* is not supported
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class IntegerDefinition extends Definition {
import org.eclipse.linuxtools.ctf.core.trace.CTFReaderException;
/**
- * <b><u>SequenceDeclaration</u></b> <br>
+ * A CTF sequence declaration.
+ *
* An array where the size is fixed but declared in the trace, unlike array
* where it is declared with a literal
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class SequenceDeclaration implements IDeclaration {
import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
/**
- * <b><u>SequenceDefinition</u></b>
+ * A CTF sequence definition (a fixed-size array).
+ *
+ * An array where the size is fixed but declared in the trace, unlike array
+ * where it is declared with a literal
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class SequenceDefinition extends Definition {
package org.eclipse.linuxtools.ctf.core.event.types;
/**
- * <b><u>StringDeclaration</u></b>
+ * A CTF string declaration.
+ *
+ * Strings are an array of bytes of variable size and are terminated by a '\0'
+ * "NULL" character. Their encoding is described in the TSDL meta-data. In
+ * absence of encoding attribute information, the default encoding is UTF-8.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class StringDeclaration implements IDeclaration {
import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
/**
- * <b><u>StringDefinition</u></b>
+ * A CTF string definition (similar to a C null-terminated byte array).
+ *
+ * Strings are an array of bytes of variable size and are terminated by a '\0'
+ * "NULL" character. Their encoding is described in the TSDL meta-data. In
+ * absence of encoding attribute information, the default encoding is UTF-8.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class StringDefinition extends Definition {
import java.util.List;
/**
- * <b><u>StructDeclaration</u></b>
+ * A CTF structure declaration.
+ *
+ * A structure is similar to a C structure, it is a compound data type that
+ * contains other datatypes in fields. they are stored in an hashmap and indexed
+ * by names which are strings.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class StructDeclaration implements IDeclaration {
import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
/**
- * <b><u>StructDefinition</u></b>
+ * A CTF structure definition (similar to a C structure).
+ *
+ * A structure is similar to a C structure, it is a compound data type that
+ * contains other datatypes in fields. they are stored in an hashmap and indexed
+ * by names which are strings.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class StructDefinition extends Definition implements IDefinitionScope {
import java.util.HashMap;
/**
- * <b><u>VariantDeclaration</u></b>
+ * A CTFC variant declaration.
+ *
+ * A variant is similar to a C union, only taking the minimum size of the types,
+ * it is a compound data type that contains other datatypes in fields. they are
+ * stored in an hashmap and indexed by names which are strings.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class VariantDeclaration implements IDeclaration {
import org.eclipse.linuxtools.internal.ctf.core.event.io.BitBuffer;
/**
- * <b><u>VariantDefinition</u></b>
+ * A CTF variant definition (similar to a C union).
+ *
+ * A variant is similar to a C union, only taking the minimum size of the types,
+ * it is a compound data type that contains other datatypes in fields. they are
+ * stored in an hashmap and indexed by names which are strings.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class VariantDefinition extends Definition implements IDefinitionScope {
/**
* General exception that is thrown when there is a problem somewhere with the
* CTF trace reader.
- *
- * @author alexmont
- *
+ *
+ * @version 1.0
+ * @author Alexandre Montplaisir
*/
public class CTFReaderException extends Exception {
import org.eclipse.linuxtools.internal.ctf.core.trace.StreamInputPacketIndex;
/**
- * <b><u>CTFTrace</u></b>
- * <p>
+ * A CTF trace on the file system.
+ *
* Represents a trace on the filesystem. It is responsible of parsing the
* metadata, creating declarations data structures, indexing the event packets
* (in other words, all the work that can be shared between readers), but the
import org.eclipse.linuxtools.internal.ctf.core.trace.StreamInputReaderTimestampComparator;
/**
- * Reads the events of a trace.
+ * A CTF trace reader. Reads the events of a trace.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Alexandre Montplaisir
*/
-
public class CTFTraceReader {
// ------------------------------------------------------------------------
import org.eclipse.linuxtools.internal.ctf.core.event.metadata.exceptions.ParseException;
/**
- * <b><u>Metadata</u></b>
- * <p>
- * Represents a metadata file
+ * The CTF trace metadata file
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class Metadata {
import org.eclipse.linuxtools.internal.ctf.core.trace.StreamInputPacketIndexEntry;
/**
- * <b><u>StreamInputPacketReader</u></b>
- * <p>
- * Reads the events of a packet of a trace file.
+ * CTF trace packet reader. Reads the events of a packet of a trace file.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class StreamInputPacketReader implements IDefinitionScope {
import org.eclipse.linuxtools.internal.ctf.core.trace.StreamInputPacketIndexEntry;
/**
- * <b><u>StreamInputReader</u></b>
- * <p>
- * Reads the events of a trace file.
+ * A CTF trace event reader. Reads the events of a trace file.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class StreamInputReader {
import java.util.UUID;
/**
- * <b><u>Utils</u></b>
- * <p>
* Various utilities.
+ *
+ * @version 1.0
+ * @author Matthew Khouzam
+ * @author Simon Marchi
*/
public class Utils {
import org.eclipse.linuxtools.internal.lttng.jni.exception.JniNoSuchEventException;
/**
- * <b><u>JniEvent</u></b> <p>
- *
- * A JniEvent has the actual content that got traced by Lttng.<br>
+ * The LTTng event in its native (C) format.<br>
* Provides access to the LttEvent C structure in java. <p>
*
* Most important fields in the JniEvent are :
* <b>NOTE</b><p>
* This class is ABSTRACT, you need to extends it to support your specific LTTng version.<p>
*
+ * @version 0.1
+ * @author William Bourque
*/
public abstract class JniEvent extends Jni_C_Common implements Comparable<JniEvent>
{
import org.eclipse.linuxtools.internal.lttng.jni.exception.JniMarkerException;
/**
- * <b><u>JniMarker</u></b><p>
- *
* A JniMarker contain information how to interpret the unparsed content (payload) of an event.<br>
* Each JniMarker contains several MarkerFields for each fields in the event's payload.
*
* This class is ABSTRACT, you need to extends it to support your specific LTTng version.<br>
* Please look at the abstract functions to override at the bottom of this file.<p>
*
+ * @version 0.1
+ * @author William Bourque
*/
public abstract class JniMarker extends Jni_C_Common
{
/**
- * <b><u>JniMarkerField</u></b> <p>
* A JniMarkerField is one of the field of the unparsed content (payload) of an event. <p>
*
* Provides access to the marker_field C structure (from LTT) in java.<p>
* <b>NOTE</b><p>
* This class is ABSTRACT, you need to extends it to support your specific LTTng version.<p>
*
+ * @version 0.1
+ * @author William Bourque
*/
public abstract class JniMarkerField extends Jni_C_Common
{
import org.eclipse.linuxtools.internal.lttng.jni.common.Jni_C_Pointer;
/**
- * <b><u>JniParser</u></b><p>
- *
* JniParser is used to parse an event payload into something usable.<p>
*
* All methods are static, the parser shouldn't be instantiated.
* <b>NOTE</b><p>
* This class is ABSTRACT, you need to extends it to support your specific LTTng version.<p>
*
+ * @version 0.1
+ * @author William Bourque
*/
public abstract class JniParser extends Jni_C_Common
{
import org.eclipse.linuxtools.internal.lttng.jni.exception.JniTracefileWithoutEventException;
/**
- * <b><u>JniTrace</u></b>
- * <p>
* This is the top level class in the JNI. It provides access to the LttTrace C
* structure in java.
* <p>
* This class is ABSTRACT, you need to extends it to support your specific LTTng
* version.<br>
* Please look at the abstract functions to override at the bottom of this file.
- * <p>
+ *
+ * @version 0.1
+ * @author William Bourque
*/
public abstract class JniTrace extends Jni_C_Common {
import org.eclipse.linuxtools.internal.lttng.jni.exception.JniTracefileWithoutEventException;
/**
- * <b><u>JniTracefile</u></b>
- * <p>
* A tracefile own an event of a certain type.<br>
* Provides access to the LttTracefile C structure in java.
* <p>
* This class is ABSTRACT, you need to extends it to support your specific LTTng version.<br>
* Please look at the abstract functions to override at the bottom of this file.<p>
*
+ * @version 0.1
+ * @author William Bourque
*/
public abstract class JniTracefile extends Jni_C_Common
{
/**
- * <b><u>Jni_C_Common</u></b>
- * <p>
* Common constants and methods that should be shared between JNI objects.
*
* <b>NOTE</b><p>
* This class is ABSTRACT, and will be extended by each LTTng structure (Trac, Tracefile, Event, ...)
*
+ * @version 0.1
+ * @author William Bourque
*/
public abstract class Jni_C_Common extends Jni_C_Constant
{
import org.eclipse.linuxtools.lttng.jni.JniTrace;
/**
- * <b><u>JniTraceFactory</u></b>
- * <p>
* This class factory is responsible of returning the correct JniTrace implementation from a (valid) trace path.<p>
*
* The different version supported are listed below and the same version string are expected to be returned by JniTraceVersion.<br>
* Each version need a different Lttv library so each need its liblttvtraceread-X.Y.so installed and available on the system.
*
+ * @version 0.1
+ * @author William Bourque
*/
public class JniTraceFactory {
import org.eclipse.linuxtools.internal.lttng.jni.exception.JniTraceVersionException;
/**
- * <b><u>JniTraceVersion</u></b>
- * <p>
* This class is responsible of returning the correct version number of a trace at a certain given path.<p>
*
* The class will call the C library to get the correct version number from the trace.<p>
*
* Lttv library loader (liblttvtraceread_loader.so) and the default Lttv library (liblttvtraceread.so) must be installed on system and available to java.
*
+ * @version 0.1
+ * @author William Bourque
*/
public class JniTraceVersion {
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
\r
\r
+/**\r
+ * Filter node for the 'and' operation\r
+ * \r
+ * @version 1.0\r
+ * @author Patrick Tasse\r
+ */\r
public class TmfFilterAndNode extends TmfFilterTreeNode {\r
\r
public static final String NODE_NAME = "AND"; //$NON-NLS-1$\r
import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;\r
\r
\r
+/**\r
+ * Filter node for the comparison operation\r
+ * \r
+ * @version 1.0\r
+ * @author Patrick Tasse\r
+ */\r
public class TmfFilterCompareNode extends TmfFilterTreeNode {\r
\r
public static final String NODE_NAME = "COMPARE"; //$NON-NLS-1$\r
public static final String TYPE_ATTR = "type"; //$NON-NLS-1$\r
public static final String VALUE_ATTR = "value"; //$NON-NLS-1$\r
\r
+ /**\r
+ * Supported comparison types\r
+ */\r
public static enum Type {\r
NUM,\r
ALPHA,\r
\r
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
\r
-\r
+/**\r
+ * Filter node for the 'contains' operation\r
+ * \r
+ * @version 1.0\r
+ * @author Patrick Tasse\r
+ */\r
public class TmfFilterContainsNode extends TmfFilterTreeNode {\r
\r
public static final String NODE_NAME = "CONTAINS"; //$NON-NLS-1$\r
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
\r
\r
+/**\r
+ * Filter node for the '==' operation\r
+ * \r
+ * @version 1.0\r
+ * @author Patrick Tasse\r
+ */\r
public class TmfFilterEqualsNode extends TmfFilterTreeNode {\r
\r
public static final String NODE_NAME = "EQUALS"; //$NON-NLS-1$\r
\r
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
\r
-\r
+/**\r
+ * Filter node for an event\r
+ * \r
+ * @version 1.0\r
+ * @author Patrick Tasse\r
+ */\r
public class TmfFilterEventTypeNode extends TmfFilterTreeNode {\r
\r
public static final String NODE_NAME = "EVENTTYPE"; //$NON-NLS-1$\r
\r
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
\r
-\r
+/**\r
+ * Filter node for the regex match\r
+ * \r
+ * @version 1.0\r
+ * @author Patrick Tasse\r
+ */\r
public class TmfFilterMatchesNode extends TmfFilterTreeNode {\r
\r
public static final String NODE_NAME = "MATCHES"; //$NON-NLS-1$\r
\r
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
\r
-\r
+/**\r
+ * Filter node for the event match operation\r
+ * \r
+ * @version 1.0\r
+ * @author Patrick Tasse\r
+ */\r
public class TmfFilterNode extends TmfFilterTreeNode {\r
\r
public static final String NODE_NAME = "FILTER"; //$NON-NLS-1$\r
\r
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
\r
-\r
+/**\r
+ * Filter node for the 'or' operation\r
+ * \r
+ * @version 1.0\r
+ * @author Patrick Tasse\r
+ */\r
public class TmfFilterOrNode extends TmfFilterTreeNode {\r
\r
public static final String NODE_NAME = "OR"; //$NON-NLS-1$\r
\r
import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;\r
\r
-\r
+/**\r
+ * The Filter tree root node\r
+ * \r
+ * @version 1.0\r
+ * @author Patrick Tasse\r
+ */\r
public class TmfFilterRootNode extends TmfFilterTreeNode {\r
\r
public static final String NODE_NAME = "ROOT"; //$NON-NLS-1$\r
import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;\r
\r
/**\r
- * <b><u>TmfFilterTreeNode</u></b>\r
- * <p>\r
- * The Filter Tree node\r
- * <p>\r
+ * The base class for the Filter tree nodes\r
+ * \r
+ * @version 1.0\r
+ * @author Yuriy Vashchuk\r
+ * @author Patrick Tasse\r
*/\r
public abstract class TmfFilterTreeNode implements ITmfFilterTreeNode, Cloneable {\r
\r
import org.xml.sax.helpers.DefaultHandler;\r
\r
/**\r
- * <b><u>FilterContentHandler</u></b>\r
- * <p>\r
- * The Filter SAX Content Handler\r
- * <p>\r
+ * The SAX Content Handler\r
+ * \r
+ * @version 1.0\r
+ * @author Yuriy Vashchuk\r
+ * @author Patrick Tasse\r
*/\r
public class TmfFilterContentHandler extends DefaultHandler {\r
\r
import org.xml.sax.XMLReader;\r
\r
/**\r
- * <b><u>FilterXMLParser</u></b>\r
- * <p>\r
- * This is SAX based XML parser\r
- * <p>\r
+ * The SAX based XML parser\r
+ * \r
+ * @version 1.0\r
+ * @author Yuriy Vashchuk\r
+ * @author Patrick Tasse\r
*/\r
public class TmfFilterXMLParser {\r
\r
import org.w3c.dom.Element;\r
\r
/**\r
- * <b><u>FilterXMLParser</u></b>\r
- * <p>\r
- * This is SAX based XML parser\r
- * <p>\r
+ * The SAX based XML writer\r
+ * \r
+ * @version 1.0\r
+ * @author Yuriy Vashchuk\r
+ * @author Patrick Tasse\r
*/\r
public class TmfFilterXMLWriter {\r
\r