mirror of
git://sourceware.org/git/libabigail.git
synced 2025-01-29 21:02:48 +00:00
99a6fce808
It's this time of the year again. This patch updates the copyright years notice in the preamble of each source code file to include year 2025. This is done by updating and executing the shell script update-copyright.sh. * include/abg-btf-reader.h: Update copyright year to include 2025. * include/abg-comp-filter.h: Likewise. * include/abg-comparison.h: Likewise. * include/abg-config.h: Likewise. * include/abg-corpus.h: Likewise. * include/abg-ctf-reader.h: Likewise. * include/abg-cxx-compat.h: Likewise. * include/abg-diff-utils.h: Likewise. * include/abg-dwarf-reader.h: Likewise. * include/abg-elf-based-reader.h: Likewise. * include/abg-elf-reader.h: Likewise. * include/abg-fe-iface.h: Likewise. * include/abg-fwd.h: Likewise. * include/abg-hash.h: Likewise. * include/abg-ini.h: Likewise. * include/abg-interned-str.h: Likewise. * include/abg-ir.h: Likewise. * include/abg-libxml-utils.h: Likewise. * include/abg-reader.h: Likewise. * include/abg-regex.h: Likewise. * include/abg-reporter.h: Likewise. * include/abg-sptr-utils.h: Likewise. * include/abg-suppression.h: Likewise. * include/abg-tools-utils.h: Likewise. * include/abg-traverse.h: Likewise. * include/abg-viz-common.h: Likewise. * include/abg-viz-dot.h: Likewise. * include/abg-viz-svg.h: Likewise. * include/abg-workers.h: Likewise. * include/abg-writer.h: Likewise. * src/abg-btf-reader.cc: Likewise. * src/abg-comp-filter.cc: Likewise. * src/abg-comparison-priv.h: Likewise. * src/abg-comparison.cc: Likewise. * src/abg-config.cc: Likewise. * src/abg-corpus-priv.h: Likewise. * src/abg-corpus.cc: Likewise. * src/abg-ctf-reader.cc: Likewise. * src/abg-default-reporter.cc: Likewise. * src/abg-diff-utils.cc: Likewise. * src/abg-dwarf-reader.cc: Likewise. * src/abg-elf-based-reader.cc: Likewise. * src/abg-elf-helpers.cc: Likewise. * src/abg-elf-helpers.h: Likewise. * src/abg-elf-reader.cc: Likewise. * src/abg-fe-iface.cc: Likewise. * src/abg-hash.cc: Likewise. * src/abg-ini.cc: Likewise. * src/abg-internal.h: Likewise. * src/abg-ir-priv.h: Likewise. * src/abg-ir.cc: Likewise. * src/abg-leaf-reporter.cc: Likewise. * src/abg-libxml-utils.cc: Likewise. * src/abg-reader.cc: Likewise. * src/abg-regex.cc: Likewise. * src/abg-reporter-priv.cc: Likewise. * src/abg-reporter-priv.h: Likewise. * src/abg-suppression-priv.h: Likewise. * src/abg-suppression.cc: Likewise. * src/abg-symtab-reader.cc: Likewise. * src/abg-symtab-reader.h: Likewise. * src/abg-tools-utils.cc: Likewise. * src/abg-traverse.cc: Likewise. * src/abg-viz-common.cc: Likewise. * src/abg-viz-dot.cc: Likewise. * src/abg-viz-svg.cc: Likewise. * src/abg-workers.cc: Likewise. * src/abg-writer.cc: Likewise. * tests/print-diff-tree.cc: Likewise. * tests/test-abicompat.cc: Likewise. * tests/test-abidiff-exit.cc: Likewise. * tests/test-abidiff.cc: Likewise. * tests/test-alt-dwarf-file.cc: Likewise. * tests/test-core-diff.cc: Likewise. * tests/test-cxx-compat.cc: Likewise. * tests/test-diff-dwarf-abixml.cc: Likewise. * tests/test-diff-dwarf.cc: Likewise. * tests/test-diff-filter.cc: Likewise. * tests/test-diff-pkg.cc: Likewise. * tests/test-diff-suppr.cc: Likewise. * tests/test-diff2.cc: Likewise. * tests/test-dot.cc: Likewise. * tests/test-elf-helpers.cc: Likewise. * tests/test-ini.cc: Likewise. * tests/test-ir-walker.cc: Likewise. * tests/test-kmi-whitelist.cc: Likewise. * tests/test-lookup-syms.cc: Likewise. * tests/test-read-btf.cc: Likewise. * tests/test-read-ctf.cc: Likewise. * tests/test-read-dwarf.cc: Likewise. * tests/test-read-write.cc: Likewise. * tests/test-svg.cc: Likewise. * tests/test-symtab-reader.cc: Likewise. * tests/test-symtab.cc: Likewise. * tests/test-tools-utils.cc: Likewise. * tests/test-types-stability.cc: Likewise. * tests/test-utils.cc: Likewise. * tests/test-utils.h: Likewise. * tools/abicompat.cc: Likewise. * tools/abidiff.cc: Likewise. * tools/abidw.cc: Likewise. * tools/abilint.cc: Likewise. * tools/abipkgdiff.cc: Likewise. * tools/abisym.cc: Likewise. * tools/binilint.cc: Likewise. * tools/kmidiff.cc: Likewise. * update-copyright.sh: Likewise. Signed-off-by: Dodji Seketeli <dodji@redhat.com>
147 lines
2.9 KiB
C++
147 lines
2.9 KiB
C++
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
// -*- mode: C++ -*-
|
|
//
|
|
// Copyright (C) 2013-2025 Red Hat, Inc.
|
|
|
|
/// @file
|
|
|
|
#ifndef __ABG_VIZ_SVG_H__
|
|
#define __ABG_VIZ_SVG_H__
|
|
|
|
#include <abg-viz-common.h>
|
|
|
|
namespace abigail
|
|
{
|
|
|
|
/**
|
|
Row displaying one element of member data.
|
|
|
|
Wide open background spaces, what do they look like, what do the
|
|
things in the foreground look like? Rectangle, for one.
|
|
|
|
Some characteristics:
|
|
- horizontal label (text anchor = start ie left).
|
|
- background box
|
|
- text data (text anchor = middle ie centered).
|
|
*/
|
|
struct row
|
|
{
|
|
std::string _M_id;
|
|
const style& _M_style;
|
|
|
|
units_type _M_offset;
|
|
units_type _M_size;
|
|
units_type _M_align;
|
|
};
|
|
|
|
/// Useful row constants. Maybe just do enum->value map.
|
|
extern const style primary_row_sty;
|
|
extern const style base_row_sty;
|
|
extern const style member_row_sty;
|
|
extern const style implementation_row_sty;
|
|
|
|
|
|
/**
|
|
SVG "array" style notation for size/layout/alignment.
|
|
|
|
This is a compact SVG representation of class layout.
|
|
|
|
It is composed of a minimum of three data points for each member or
|
|
base of a class:
|
|
|
|
- offset index
|
|
- size
|
|
- align
|
|
|
|
Including annotations for holes, padding, and
|
|
implementation-specified and otherwise invisible objects.
|
|
|
|
It's constructed by creating vertical columns for each of the data
|
|
points specified above, and filling in horizontal rows for each of
|
|
the class components.
|
|
*/
|
|
struct svg
|
|
{
|
|
|
|
private:
|
|
|
|
const std::string _M_title;
|
|
const canvas& _M_canvas;
|
|
const typography& _M_typo;
|
|
|
|
const units_type _M_x_size = 3; // Number of columns
|
|
units_type _M_x_space; // Column spacing.
|
|
units_type _M_x_origin; // X origin
|
|
|
|
units_type _M_y_size; // Number of rows
|
|
units_type _M_y_space; // Row spacing.
|
|
units_type _M_y_origin; // Y origin
|
|
|
|
std::ostringstream _M_sstream;
|
|
|
|
// static const units_type _M_stroke_width = 1;
|
|
// static const units_type _M_text_padding = 10;
|
|
|
|
public:
|
|
|
|
svg(const std::string &__title,
|
|
const canvas& __cv = ansi_letter_canvas,
|
|
const typography& __typo = arial_typo)
|
|
: _M_title(__title), _M_canvas(__cv), _M_typo(__typo), _M_y_size(0)
|
|
{
|
|
// Offsets require: typo, canvas units, size.
|
|
_M_x_space = 40;
|
|
_M_y_space = 40;
|
|
_M_x_origin = _M_x_space * 1;
|
|
_M_y_origin = _M_y_space * 2;
|
|
}
|
|
|
|
// Empty when the output buffer is.
|
|
bool
|
|
empty() { return _M_sstream.str().empty(); }
|
|
|
|
void
|
|
start_element();
|
|
|
|
void
|
|
finish_element();
|
|
|
|
void
|
|
add_title();
|
|
|
|
void
|
|
add_y_row(const row&);
|
|
|
|
void
|
|
add_y_lines();
|
|
|
|
void
|
|
add_y_label();
|
|
|
|
void
|
|
write();
|
|
|
|
void
|
|
start()
|
|
{
|
|
this->start_element();
|
|
this->add_title();
|
|
}
|
|
|
|
void
|
|
finish()
|
|
{
|
|
this->add_y_label();
|
|
this->add_y_lines();
|
|
this->finish_element();
|
|
this->write();
|
|
}
|
|
};
|
|
|
|
// XXX connect external xml file to input.
|
|
// parse input, pick apart elements, attributes.
|
|
|
|
}// end namespace abigail
|
|
|
|
#endif //__ABG_VIZ_SVG_H__
|