annotate src/share/vm/trace/traceEventClasses.xsl @ 13400:86e6d691f2e1

8028128: Add a type safe alternative for working with counter based data Reviewed-by: dholmes, egahlin
author mgronlun
date Sat, 23 Nov 2013 12:25:13 +0100
parents 042cf42c72bd
children 82d3e7b5277a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
1 <?xml version="1.0" encoding="utf-8"?>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
2 <!--
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
3 Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
4 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
5
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
6 This code is free software; you can redistribute it and/or modify it
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
7 under the terms of the GNU General Public License version 2 only, as
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
8 published by the Free Software Foundation.
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
9
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
10 This code is distributed in the hope that it will be useful, but WITHOUT
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
13 version 2 for more details (a copy is included in the LICENSE file that
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
14 accompanied this code).
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
15
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
16 You should have received a copy of the GNU General Public License version
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
17 2 along with this work; if not, write to the Free Software Foundation,
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
18 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
19
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
20 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
21 or visit www.oracle.com if you need additional information or have any
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
22 questions.
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
23 -->
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
24
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
25 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
12933
042cf42c72bd 8026703: Wrongly placed <xsl:import> element in Event-Based JVM Tracing .xsl files
simonis
parents: 10405
diff changeset
26 <xsl:import href="xsl_util.xsl"/>
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
27 <xsl:output method="text" indent="no" omit-xml-declaration="yes"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
28
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
29 <xsl:template match="/">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
30 <xsl:call-template name="file-header"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
31
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
32 #ifndef TRACEFILES_TRACEEVENTCLASSES_HPP
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
33 #define TRACEFILES_TRACEEVENTCLASSES_HPP
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
34
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
35 // On purpose outside the INCLUDE_TRACE
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
36 // Some parts of traceEvent.hpp are used outside of
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
37 // INCLUDE_TRACE
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
38
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
39 #include "memory/resourceArea.hpp"
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
40 #include "tracefiles/traceTypes.hpp"
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
41 #include "trace/traceEvent.hpp"
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
42 #include "utilities/macros.hpp"
13400
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
43 #include "utilities/ticks.hpp"
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
44
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
45 #if INCLUDE_TRACE
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
46
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
47
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
48 #include "trace/traceStream.hpp"
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
49 #include "utilities/ostream.hpp"
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
50
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
51 <xsl:apply-templates select="trace/events/struct" mode="trace"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
52 <xsl:apply-templates select="trace/events/event" mode="trace"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
53
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
54 #else
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
55
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
56 class TraceEvent {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
57 public:
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
58 TraceEvent() {}
13400
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
59 void set_starttime(const Ticks&amp; time) {}
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
60 void set_endtime(const Ticks&amp; time) {}
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
61 bool should_commit() const { return false; }
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
62 void commit() const {}
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
63 };
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
64
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
65 <xsl:apply-templates select="trace/events/struct" mode="empty"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
66 <xsl:apply-templates select="trace/events/event" mode="empty"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
67
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
68 #endif
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
69
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
70 #endif
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
71 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
72
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
73 <xsl:template match="struct" mode="trace">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
74 struct TraceStruct<xsl:value-of select="@id"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
75 {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
76 private:
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
77 <xsl:apply-templates select="value" mode="write-fields"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
78 public:
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
79 <xsl:apply-templates select="value" mode="write-setters"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
80
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
81 void writeStruct(TraceStream&amp; ts) {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
82 <xsl:apply-templates select="value" mode="write-data"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
83 }
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
84 };
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
85
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
86 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
87
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
88 <xsl:template match="struct" mode="empty">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
89 struct TraceStruct<xsl:value-of select="@id"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
90 {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
91 public:
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
92 <xsl:apply-templates select="value" mode="write-empty-setters"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
93 };
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
94 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
95
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
96
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
97 <xsl:template match="event" mode="empty">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
98 <xsl:value-of select="concat('class Event', @id, ' : public TraceEvent')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
99 {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
100 public:
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
101 <xsl:value-of select="concat(' Event', @id, '(bool ignore=true) {}')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
102 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
103 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
104
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
105 <xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-empty-setters"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
106 };
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
107
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
108 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
109
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
110
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
111 <xsl:template match="event" mode="trace">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
112 <xsl:value-of select="concat('class Event', @id, ' : public TraceEvent&lt;Event', @id, '&gt;')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
113 {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
114 public:
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
115 static const bool hasThread = <xsl:value-of select="@has_thread"/>;
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
116 static const bool hasStackTrace = <xsl:value-of select="@has_stacktrace"/>;
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
117 static const bool isInstant = <xsl:value-of select="@is_instant"/>;
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
118 static const bool isRequestable = <xsl:value-of select="@is_requestable"/>;
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
119 static const TraceEventId eventId = <xsl:value-of select="concat('Trace', @id, 'Event')"/>;
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
120
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
121 private:
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
122 <xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-fields"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
123
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
124 void writeEventContent(void) {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
125 TraceStream ts(*tty);
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
126 ts.print("<xsl:value-of select="@label"/>: [");
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
127 <xsl:apply-templates select="value|structvalue" mode="write-data"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
128 ts.print("]\n");
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
129 }
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
130
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
131 public:
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
132 <xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-setters"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
133
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
134 bool should_write(void) {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
135 return true;
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
136 }
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
137 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
138
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
139 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
140 <xsl:value-of select="concat(' Event', @id, '(EventStartTime timing=TIMED) : TraceEvent&lt;Event', @id, '&gt;(timing) {}', $newline)"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
141 void writeEvent(void) {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
142 ResourceMark rm;
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
143 if (UseLockedTracing) {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
144 ttyLocker lock;
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
145 writeEventContent();
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
146 } else {
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
147 writeEventContent();
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
148 }
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
149 }
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
150 };
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
151
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
152 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
153
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
154 <xsl:template match="value|transition_value|relation" mode="write-empty-setters">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
155 <xsl:param name="cls"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
156 <xsl:variable name="type" select="@type"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
157 <xsl:variable name="wt" select="//primary_type[@symbol=$type]/@type"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
158 <xsl:value-of select="concat(' void set_', @field, '(', $wt, ' value) { }')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
159 <xsl:if test="position() != last()">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
160 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
161 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
162 </xsl:if>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
163 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
164
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
165 <xsl:template match="structvalue" mode="write-empty-setters">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
166 <xsl:param name="cls"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
167 <xsl:value-of select="concat(' void set_', @field, '(const TraceStruct', @type, '&amp; value) { }')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
168 <xsl:if test="position() != last()">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
169 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
170 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
171 </xsl:if>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
172 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
173
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
174 <xsl:template match="value[@type='TICKS']" mode="write-setters">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
175 #if INCLUDE_TRACE
13400
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
176 <xsl:value-of select="concat(' void set_', @field, '(const Ticks&amp; time) { _', @field, ' = time; }')"/>
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
177 #else
13400
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
178 <xsl:value-of select="concat(' void set_', @field, '(const Ticks&amp; ignore) {}')"/>
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
179 #endif
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
180 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
181
13400
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
182 <xsl:template match="value[@type='TICKSPAN']" mode="write-setters">
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
183 #if INCLUDE_TRACE
13400
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
184 <xsl:value-of select="concat(' void set_', @field, '(const Tickspan&amp; time) { _', @field, ' = time; }')"/>
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
185 #else
13400
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
186 <xsl:value-of select="concat(' void set_', @field, '(const Tickspan&amp; ignore) {}')"/>
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
187 #endif
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
188 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
189
13400
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
190
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
191 <xsl:template match="value" mode="write-fields">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
192 <xsl:variable name="type" select="@type"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
193 <xsl:variable name="wt" select="//primary_type[@symbol=$type]/@type"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
194 <xsl:value-of select="concat(' ', $wt, ' _', @field, ';')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
195 <xsl:if test="position() != last()">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
196 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
197 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
198 </xsl:if>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
199 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
200
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
201 <xsl:template match="structvalue" mode="write-fields">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
202 <xsl:value-of select="concat(' TraceStruct', @type, ' _', @field, ';')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
203 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
204 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
205 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
206
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
207 <xsl:template match="value|transition_value|relation" mode="write-setters">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
208 <xsl:param name="cls"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
209 <xsl:variable name="type" select="@type"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
210 <xsl:variable name="wt" select="//primary_type[@symbol=$type]/@type"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
211 <xsl:value-of select="concat(' void set_', @field, '(', $wt, ' value) { this->_', @field, ' = value; }')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
212 <xsl:if test="position() != last()">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
213 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
214 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
215 </xsl:if>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
216 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
217
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
218 <xsl:template match="structvalue" mode="write-setters">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
219 <xsl:param name="cls"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
220 <xsl:value-of select="concat(' void set_', @field, '(const TraceStruct', @type, '&amp; value) { this->_', @field, ' = value; }')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
221 <xsl:if test="position() != last()">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
222 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
223 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
224 </xsl:if>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
225 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
226
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
227 <xsl:template match="value" mode="write-data">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
228 <xsl:variable name="type" select="@type"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
229 <xsl:variable name="wt" select="//primary_type[@symbol=$type]/@writetype"/>
13400
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
230 <xsl:choose>
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
231 <xsl:when test="@type='TICKSPAN'">
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
232 <xsl:value-of select="concat(' ts.print_val(&quot;', @label, '&quot;, _', @field, '.value());')"/>
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
233 </xsl:when>
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
234 <xsl:when test="@type='TICKS'">
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
235 <xsl:value-of select="concat(' ts.print_val(&quot;', @label, '&quot;, _', @field, '.value());')"/>
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
236 </xsl:when>
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
237 <xsl:otherwise>
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
238 <xsl:value-of select="concat(' ts.print_val(&quot;', @label, '&quot;, _', @field, ');')"/>
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
239 </xsl:otherwise>
86e6d691f2e1 8028128: Add a type safe alternative for working with counter based data
mgronlun
parents: 12933
diff changeset
240 </xsl:choose>
10405
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
241 <xsl:if test="position() != last()">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
242 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
243 ts.print(", ");
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
244 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
245 </xsl:if>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
246 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
247
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
248 <xsl:template match="structvalue" mode="write-data">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
249 <xsl:value-of select="concat(' _', @field, '.writeStruct(ts);')"/>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
250 <xsl:if test="position() != last()">
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
251 <xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
252 ts.print(", ");
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
253 </xsl:text>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
254 </xsl:if>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
255 </xsl:template>
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
256
f2110083203d 8005849: JEP 167: Event-Based JVM Tracing
sla
parents:
diff changeset
257 </xsl:stylesheet>