src/share/vm/trace/traceEventClasses.xsl

Print this page
rev 4501 : 8014478: EnableTracing: output from multiple threads may be mixed together
Reviewed-by: dholmes, rbackman
Contributed-by: yunda.mly@taobao.com


 102 
 103 <xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-empty-setters"/>
 104 };
 105 
 106 </xsl:template>
 107 
 108 
 109 <xsl:template match="event" mode="trace">
 110   <xsl:value-of select="concat('class Event', @id, ' : public TraceEvent&lt;Event', @id, '&gt;')"/>
 111 {
 112  public:
 113   static const bool hasThread = <xsl:value-of select="@has_thread"/>;
 114   static const bool hasStackTrace = <xsl:value-of select="@has_stacktrace"/>;
 115   static const bool isInstant = <xsl:value-of select="@is_instant"/>;
 116   static const bool isRequestable = <xsl:value-of select="@is_requestable"/>;
 117   static const TraceEventId eventId = <xsl:value-of select="concat('Trace', @id, 'Event')"/>;
 118 
 119  private:
 120 <xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-fields"/>
 121 







 122  public:
 123 <xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-setters"/>
 124 
 125   bool should_write(void) {
 126     return true;
 127   }
 128 <xsl:text>
 129 
 130 </xsl:text>
 131   <xsl:value-of select="concat('  Event', @id, '(EventStartTime timing=TIMED) : TraceEvent&lt;Event', @id, '&gt;(timing) {}', $newline)"/>
 132   void writeEvent(void) {
 133     ResourceMark rm;
 134     HandleMark hm;
 135     TraceStream ts(*tty);
 136     ts.print("<xsl:value-of select="@label"/>: [");
 137 <xsl:apply-templates select="value|structvalue" mode="write-data"/>
 138     ts.print("]\n");

 139   }


 140 };
 141 
 142 </xsl:template>
 143 
 144 <xsl:template match="value|transition_value|relation" mode="write-empty-setters">
 145   <xsl:param name="cls"/>
 146   <xsl:variable name="type" select="@type"/>
 147   <xsl:variable name="wt" select="//primary_type[@symbol=$type]/@type"/>
 148   <xsl:value-of select="concat('  void set_', @field, '(', $wt, ' value) { }')"/>
 149   <xsl:if test="position() != last()">
 150     <xsl:text>
 151 </xsl:text>
 152   </xsl:if>
 153 </xsl:template>
 154 
 155 <xsl:template match="structvalue" mode="write-empty-setters">
 156   <xsl:param name="cls"/>
 157   <xsl:value-of select="concat('  void set_', @field, '(const TraceStruct', @type, '&amp; value) { }')"/>
 158   <xsl:if test="position() != last()">
 159     <xsl:text>




 102 
 103 <xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-empty-setters"/>
 104 };
 105 
 106 </xsl:template>
 107 
 108 
 109 <xsl:template match="event" mode="trace">
 110   <xsl:value-of select="concat('class Event', @id, ' : public TraceEvent&lt;Event', @id, '&gt;')"/>
 111 {
 112  public:
 113   static const bool hasThread = <xsl:value-of select="@has_thread"/>;
 114   static const bool hasStackTrace = <xsl:value-of select="@has_stacktrace"/>;
 115   static const bool isInstant = <xsl:value-of select="@is_instant"/>;
 116   static const bool isRequestable = <xsl:value-of select="@is_requestable"/>;
 117   static const TraceEventId eventId = <xsl:value-of select="concat('Trace', @id, 'Event')"/>;
 118 
 119  private:
 120 <xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-fields"/>
 121 
 122   void writeEventContent(void) {
 123     TraceStream ts(*tty);
 124     ts.print("<xsl:value-of select="@label"/>: [");
 125 <xsl:apply-templates select="value|structvalue" mode="write-data"/>
 126     ts.print("]\n");
 127   }
 128 
 129  public:
 130 <xsl:apply-templates select="value|structvalue|transition_value|relation" mode="write-setters"/>
 131 
 132   bool should_write(void) {
 133     return true;
 134   }
 135 <xsl:text>
 136 
 137 </xsl:text>
 138   <xsl:value-of select="concat('  Event', @id, '(EventStartTime timing=TIMED) : TraceEvent&lt;Event', @id, '&gt;(timing) {}', $newline)"/>
 139   void writeEvent(void) {
 140     ResourceMark rm;
 141     HandleMark hm;
 142     if (UseLockedTracing) {
 143       ttyLocker lock;
 144       writeEventContent();
 145     } else {
 146       writeEventContent();
 147     }
 148   }
 149 
 150 };
 151 
 152 </xsl:template>
 153 
 154 <xsl:template match="value|transition_value|relation" mode="write-empty-setters">
 155   <xsl:param name="cls"/>
 156   <xsl:variable name="type" select="@type"/>
 157   <xsl:variable name="wt" select="//primary_type[@symbol=$type]/@type"/>
 158   <xsl:value-of select="concat('  void set_', @field, '(', $wt, ' value) { }')"/>
 159   <xsl:if test="position() != last()">
 160     <xsl:text>
 161 </xsl:text>
 162   </xsl:if>
 163 </xsl:template>
 164 
 165 <xsl:template match="structvalue" mode="write-empty-setters">
 166   <xsl:param name="cls"/>
 167   <xsl:value-of select="concat('  void set_', @field, '(const TraceStruct', @type, '&amp; value) { }')"/>
 168   <xsl:if test="position() != last()">
 169     <xsl:text>