mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-10-16 20:27:31 +09:00
import FIREFOX_52_6_0esr_RELEASE from mozilla-esr52 hg repo
This commit is contained in:
commit
dcd9973243
150858 changed files with 23884658 additions and 0 deletions
73
toolkit/components/telemetry/gen-event-enum.py
Normal file
73
toolkit/components/telemetry/gen-event-enum.py
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
# Write out C++ enum definitions that represent the different event types.
|
||||
#
|
||||
# The events are defined in files provided as command-line arguments.
|
||||
|
||||
from __future__ import print_function
|
||||
|
||||
import sys
|
||||
import parse_events
|
||||
|
||||
banner = """/* This file is auto-generated, see gen-event-enum.py. */
|
||||
"""
|
||||
|
||||
file_header = """\
|
||||
#ifndef mozilla_TelemetryEventEnums_h
|
||||
#define mozilla_TelemetryEventEnums_h
|
||||
namespace mozilla {
|
||||
namespace Telemetry {
|
||||
namespace EventID {
|
||||
"""
|
||||
|
||||
file_footer = """\
|
||||
} // namespace EventID
|
||||
} // namespace mozilla
|
||||
} // namespace Telemetry
|
||||
#endif // mozilla_TelemetryEventEnums_h
|
||||
"""
|
||||
|
||||
def main(output, *filenames):
|
||||
# Load the events first.
|
||||
if len(filenames) > 1:
|
||||
raise Exception('We don\'t support loading from more than one file.')
|
||||
events = parse_events.load_events(filenames[0])
|
||||
|
||||
grouped = dict()
|
||||
index = 0
|
||||
for e in events:
|
||||
category = e.category
|
||||
if not category in grouped:
|
||||
grouped[category] = []
|
||||
grouped[category].append((index, e))
|
||||
index += len(e.enum_labels)
|
||||
|
||||
# Write the enum file.
|
||||
print(banner, file=output)
|
||||
print(file_header, file=output);
|
||||
|
||||
for category,indexed in grouped.iteritems():
|
||||
category_cpp = indexed[0][1].category_cpp
|
||||
|
||||
print("// category: %s" % category, file=output)
|
||||
print("enum class %s : uint32_t {" % category_cpp, file=output)
|
||||
|
||||
for event_index,e in indexed:
|
||||
cpp_guard = e.cpp_guard
|
||||
if cpp_guard:
|
||||
print("#if defined(%s)" % cpp_guard, file=output)
|
||||
for offset,label in enumerate(e.enum_labels):
|
||||
print(" %s = %d," % (label, event_index + offset), file=output)
|
||||
if cpp_guard:
|
||||
print("#endif", file=output)
|
||||
|
||||
print("};\n", file=output)
|
||||
|
||||
print("const uint32_t EventCount = %d;\n" % index, file=output)
|
||||
|
||||
print(file_footer, file=output)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main(sys.stdout, *sys.argv[1:])
|
||||
Loading…
Add table
Add a link
Reference in a new issue