Add support in the UI for LTTng 2.0.
authorMatthew Khouzam <matthew.khouzam@ericsson.com>
Tue, 3 Apr 2012 21:41:06 +0000 (17:41 -0400)
committerFrancois Chouinard <fchouinard@gmail.com>
Mon, 16 Apr 2012 18:20:23 +0000 (14:20 -0400)
signed-off by: YEAH BABY

org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/CTFTraceReader.java
org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInput.java
org.eclipse.linuxtools.ctf.core/src/org/eclipse/linuxtools/ctf/core/trace/StreamInputPacketIndexEntry.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/internal/tmf/core/Tracer.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/ctfadaptor/CtfTmfEvent.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/ctfadaptor/CtfTmfTrace.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterNode.java
org.eclipse.linuxtools.tmf.core/src/org/eclipse/linuxtools/tmf/core/filter/model/TmfFilterTreeNode.java
org.eclipse.linuxtools.tmf.ui/src/org/eclipse/linuxtools/tmf/ui/viewers/events/TmfEventsTable.java

index 5ebf5cc76f2053f90360d375e0f704e62eb91cc2..791cc3fdc527e1d807f86a1ff88a551979a0bff3 100644 (file)
@@ -238,7 +238,21 @@ public class CTFTraceReader {
         if (top == null) {
             return false;
         }
-
+        /*
+         * index if needed
+         */
+        if (hasMoreEvents()) {
+            StreamInputPacketReader packetReader = top.getPacketReader();
+            boolean packetHasMoreEvents = packetReader.hasMoreEvents();
+            StreamInputPacketIndexEntry currentPacket = packetReader
+                    .getCurrentPacket();
+            if (!packetHasMoreEvents) {
+                int n = this.streamInputReaders.indexOf(top);
+                currentPacket.setIndexBegin(startIndex[n]);
+                currentPacket.setIndexEnd(index);
+                startIndex[n] = index + 1;
+            }
+        }
         /*
          * Read the next event of this reader.
          */
@@ -250,28 +264,18 @@ public class CTFTraceReader {
             final long topEnd = top.getCurrentEvent().timestamp;
             this.endTime = Math.max(topEnd, this.endTime);
             this.eventCountPerTraceFile[top.getName()]++;
-        }
-        if (hasMoreEvents()) {
             /*
              * increment the index
              */
             index++;
-            StreamInputPacketReader packetReader = top.getPacketReader();
-
-            if (packetReader.hasMoreEvents() == false) {
-                int n = this.streamInputReaders.indexOf(top);
-                StreamInputPacketIndexEntry currentPacket = packetReader
-                        .getCurrentPacket();
-                currentPacket.setIndexBegin(startIndex[n]);
-                currentPacket.setIndexEnd(index);
-                startIndex[n] = index + 1;
-            }
         }
+        boolean hasMoreEvents = hasMoreEvents();
+
         /*
          * If there is no reader in the queue, it means the trace reader reached
          * the end of the trace.
          */
-        return hasMoreEvents();
+        return hasMoreEvents;
     }
 
     /**
@@ -352,8 +356,8 @@ public class CTFTraceReader {
             }
         } catch (CTFReaderException e) {
             /*
-             * Important, if it failed, it's because it's not yet indexed,
-             * so we have to manually advance to the right value.
+             * Important, if it failed, it's because it's not yet indexed, so we
+             * have to manually advance to the right value.
              */
             for (StreamInputReader streamInputReader : this.streamInputReaders) {
                 /*
@@ -372,16 +376,22 @@ public class CTFTraceReader {
                 this.prio.add(streamInputReader);
             }
         }
-        /*
-         * advance for offset
-         */
-        while ((prio.peek().getCurrentEvent().timestamp < tempTimestamp)
-                && hasMoreEvents()) {
-            this.advance();
+        if (tempIndex == Long.MAX_VALUE) {
+            tempIndex = 0;
         }
         long pos = tempIndex;
-        for (pos = tempIndex; (pos < index) && hasMoreEvents(); pos++) {
-            this.advance();
+        if (index > tempIndex) {
+            /*
+             * advance for offset
+             */
+            while ((prio.peek().getCurrentEvent().timestamp < tempTimestamp)
+                    && hasMoreEvents()) {
+                this.advance();
+            }
+
+            for (pos = tempIndex; (pos < index) && hasMoreEvents(); pos++) {
+                this.advance();
+            }
         }
         this.index = pos;
         return hasMoreEvents();
index 878e8ec302574629524e8af88362b2afcf3d8503..23ad52dc43a1df93ae51664f807d7f2d18461bc6 100644 (file)
@@ -357,6 +357,7 @@ public class StreamInput implements IDefinitionScope {
             packetOffsetBytes += (packetIndex.getPacketSizeBits() + 7) / 8;
 
         }
+        index.getEntries().get(0).setIndexBegin(0L);
     }
 
 }
index 12672a75e39132592c5b27298e3e3894bc54a708..10cfdc2d3ac8e3dd71a98bee81338a709fb510fc 100644 (file)
@@ -56,9 +56,9 @@ public class StreamInputPacketIndexEntry {
     private long timestampEnd = 0;
 
 
-    private long indexBegin = -1;
+    private long indexBegin = Long.MAX_VALUE;
 
-    private long indexEnd = -1;
+    private long indexEnd = Long.MAX_VALUE;
 
     // ------------------------------------------------------------------------
     // Constructors
index 8d1404d193a4d6916a91e00b406c85e0bb91d477..3262e502f7bfa469aa42f83439a86a5401c06097 100644 (file)
@@ -3,6 +3,7 @@ package org.eclipse.linuxtools.internal.tmf.core;
 import java.io.BufferedWriter;\r
 import java.io.FileWriter;\r
 import java.io.IOException;\r
+import java.io.OutputStreamWriter;\r
 \r
 import org.eclipse.core.runtime.Platform;\r
 import org.eclipse.linuxtools.tmf.core.component.ITmfComponent;\r
@@ -27,7 +28,7 @@ public class Tracer {
     static Boolean EVENT = Boolean.FALSE;\r
 \r
     private static String LOGNAME = "trace.log";\r
-    private static BufferedWriter fTraceLog = null;\r
+    private static BufferedWriter fTraceLog = new BufferedWriter(new OutputStreamWriter(System.out));\r
 \r
     private static BufferedWriter openLogFile(String filename) {\r
         BufferedWriter outfile = null;\r
@@ -93,8 +94,9 @@ public class Tracer {
     }\r
 \r
     public static void stop() {\r
-        if (fTraceLog == null)\r
+        if (fTraceLog == null) {\r
             return;\r
+        }\r
 \r
         try {\r
             fTraceLog.close();\r
index 85ee867e79bfe6c73dc94bf11cff19709dc499c8..8ca36fe46cafac1bacfdaf5359cff7a007a9db9a 100644 (file)
@@ -20,12 +20,11 @@ import org.eclipse.linuxtools.ctf.core.event.EventDefinition;
 import org.eclipse.linuxtools.ctf.core.event.types.Definition;
 import org.eclipse.linuxtools.ctf.core.event.types.StructDefinition;
 import org.eclipse.linuxtools.ctf.core.trace.StreamInputReader;
+import org.eclipse.linuxtools.internal.tmf.core.TmfCorePlugin;
 import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
 import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
 import org.eclipse.linuxtools.tmf.core.event.ITmfEventType;
 import org.eclipse.linuxtools.tmf.core.event.ITmfTimestamp;
-import org.eclipse.linuxtools.tmf.core.event.TmfEventField;
-import org.eclipse.linuxtools.tmf.core.event.TmfTimestamp;
 
 /**
  * <b><u>CTFEvent</u></b>
@@ -41,6 +40,7 @@ public final class CtfTmfEvent implements ITmfEvent {
 
     private static final String NO_STREAM = "No stream"; //$NON-NLS-1$
     private static final String EMPTY_CTF_EVENT_NAME = "Empty CTF event"; //$NON-NLS-1$
+    private static final String CONTEXT_ID = "Ctf Event"; //$NON-NLS-1$
 
     // ------------------------------------------------------------------------
     // Attributes
@@ -53,7 +53,7 @@ public final class CtfTmfEvent implements ITmfEvent {
     private final String eventName;
     private final String fileName;
 
-    private final TmfEventField fContent;
+    private final CtfTmfContent fContent;
 
     // ------------------------------------------------------------------------
     // Constructors
@@ -91,7 +91,7 @@ public final class CtfTmfEvent implements ITmfEvent {
         this.fileName = top.getStreamInput().getFilename();
 
         /* Read the fields */
-        this.fContent = new TmfEventField(ITmfEventField.ROOT_FIELD_ID,
+        this.fContent = new CtfTmfContent(ITmfEventField.ROOT_FIELD_ID,
                 parseFields(eventDef));
     }
 
@@ -143,14 +143,14 @@ public final class CtfTmfEvent implements ITmfEvent {
         this.fileName = other.fileName;
 
         /* Copy the fields over */
-        this.fContent = other.fContent.clone();
+        this.fContent = (CtfTmfContent) other.fContent.clone();
     }
 
     /**
      * Inner constructor to create "null" events. Don't use this directly, use
      * CTFEvent.getNullEvent();
      */
-    private CtfTmfEvent() {
+    public CtfTmfEvent() {
         this.fTrace = null;
         this.timestamp = -1;
         this.sourceCPU = -1;
@@ -243,21 +243,28 @@ public final class CtfTmfEvent implements ITmfEvent {
     @Override
     public ITmfTimestamp getTimestamp() {
         if (fTimestamp == null) {
-            fTimestamp = new TmfTimestamp(timestamp);
+            fTimestamp = new CtfTmfTimestamp(timestamp, fTrace);
         }
         return fTimestamp;
     }
 
+    String fSource = null;
     @Override
     public String getSource() {
-        // TODO Returns eventName for now
-        return eventName;
+        // TODO Returns CPU for now
+        if(fSource == null) {
+            fSource= Integer.toString(getCPU());
+        }
+        return fSource;
     }
 
+    private CtfTmfEventType type = null;
     @Override
     public ITmfEventType getType() {
-        // TODO Auto-generated method stub
-        return null;
+        if(type == null){
+            type = new CtfTmfEventType(CONTEXT_ID, eventName, fContent);
+        }
+        return type;
     }
 
     @Override
@@ -265,10 +272,13 @@ public final class CtfTmfEvent implements ITmfEvent {
         return fContent;
     }
 
+    String fReference = null;
     @Override
     public String getReference() {
-        // TODO Auto-generated method stub
-        return null;
+        if( fReference == null){
+            fReference = getChannelName();
+        }
+        return fReference;
     }
 
     @Override
index 418cc38f0175c93053dcb7fd814b7a17ca34c838..ffcb77cb53f8959c07104864e473783c815ee978 100644 (file)
@@ -83,8 +83,6 @@ public class CtfTmfTrace extends TmfEventProvider<CtfTmfEvent> implements
         // this.fEndTime.clone()));
     }
 
-
-
     @Override
     public void indexTrace(boolean waitForCompletion) {
     }
@@ -237,6 +235,9 @@ public class CtfTmfTrace extends TmfEventProvider<CtfTmfEvent> implements
 
     @Override
     public ITmfContext seekLocation(ITmfLocation<?> location) {
+        if (location == null) {
+            location = new CtfLocation(0L);
+        }
         iterator.setLocation(location);
         return iterator;
     }
index a3dc3a1a9e76d738fa5991887bdfc49662e32ed0..3aac38af92aa8ddd42949423835fbe983cd77ab6 100644 (file)
@@ -1,11 +1,11 @@
 /*******************************************************************************\r
  * Copyright (c) 2010 Ericsson\r
- * \r
+ *\r
  * All rights reserved. This program and the accompanying materials are\r
  * made available under the terms of the Eclipse Public License v1.0 which\r
  * accompanies this distribution, and is available at\r
  * http://www.eclipse.org/legal/epl-v10.html\r
- * \r
+ *\r
  * Contributors:\r
  *   Patrick Tasse - Initial API and implementation\r
  *******************************************************************************/\r
@@ -19,12 +19,12 @@ import org.eclipse.linuxtools.tmf.core.event.ITmfEvent;
 \r
 \r
 public class TmfFilterNode extends TmfFilterTreeNode {\r
-       \r
+\r
        public static final String NODE_NAME = "FILTER"; //$NON-NLS-1$\r
        public static final String NAME_ATTR = "name"; //$NON-NLS-1$\r
-       \r
+\r
        String fFilterName;\r
-       \r
+\r
        public TmfFilterNode(String filterName) {\r
                super(null);\r
                fFilterName = filterName;\r
@@ -63,9 +63,8 @@ public class TmfFilterNode extends TmfFilterTreeNode {
        public List<String> getValidChildren() {\r
                if (getChildrenCount() == 0) {\r
                        return super.getValidChildren();\r
-               } else {\r
-                       return new ArrayList<String>(0); // only one child allowed\r
                }\r
+        return new ArrayList<String>(0); // only one child allowed\r
        }\r
 \r
        @Override\r
@@ -77,7 +76,7 @@ public class TmfFilterNode extends TmfFilterTreeNode {
                for (int i = 0; i < getChildrenCount(); i++) {\r
                        ITmfFilterTreeNode node = getChildren()[i];\r
                        buf.append(node.toString());\r
-                       if (i < getChildrenCount() - 1) {\r
+                       if (i < (getChildrenCount() - 1)) {\r
                                buf.append(" and "); //$NON-NLS-1$\r
                        }\r
                }\r
index 52c5bb85de003995851a256cf447231012cba96a..9c6536bd55aa9c704e2b681d2f80a88300583d5b 100644 (file)
@@ -1,11 +1,11 @@
 /*******************************************************************************\r
  * Copyright (c) 2010 Ericsson\r
- * \r
+ *\r
  * All rights reserved. This program and the accompanying materials are\r
  * made available under the terms of the Eclipse Public License v1.0 which\r
  * accompanies this distribution, and is available at\r
  * http://www.eclipse.org/legal/epl-v10.html\r
- * \r
+ *\r
  * Contributors:\r
  *   Yuriy Vashchuk (yvashchuk@gmail.com) - Initial API and implementation\r
  *   Patrick Tasse - Refactoring\r
@@ -27,7 +27,7 @@ import org.eclipse.linuxtools.tmf.core.event.ITmfEventField;
  * <p>\r
  */\r
 public abstract class TmfFilterTreeNode implements ITmfFilterTreeNode, Cloneable {\r
-       \r
+\r
        private static final String[] VALID_CHILDREN = {\r
                TmfFilterEventTypeNode.NODE_NAME,\r
                TmfFilterAndNode.NODE_NAME,\r
@@ -37,7 +37,7 @@ public abstract class TmfFilterTreeNode implements ITmfFilterTreeNode, Cloneable
                TmfFilterMatchesNode.NODE_NAME,\r
                TmfFilterCompareNode.NODE_NAME\r
        };\r
-       \r
+\r
        private ITmfFilterTreeNode parent = null;\r
        private ArrayList<ITmfFilterTreeNode> children = new ArrayList<ITmfFilterTreeNode>();\r
 \r
@@ -46,7 +46,7 @@ public abstract class TmfFilterTreeNode implements ITmfFilterTreeNode, Cloneable
                parent.addChild(this);\r
        }\r
     }\r
-    \r
+\r
        /* (non-Javadoc)\r
         * @see org.eclipse.linuxtools.tmf.filter.model.ITmfFilterTreeNode#getParent()\r
         */\r
@@ -144,7 +144,7 @@ public abstract class TmfFilterTreeNode implements ITmfFilterTreeNode, Cloneable
                this.parent = parent;\r
        }\r
 \r
-       \r
+\r
        /* (non-Javadoc)\r
         * @see org.eclipse.linuxtools.tmf.filter.model.ITmfFilterTreeNode#matches(org.eclipse.linuxtools.tmf.event.TmfEvent)\r
         */\r
@@ -166,7 +166,7 @@ public abstract class TmfFilterTreeNode implements ITmfFilterTreeNode, Cloneable
             value = event.getType().getName();\r
         }\r
         else if (ITmfEvent.EVENT_FIELD_TIMESTAMP.equals(field)) {\r
-            value = ((Long) event.getTimestamp().getValue()).toString();\r
+            value = event.getTimestamp().toString();\r
         }\r
         else if (ITmfEvent.EVENT_FIELD_SOURCE.equals(field)) {\r
             value = event.getSource();\r
@@ -182,7 +182,7 @@ public abstract class TmfFilterTreeNode implements ITmfFilterTreeNode, Cloneable
 \r
        /* (non-Javadoc)\r
         * @see org.eclipse.linuxtools.tmf.filter.model.ITmfFilterTreeNode#getValidChildren()\r
-        * \r
+        *\r
         * By default, all node types are valid children. Override if different.\r
         */\r
        @Override\r
index c5dbf743b5512eca4ade44502f8e1dfa28cde912..f1a613c3a4408492a04d814662bea70d9ad8eeb8 100644 (file)
@@ -1383,7 +1383,7 @@ public class TmfEventsTable extends TmfComponent implements IGotoMarker, IColorS
     protected ITmfEventField[] extractItemFields(ITmfEvent event) {\r
         ITmfEventField[] fields = new TmfEventField[0];\r
         if (event != null) {\r
-            String timestamp = ((Long) event.getTimestamp().getValue()).toString();\r
+            String timestamp = event.getTimestamp().toString();\r
             String source = event.getSource();\r
             String type = event.getType().getName();\r
             String reference = event.getReference();\r
This page took 0.041712 seconds and 5 git commands to generate.