{% extends "base.html" %} {% block title %}Hierarchy{% endblock %} {% macro obj_badge(obj_type) %} {% if obj_type == 'function_block' %}FB {% elif obj_type == 'program' %}PRG {% elif obj_type == 'function' %}FN {% elif obj_type == 'interface' %}ITF {% elif obj_type == 'gvl' %}GVL {% elif obj_type == 'struct' %}ST {% elif obj_type == 'enum' %}ENUM {% endif %} {% endmacro %} {% block content %}

Type Hierarchy

Inheritance and interface implementation relationships across the project.


{# Inheritance tree #} {% if hierarchy.by_base %}

Inheritance

{% for base_name, children in hierarchy.by_base | dictsort %} {% endfor %}
Base classDerived classes
{% if base_name in known_names %} {{ base_name }} {% else %} {{ base_name }} {% endif %} {% for child in children %} {{ obj_badge(child.obj_type) }} {{ child.name }}{% if not loop.last %} {% endif %} {% endfor %}
{% endif %} {# Interface implementations #} {% if hierarchy.by_iface %}

Interface Implementations

{% for iface_name, implementors in hierarchy.by_iface | dictsort %} {% endfor %}
InterfaceImplementors
{% if iface_name in known_names %} {{ iface_name }} {% else %} {{ iface_name }} {% endif %} {% for obj in implementors %} {{ obj_badge(obj.obj_type) }} {{ obj.name }}{% if not loop.last %} {% endif %} {% endfor %}
{% endif %} {# Standalone objects #} {% if hierarchy.standalone %}

Standalone

Objects with no inheritance or interface relationships.

{% for obj in hierarchy.standalone %} {% endfor %}
NameTypeDescription
{{ obj_badge(obj.obj_type) }} {{ obj.name }} {{ obj.obj_type.replace('_', ' ').title() }} {{ obj.comment.description | truncate(100) }}
{% endif %} {% if not hierarchy.by_base and not hierarchy.by_iface %}

No inheritance or interface relationships found in this project.

{% endif %} {% endblock %}