Merge branch 'master' into lttng-kepler
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.core / src / org / eclipse / linuxtools / tmf / core / event / ITmfEvent.java
1 /*******************************************************************************
2 * Copyright (c) 2012 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.tmf.core.event;
14
15 import org.eclipse.linuxtools.tmf.core.trace.ITmfTrace;
16
17 /**
18 * The generic event structure in TMF. In its canonical form, an event has:
19 * <ul>
20 * <li> a parent trace
21 * <li> a rank (order within the trace)
22 * <li> a timestamp
23 * <li> a source (reporting component)
24 * <li> a type
25 * <li> a content (payload)
26 * </ul>
27 * For convenience, a free-form reference field is also provided. It could be
28 * used as e.g. a location marker (filename:lineno) to indicate where the event
29 * was generated.
30 *
31 * @version 1.0
32 * @author Francois Chouinard
33 *
34 * @see ITmfTimestamp
35 * @see ITmfEventType
36 * @see ITmfEventField
37 * @see TmfEvent
38 */
39 public interface ITmfEvent {
40
41 // ------------------------------------------------------------------------
42 // Constants
43 // ------------------------------------------------------------------------
44
45 /**
46 * Pre-defined event timestamp attribute (for searching &filtering purposes)
47 */
48 public static final String EVENT_FIELD_TIMESTAMP = ":timestamp:"; //$NON-NLS-1$
49
50 /**
51 * Pre-defined event source attribute (for searching &filtering purposes)
52 */
53 public static final String EVENT_FIELD_SOURCE = ":source:"; //$NON-NLS-1$
54
55 /**
56 * Pre-defined event type attribute (for searching &filtering purposes)
57 */
58 public static final String EVENT_FIELD_TYPE = ":type:"; //$NON-NLS-1$
59
60 /**
61 * Pre-defined event content attribute (for searching &filtering purposes)
62 */
63 public static final String EVENT_FIELD_CONTENT = ":content:"; //$NON-NLS-1$
64
65 /**
66 * Pre-defined event reference attribute (for searching &filtering purposes)
67 */
68 public static final String EVENT_FIELD_REFERENCE = ":reference:"; //$NON-NLS-1$
69
70 // ------------------------------------------------------------------------
71 // Getters
72 // ------------------------------------------------------------------------
73
74 /**
75 * @return the trace that 'owns' the event
76 */
77 public ITmfTrace getTrace();
78
79 /**
80 * @return the event rank within the parent trace
81 */
82 public long getRank();
83
84 /**
85 * @return the event timestamp
86 */
87 public ITmfTimestamp getTimestamp();
88
89 /**
90 * @return the event source
91 */
92 public String getSource();
93
94 /**
95 * @return the event type
96 */
97 public ITmfEventType getType();
98
99 /**
100 * @return the event content
101 */
102 public ITmfEventField getContent();
103
104 /**
105 * @return the event reference
106 */
107 public String getReference();
108
109 /**
110 * @return a clone of the event
111 */
112 public ITmfEvent clone();
113
114 }
This page took 0.035244 seconds and 6 git commands to generate.