mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-09-12 17:52:56 +02:00
132 lines
3.5 KiB
Django/Jinja
132 lines
3.5 KiB
Django/Jinja
{#
|
|
Copyright The OpenTelemetry Authors
|
|
SPDX-License-Identifier: Apache-2.0
|
|
|
|
This file is:
|
|
- a Jinja template,
|
|
- used to generate semantic conventions,
|
|
- using weaver.
|
|
|
|
For doc on the template syntax:
|
|
https://jinja.palletsprojects.com/en/3.0.x/
|
|
|
|
For doc on the semantic conventions:
|
|
https://github.com/open-telemetry/semantic-conventions
|
|
|
|
For doc on weaver:
|
|
https://github.com/open-telemetry/weaver
|
|
#}
|
|
/*
|
|
* Copyright The OpenTelemetry Authors
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/*
|
|
* DO NOT EDIT, this is an Auto-generated file from:
|
|
* buildscripts/semantic-convention/templates/registry/semantic_attributes-h.j2
|
|
*/
|
|
{# ========================================================================== #}
|
|
{#
|
|
DESIGN NOTES:
|
|
- Use the debug flag to dump the semantic convention data
|
|
in the generated output, to inspect it.
|
|
#}
|
|
{# ========================================================================== #}
|
|
|
|
{% set debug = false %}
|
|
|
|
{% set file_name = ctx.output + (ctx.root_namespace | snake_case) ~ "_attributes.h" %}
|
|
{{ template.set_file_name(file_name) }}
|
|
|
|
{% set attributes = ctx.attributes | list %}
|
|
{% set enum_attributes = attributes | select("enum") | rejectattr("name", "in", ctx.excluded_attributes) | list %}
|
|
|
|
{% macro attribute_namespace(ctx) %}
|
|
{{ ctx.root_namespace | snake_case }}
|
|
{% endmacro %}
|
|
|
|
{% macro attribute_name(attribute) %}
|
|
k{{ attribute.name | pascal_case }}
|
|
{% endmacro %}
|
|
|
|
{% macro attribute_type(attribute) %}
|
|
{{ attribute.type | enum_type | map_text("cpp_types") }}
|
|
{% endmacro %}
|
|
|
|
{% macro enum_namespace_name(attribute) %}
|
|
{{ attribute.name | pascal_case ~ "Values"}}
|
|
{% endmacro %}
|
|
|
|
{% macro enum_name(member) %}
|
|
k{{ member.id | pascal_case }}
|
|
{% endmacro %}
|
|
|
|
{% set cpp_attribute_namespace = attribute_namespace(ctx) %}
|
|
|
|
{# ========================================================================== #}
|
|
|
|
#pragma once
|
|
|
|
#include "opentelemetry/common/macros.h"
|
|
#include "opentelemetry/version.h"
|
|
|
|
OPENTELEMETRY_BEGIN_NAMESPACE
|
|
namespace semconv
|
|
{
|
|
namespace {{ cpp_attribute_namespace -}}
|
|
{
|
|
|
|
{% for attribute in attributes %}
|
|
{% if debug %}
|
|
// DEBUG: {{ attribute }}
|
|
{% endif %}
|
|
{% set cpp_attr_name = attribute_name(attribute) %}
|
|
{% set excluded = attribute.name in ctx.excluded_attributes %}
|
|
{% if excluded %}
|
|
#if 0
|
|
// Excluded attribute:
|
|
{% endif %}
|
|
{% if attribute is deprecated %}
|
|
{{ [attribute.brief, "\n", "@deprecated", attribute.deprecated, "\n", attribute.note] | comment(ident=2) }}
|
|
OPENTELEMETRY_DEPRECATED
|
|
{% else %}
|
|
{{ [attribute.brief, "\n", attribute.note] | comment(ident=2) }}
|
|
{% endif %}
|
|
static constexpr const char *{{cpp_attr_name}} = "{{attribute.name}}";
|
|
{% if excluded %}
|
|
#endif
|
|
{% endif %}
|
|
|
|
{% endfor %}
|
|
|
|
{% for attribute in enum_attributes %}
|
|
{% set class_name = attribute.name | pascal_case ~ "Values" %}
|
|
{% set cpp_enum_name = enum_namespace_name(attribute) %}
|
|
{% set cpp_enum_type = attribute_type(attribute) %}
|
|
{% if debug %}
|
|
// DEBUG: {{ attribute }}
|
|
{% endif %}
|
|
namespace {{cpp_enum_name -}}
|
|
{
|
|
{% for member in attribute.type.members %}
|
|
{% set member_name = enum_name(member) %}
|
|
{% if debug %}
|
|
// DEBUG: {{ member }}
|
|
{% endif %}
|
|
{% if member is deprecated %}
|
|
{{ [member.brief, "\n", "@deprecated", member.deprecated] | comment(ident=2) }}
|
|
OPENTELEMETRY_DEPRECATED
|
|
{% else %}
|
|
{{ member.brief | comment(ident=2) }}
|
|
{% endif %}
|
|
static constexpr {{ cpp_enum_type }} {{ member_name }} = {{ member.value | print_member_value }};
|
|
|
|
{% endfor %}
|
|
}
|
|
|
|
{% endfor %}
|
|
|
|
}
|
|
}
|
|
OPENTELEMETRY_END_NAMESPACE
|
|
|