File: gifft_events.jinja2

package info (click to toggle)
firefox-esr 128.13.0esr-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,230,012 kB
  • sloc: cpp: 7,103,971; javascript: 6,088,450; ansic: 3,653,980; python: 1,212,330; xml: 594,604; asm: 420,652; java: 182,969; sh: 71,124; makefile: 20,747; perl: 13,449; objc: 12,399; yacc: 4,583; cs: 3,846; pascal: 2,973; lex: 1,720; ruby: 1,194; exp: 762; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10
file content (52 lines) | stat: -rw-r--r-- 1,575 bytes parent folder | download | duplicates (15)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// -*- mode: C++ -*-

/* This file is auto-generated by run_glean_parser.py.
   It is only for internal use by types in
   toolkit/components/glean/bindings/private */
{# The rendered source is autogenerated, but this
Jinja2 template is not. Pleas file bugs! #}

#include "mozilla/glean/bindings/Event.h"
#include "mozilla/glean/GleanMetrics.h"

namespace mozilla::glean {

template <>
/*static*/ const nsCString impl::EventMetric<NoExtraKeys>::ExtraStringForKey(uint32_t aKey) {
  MOZ_ASSERT_UNREACHABLE("What are you doing here? No extra keys!");
  return ""_ns;
}

{% for category_name, objs in all_objs.items() %}
{% for obj in objs.values() %}
{% if obj|attr("_generate_enums") %}
{# we always use the `extra` suffix, because we only expose the new event API #}
{% set suffix = "Extra" %}
{% for name, _ in obj["_generate_enums"] %}
{% if obj|attr(name)|length %}
{% set ns %}{{ category_name|snake_case }}{% endset %}
{% set type %}{{ obj.name|Camelize }}{{ suffix }}{% endset %}
template <>
/*static*/ const nsCString impl::EventMetric<{{ ns }}::{{ type }}>::ExtraStringForKey(uint32_t aKey) {
  using {{ ns }}::{{ type }};
  switch (aKey) {
{% if obj|attr("telemetry_mirror") %}{# Optimization: Do not generate switch if not mirrored #}
{% for key, _ in obj|attr(name) %}
    case {{loop.index-1}}: {
      return "{{ key }}"_ns;
    }
{% endfor %}
{% endif %}
    default: {
      MOZ_ASSERT_UNREACHABLE("Impossible event key reached.");
      return ""_ns;
    }
  }
}

{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
};  // namespace mozilla::glean