int cpu = EventDefinition.UNKNOWN_CPU;
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, null, null, null));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, null, null, fields));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, null, pContext, null));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, null, pContext, fields));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, eContext, null, null));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, eContext, null, fields));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, eContext, pContext, null));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, eContext, pContext, fields));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, null, null, null));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, null, null, fields));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, null, pContext, null));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, null, pContext, fields));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, eContext, null, null));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, eContext, null, fields));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, eContext, pContext, null));
- fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, eContext, pContext, fields));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, null, null, null, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, null, null, fields, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, null, pContext, null, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, null, pContext, fields, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, eContext, null, null, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, eContext, null, fields, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, eContext, pContext, null, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, null, eContext, pContext, fields, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, null, null, null, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, null, null, fields, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, null, pContext, null, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, null, pContext, fields, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, eContext, null, null, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, eContext, null, fields, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, eContext, pContext, null, null));
+ fixture.add(new EventDefinition(eventDeclaration, cpu, 100, null, sContext, eContext, pContext, fields, null));
}
/**
fixture = getStreamInputReader();
fixture.setName(1);
fixture.setCurrentEvent(new EventDefinition(new EventDeclaration(),
- getStreamInputReader().getCPU(), 0, null, null, null,
+ fixture.getCPU(), 0, null, null, null,
new StructDefinition(
new StructDeclaration(0),
null,
"packet",
new Definition[] { new StringDefinition(StringDeclaration.getStringDeclaration(Encoding.UTF8), null, "field", "test") }),
- null));
+ null, fixture.getCurrentPacketReader().getCurrentPacket()));
}
private static CTFStreamInputReader getStreamInputReader() throws CTFException {
* given the timestamp we want.
*
* @throws CTFException
+ * error
+ * @throws IOException
+ * file not there
*/
@Test
- public void testSeek_eventDefinition() throws CTFException {
- EventDefinition eventDefinition = new EventDefinition(
- new EventDeclaration(), getStreamInputReader().getCPU(), 1L, null, null, null, null, null);
- fixture.setCurrentEvent(eventDefinition);
+ public void testSeek_eventDefinition() throws CTFException, IOException {
+ try (CTFStreamInputReader streamInputReader = getStreamInputReader()) {
+ EventDefinition eventDefinition = new EventDefinition(
+ new EventDeclaration(), streamInputReader.getCPU(), 1L, null, null, null, null, null, streamInputReader.getCurrentPacketReader().getCurrentPacket());
+ fixture.setCurrentEvent(eventDefinition);
+ }
}
}
package org.eclipse.tracecompass.ctf.core.event;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
+import java.util.Map;
import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
import org.eclipse.tracecompass.ctf.core.event.scope.IDefinitionScope;
import org.eclipse.tracecompass.ctf.core.event.scope.ILexicalScope;
import org.eclipse.tracecompass.ctf.core.event.scope.LexicalScope;
import org.eclipse.tracecompass.ctf.core.event.types.IDefinition;
import org.eclipse.tracecompass.ctf.core.event.types.StructDeclaration;
import org.eclipse.tracecompass.ctf.core.event.types.StructDefinition;
+import org.eclipse.tracecompass.ctf.core.trace.ICTFPacketDescriptor;
import org.eclipse.tracecompass.internal.ctf.core.event.EventDeclaration;
/**
/**
* A null event, can be used for testing or poison pilling
*/
- public static final @NonNull EventDefinition NULL_EVENT = new EventDefinition(new EventDeclaration(), UNKNOWN_CPU, -1L, null, null, null, null, null);
+ public static final @NonNull EventDefinition NULL_EVENT = new EventDefinition(new EventDeclaration(), UNKNOWN_CPU, -1L, null, null, null, null, null, null);
/**
* The corresponding event declaration.
*/
private final int fCpu;
+ private final @NonNull Map<String, Object> fPacketAttributes;
+
// ------------------------------------------------------------------------
// Constructors
// ------------------------------------------------------------------------
* @param eventContext
* The event context
* @param packetContext
- * the packet context (the one with content size, not magic number)
+ * the packet context (the one with content size, not magic
+ * number)
* @param streamContext
* the stream context
* @param fields
* The event fields
+ * @param packetDescriptor
+ * descriptor of the packet containing this event
* @since 2.0
*/
public EventDefinition(IEventDeclaration declaration,
ICompositeDefinition streamContext,
ICompositeDefinition eventContext,
ICompositeDefinition packetContext,
- ICompositeDefinition fields) {
+ ICompositeDefinition fields,
+ @Nullable ICTFPacketDescriptor packetDescriptor) {
fDeclaration = declaration;
fEventHeaderDefinition = eventHeaderDefinition;
fCpu = cpu;
fEventContext = eventContext;
fPacketContext = packetContext;
fStreamContext = streamContext;
+ fPacketAttributes = packetDescriptor != null ? packetDescriptor.getAttributes() : Collections.EMPTY_MAP;
}
// ------------------------------------------------------------------------
return fTimestamp;
}
+ /**
+ * Get the packet attributes.
+ *
+ * @return the packet attributes, such as "device" and "timestamp_begin"
+ * @since 2.0
+ */
+ public @NonNull Map<String, Object> getPacketAttributes() {
+ return fPacketAttributes;
+ }
// ------------------------------------------------------------------------
// Operations
// ------------------------------------------------------------------------