From 555af315b357d1872ccd5dba09884d6f74891bdf Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Sat, 26 Apr 2025 23:59:29 +0200 Subject: [PATCH] Upgrade: improve Doxygen parameters and treat some warnings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - remove obsolete configuration settings - walk through all settings according to the documentation https://www.doxygen.nl/manual/config.html - now try to use the new feature to rely on Clang for C++ parsing - walk through the doxygen-warnings.txt and fix some obvious misspellings and structural problems in the documentation comments. With Debian-Trixie, we are now using Doxygen 1.9.8 — which produces massively better results in various fine points. However, there are still problems with automatic cross links, especially from implementation to the corresponding test classes. --- doc/SConscript | 2 +- doc/devel/Doxyfile | 48 +++-- src/common/config-rules.hpp | 2 +- src/common/query.hpp | 6 +- src/doxygen.dox | 43 +++++ src/lib/cmdline.cpp | 2 +- src/lib/diff/tree-mutator.hpp | 4 +- src/lib/hash-combine.hpp | 2 +- src/lib/hetero-data.hpp | 6 +- src/lib/integral.hpp | 2 +- src/lib/iter-adapter-ptr-deref.hpp | 4 +- src/lib/iter-explorer.hpp | 2 +- src/lib/iter-source.hpp | 2 +- src/lib/luid.h | 6 +- src/lib/parse.hpp | 8 +- src/lib/polymorphic-value.hpp | 2 +- src/lib/scoped-holder-transfer.hpp | 8 +- src/lib/several-builder.hpp | 16 +- src/lib/simple-allocator.hpp | 4 +- src/lib/split-splice.hpp | 2 +- src/lib/stat/statistic.hpp | 2 +- src/lib/thread.cpp | 2 +- src/lib/time.h | 2 +- src/lib/util-tuple.hpp | 2 +- src/stage/config-keys.hpp | 4 +- src/stage/interact/ui-coord-resolver.hpp | 40 ++-- src/stage/interact/view-locator.hpp | 2 +- src/stage/interact/view-spec-dsl.hpp | 4 +- src/stage/timeline/body-canvas-widget.cpp | 2 +- src/steam/asset.cpp | 6 +- src/steam/asset.hpp | 2 +- src/steam/asset/media.hpp | 2 +- src/steam/asset/proc.hpp | 2 +- src/steam/assetmanager.hpp | 2 +- src/steam/control/argument-tuple-accept.hpp | 6 +- src/steam/control/steam-dispatcher.cpp | 2 +- src/steam/control/stypemanager.hpp | 2 +- src/steam/engine/engine-service.hpp | 2 +- src/steam/engine/feed-manifold.hpp | 2 +- src/steam/engine/node-builder.hpp | 4 +- src/steam/fixture/model-port-registry.cpp | 2 +- src/steam/fixture/model-port-registry.hpp | 2 +- src/steam/fixture/segment.hpp | 2 +- src/steam/fixture/segmentation.hpp | 2 +- src/steam/mobject/interpolator.hpp | 4 +- src/steam/mobject/model-port.hpp | 2 +- src/steam/mobject/output-mapping.hpp | 2 +- src/steam/mobject/session/effect.cpp | 2 +- src/steam/mobject/session/scope.hpp | 12 +- .../mobject/session/session-services.cpp | 2 +- src/steam/mobject/session/session.cpp | 4 +- src/vault/gear/activity-term.hpp | 2 +- src/vault/gear/block-flow.hpp | 2 +- tests/basics/typed-counter-test.cpp | 4 +- tests/basics/visitingtool-concept.cpp | 33 ++-- .../application/subsystem-runner-test.cpp | 2 +- ...est.cpp => output-proxy-provider-test.cpp} | 2 +- .../mobject/builder/builder-tool-test.cpp | 2 +- tests/library/hetero-data-test.cpp | 2 +- tests/library/index-iter-test.cpp | 2 +- tests/vault/gear/stress-test-rig.hpp | 2 +- wiki/thinkPad.ichthyo.mm | 178 ++++++++++++++---- 62 files changed, 338 insertions(+), 192 deletions(-) rename tests/core/steam/engine/{buffer-proxy-provider-test.cpp => output-proxy-provider-test.cpp} (98%) diff --git a/doc/SConscript b/doc/SConscript index e20bb4eb0..537b9b137 100644 --- a/doc/SConscript +++ b/doc/SConscript @@ -10,7 +10,7 @@ Import('env') doxydoc = env.Doxygen('devel/Doxyfile') # env.Install(dir = '$DESTDIR/share/doc/lumiera$VERSION/devel', source=documentation) -env.Clean (doxydoc, doxydoc + ['devel/,doxylog','devel/warnings.txt']) +env.Clean (doxydoc, doxydoc + ['devel/,doxylog','devel/doxygen-warnings.txt']) Export('doxydoc') diff --git a/doc/devel/Doxyfile b/doc/devel/Doxyfile index 89b27dc56..443965d1a 100644 --- a/doc/devel/Doxyfile +++ b/doc/devel/Doxyfile @@ -35,6 +35,7 @@ SHORT_NAMES = NO JAVADOC_AUTOBRIEF = YES QT_AUTOBRIEF = NO MULTILINE_CPP_IS_BRIEF = NO +PYTHON_DOCSTRING = NO INHERIT_DOCS = YES SEPARATE_MEMBER_PAGES = NO TAB_SIZE = 4 @@ -43,6 +44,7 @@ OPTIMIZE_OUTPUT_FOR_C = NO OPTIMIZE_OUTPUT_JAVA = NO EXTENSION_MAPPING = MARKDOWN_SUPPORT = YES +MARKDOWN_ID_STYLE = GITHUB TOC_INCLUDE_HEADINGS = 2 AUTOLINK_SUPPORT = YES BUILTIN_STL_SUPPORT = YES @@ -55,17 +57,20 @@ INLINE_GROUPED_CLASSES = NO INLINE_SIMPLE_STRUCTS = YES TYPEDEF_HIDES_STRUCT = YES LOOKUP_CACHE_SIZE = 2 +NUM_PROC_THREADS = 0 +TIMESTAMP = DATE #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- -EXTRACT_ALL = NO +EXTRACT_ALL = YES EXTRACT_PRIVATE = YES EXTRACT_PACKAGE = YES EXTRACT_STATIC = YES EXTRACT_LOCAL_CLASSES = YES EXTRACT_LOCAL_METHODS = YES EXTRACT_ANON_NSPACES = YES +RESOLVE_UNNAMED_PARAMS = YES HIDE_UNDOC_MEMBERS = NO HIDE_UNDOC_CLASSES = NO HIDE_FRIEND_COMPOUNDS = NO @@ -73,12 +78,13 @@ HIDE_IN_BODY_DOCS = NO INTERNAL_DOCS = YES CASE_SENSE_NAMES = YES HIDE_SCOPE_NAMES = YES +SHOW_HEADERFILE = YES SHOW_INCLUDE_FILES = YES SHOW_GROUPED_MEMB_INC = NO FORCE_LOCAL_INCLUDES = YES INLINE_INFO = YES SORT_MEMBER_DOCS = NO -SORT_BRIEF_DOCS = YES +SORT_BRIEF_DOCS = NO SORT_MEMBERS_CTORS_1ST = YES SORT_GROUP_NAMES = NO SORT_BY_SCOPE_NAME = NO @@ -150,15 +156,14 @@ REFERENCES_RELATION = YES REFERENCES_LINK_SOURCE = NO SOURCE_TOOLTIPS = YES USE_HTAGS = NO -VERBATIM_HEADERS = YES -CLANG_ASSISTED_PARSING = NO -CLANG_OPTIONS = +VERBATIM_HEADERS = NO +CLANG_ASSISTED_PARSING = YES +CLANG_OPTIONS = -DDEBUG -DEBUG_ALPHA #--------------------------------------------------------------------------- # Configuration options related to the alphabetical class index #--------------------------------------------------------------------------- ALPHABETICAL_INDEX = YES -COLS_IN_ALPHA_INDEX = 1 IGNORE_PREFIX = lumiera:: \ lumiera_ \ lumi_ \ @@ -175,11 +180,14 @@ HTML_FOOTER = HTML_STYLESHEET = HTML_EXTRA_STYLESHEET = HTML_EXTRA_FILES = +HTML_COLORSTYLE = LIGHT HTML_COLORSTYLE_HUE = 344 HTML_COLORSTYLE_SAT = 68 HTML_COLORSTYLE_GAMMA = 80 -HTML_TIMESTAMP = YES +HTML_DYNAMIC_MENUS = YES HTML_DYNAMIC_SECTIONS = YES +HTML_CODE_FOLDING = YES +HTML_PROJECT_COOKIE = DoxyLumi HTML_INDEX_NUM_ENTRIES = 100 GENERATE_DOCSET = NO GENERATE_HTMLHELP = NO @@ -190,8 +198,8 @@ GENERATE_TREEVIEW = YES TREEVIEW_WIDTH = 200 ENUM_VALUES_PER_LINE = 1 EXT_LINKS_IN_WINDOW = NO +HTML_FORMULA_FORMAT = svg FORMULA_FONTSIZE = 9 -FORMULA_TRANSPARENT = YES USE_MATHJAX = NO SEARCHENGINE = YES SERVER_BASED_SEARCH = NO @@ -216,9 +224,7 @@ PDF_HYPERLINKS = YES USE_PDFLATEX = YES LATEX_BATCHMODE = YES LATEX_HIDE_INDICES = NO -LATEX_SOURCE_CODE = NO LATEX_BIB_STYLE = plain -LATEX_TIMESTAMP = NO #--------------------------------------------------------------------------- # Configuration options related to the RTF output @@ -239,7 +245,7 @@ EXPAND_ONLY_PREDEF = NO SEARCH_INCLUDES = YES INCLUDE_PATH = INCLUDE_FILE_PATTERNS = -PREDEFINED = __cplusplus +PREDEFINED = __cplusplus DEBUG EBUG_ALPHA EXPAND_AS_DEFINED = SKIP_FUNCTION_MACROS = YES @@ -251,41 +257,29 @@ GENERATE_TAGFILE = lumiera.tag ALLEXTERNALS = NO EXTERNAL_GROUPS = YES EXTERNAL_PAGES = YES -PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -MSCGEN_PATH = -DIA_PATH = -HIDE_UNDOC_RELATIONS = YES HAVE_DOT = YES -DOT_NUM_THREADS = 0 -DOT_FONTNAME = FreeSans -DOT_FONTSIZE = 8 -DOT_FONTPATH = +DOT_NUM_THREADS = 0 # use all cores CLASS_GRAPH = YES COLLABORATION_GRAPH = YES GROUP_GRAPHS = YES +HIDE_UNDOC_RELATIONS = YES UML_LOOK = YES -UML_LIMIT_NUM_FIELDS = 8 +UML_LIMIT_NUM_FIELDS = 12 TEMPLATE_RELATIONS = YES INCLUDE_GRAPH = NO INCLUDED_BY_GRAPH = NO CALL_GRAPH = YES CALLER_GRAPH = YES -GRAPHICAL_HIERARCHY = NO DIRECTORY_GRAPH = YES +GRAPHICAL_HIERARCHY = NO DOT_IMAGE_FORMAT = svg INTERACTIVE_SVG = YES -DOT_PATH = -DOTFILE_DIRS = -MSCFILE_DIRS = -DIAFILE_DIRS = DOT_GRAPH_MAX_NODES = 80 MAX_DOT_GRAPH_DEPTH = 20 -DOT_TRANSPARENT = YES DOT_MULTI_TARGETS = YES GENERATE_LEGEND = YES DOT_CLEANUP = YES diff --git a/src/common/config-rules.hpp b/src/common/config-rules.hpp index 6bdbd1c08..1bbf9ecaf 100644 --- a/src/common/config-rules.hpp +++ b/src/common/config-rules.hpp @@ -160,7 +160,7 @@ namespace lumiera { * fulfilling the given query. * @param solution object fulfilling the query. Will be bound or * unified (in case it's already bound) with the first solution. - * @query any goals to be fulfilled by the solution. + * @param q any goals to be fulfilled by the solution. * @return false if resolution failed. In this case, solution ptr is empty. */ virtual bool resolve (P& solution, Query const& q) = 0; diff --git a/src/common/query.hpp b/src/common/query.hpp index 3847244a0..c34fd64c7 100644 --- a/src/common/query.hpp +++ b/src/common/query.hpp @@ -19,10 +19,10 @@ ** to decouple the parts of the application and allows for a rules based configuration and ** orchestration of the internal workings. ** - ** A Query is a request for just \em someone to come up with a solution, a preconfigured + ** A Query is a request for _just someone_ to come up with a solution, a preconfigured ** setup, some existing data object or contextual information. In order to be usable, ** actually a QueryResolver needs to be available to compute the solution and retrieve - ** the results. As a common denominator, queries can be generic queries given + ** the results. As a common denominator, queries can be _generic queries_ given ** in predicate logic syntax; in this case a generic query resolver (Planned feature ** as of 1/2013) will be able at least to determine a suitable facility for delegating ** the resolution. Besides, specific subsystems are using more specific kinds of @@ -45,7 +45,7 @@ ** The QueryResolver returns a result set, actually a Query::Cursor, which can be used to ** enumerate multiple solutions, if any. ** - ** Queries are \em immutable, but it is possible to re-build and remould a query using + ** Queries are _immutable_, but it is possible to re-build and remould a query using ** a Query::Builder, accessible via Query#build() and Query#rebuild(). ** ** @note as of 1/2013 this is rather a concept draft, but some parts of the code base diff --git a/src/doxygen.dox b/src/doxygen.dox index efd738f5c..984daff0e 100644 --- a/src/doxygen.dox +++ b/src/doxygen.dox @@ -107,3 +107,46 @@ implementation namespaces within \c lumiera:: Implementation namespace for support and library code. */ + + +/* ==== Test Namespaces ==== */ + +/** @namespace test +Test runner and basic definitions for tests. +*/ + +/** @namespace lib::test +Unit tests for the Lumiera support library. +*/ + +/** @namespace lib::test::test */ +/** @namespace lib::time::test */ +/** @namespace lib::diff::test */ +/** @namespace lib::hash::test */ +/** @namespace lib::idi::test */ +/** @namespace lib::iter::test */ +/** @namespace lib::meta::test */ + +/** @namespace util::test */ + +/** @namespace vault::test */ +/** @namespace vault::mem::test */ +/** @namespace vault::gear::test */ + +/** @namespace steam::test */ +/** @namespace steam::play:test */ +/** @namespace steam::engine::test */ +/** @namespace steam::fixture::test */ +/** @namespace steam::asset::test */ +/** @namespace steam::asset::meta::test */ +/** @namespace steam::control::test */ +/** @namespace steam::session::test */ +/** @namespace steam::builder::test */ + +/** @namespace stage::test */ +/** @namespace stage::ctrl::test */ +/** @namespace stage::model::test */ +/** @namespace stage::interact::test */ + +// Remark: for some unclear reason, cross-links to test-class names do not work in Doxygen; +// even after declaring these namespaces, or after setting EXTRACT_ALL = YES diff --git a/src/lib/cmdline.cpp b/src/lib/cmdline.cpp index a86e85728..2896fe231 100644 --- a/src/lib/cmdline.cpp +++ b/src/lib/cmdline.cpp @@ -36,7 +36,7 @@ using util::noneg; namespace lib { - /** create as a tokenised copy of the current commandline. + /** create as a tokenised _copy_ of the current commandline. * Note that argv[0] is always ignored. */ Cmdline::Cmdline (int argc, const char** argv) : vector (noneg(argc-1)) diff --git a/src/lib/diff/tree-mutator.hpp b/src/lib/diff/tree-mutator.hpp index 7124691b1..f889a3f5f 100644 --- a/src/lib/diff/tree-mutator.hpp +++ b/src/lib/diff/tree-mutator.hpp @@ -430,7 +430,7 @@ namespace diff{ auto ignoreAllChanges(); - /** attach a listener function, to be invoked on _structural changes._ + /** attach a listener function, to be invoked on _structural changes_. * Here, we define any change as "structural", which alters the _sequence_ of * child elements, as opposed to their content. In practice, this listener will * be invoked _after_ applying a diff with any `INS`, `DEL`, `FIND`, `SKIP` verb. @@ -442,7 +442,7 @@ namespace diff{ template auto onSeqChange (LIS changeListener); - /** attach a listener function, to be invoked on any _local change._ + /** attach a listener function, to be invoked on any _local change_. * This includes the [structural changes](\ref onSeqChange()), but also * value assignments to any attribute or element. * @note mutation of a nested child scope will _not_ trigger this listener. diff --git a/src/lib/hash-combine.hpp b/src/lib/hash-combine.hpp index 90bb34ea5..f008f979c 100644 --- a/src/lib/hash-combine.hpp +++ b/src/lib/hash-combine.hpp @@ -28,7 +28,7 @@ */ -/** @file hash-combine.h +/** @file hash-combine.hpp ** Hash combine function extracted from LibBoost 1.67 ** Combine two hash values to form a composite depending on both. ** @todo 2024 the Lumiera project has yet to decide how to approach diff --git a/src/lib/hetero-data.hpp b/src/lib/hetero-data.hpp index 046faeae3..36cc5ed79 100644 --- a/src/lib/hetero-data.hpp +++ b/src/lib/hetero-data.hpp @@ -31,6 +31,7 @@ ** ** # Usage ** @warning it is essential to understand where actual storage resides! + ** ** A HeteroData chain is built-up gradually, starting with a front-block ** - the front-block is usually placed at an _anchor location_ and populated with data ** - retrieve a _chain constructor type_ from the _type_ of the front-block, @@ -39,7 +40,8 @@ ** - need to link this data block explicitly into the front ** - get _accessor types_ from the _chain constructor_ ** - use these to work with individual data elements _through the front-block._ - ** @example + ** + **\par example of typical usage ** \code ** using Front = lib::HeteroData; ** auto h1 = Front::build (1,2.3); @@ -205,7 +207,7 @@ namespace lib { /** - * Accessor-functor to get at the data residing within some tuple element + * Accessor-functor to get at the data residing within some tuple element. * Using the enclosing typed scope to ensure safe storage access * @tparam slot number of the data element, counting from zero over the full chain * @note this functor holds no data, but shall be applied to some existing HeteroData. diff --git a/src/lib/integral.hpp b/src/lib/integral.hpp index c77e1cc26..b9d34c6b7 100644 --- a/src/lib/integral.hpp +++ b/src/lib/integral.hpp @@ -12,7 +12,7 @@ */ -/** @file integral.h +/** @file integral.hpp ** Inclusion for common place integral types and constants. */ diff --git a/src/lib/iter-adapter-ptr-deref.hpp b/src/lib/iter-adapter-ptr-deref.hpp index 3f87cbb5a..e1aee69b0 100644 --- a/src/lib/iter-adapter-ptr-deref.hpp +++ b/src/lib/iter-adapter-ptr-deref.hpp @@ -103,8 +103,8 @@ namespace lib { * from (TY *)* -- just we know that our intention is to dereference both levels * of pointers, and then the resulting conversion is correct. * @note in case IT == WrappedIterType, this is just a redefinition of the - * default copy ctor. In all other cases, this is an additional - * ctor besides the default copy ctor */ + * default copy ctor. In all other cases, this is an _additional + * ctor besides the default copy ctor_. */ PtrDerefIter (PtrDerefIter const& oIter) : i_(reinterpret_cast (oIter.getBase())) { } diff --git a/src/lib/iter-explorer.hpp b/src/lib/iter-explorer.hpp index 7733480b3..e09ddad28 100644 --- a/src/lib/iter-explorer.hpp +++ b/src/lib/iter-explorer.hpp @@ -1877,7 +1877,7 @@ namespace lib { - /** builder function to attach a _custom extension layer._ + /** builder function to attach a _custom extension layer_. * Any template in compliance with the general construction scheme can be injected through the template parameter. * - it must take a first template parameter SRC and inherit from this source iterator * - towards layers on top, it must behave like a _state core,_ either by redefining the state core API functions, diff --git a/src/lib/iter-source.hpp b/src/lib/iter-source.hpp index 69bb18e88..30d6b1f9b 100644 --- a/src/lib/iter-source.hpp +++ b/src/lib/iter-source.hpp @@ -13,7 +13,7 @@ /** @file iter-source.hpp ** Extension module to build an opaque data source, accessible as - ** Lumiera Forward Iterator. It is based on combining an IterAdapter + ** **Lumiera Forward Iterator**. It is based on combining an IterAdapter ** with classical polymorphism; here, the data source, which is addressed ** by IderAdapter through the "iteration control API", is abstracted behind ** an interface (with virtual functions). Together this allows to build diff --git a/src/lib/luid.h b/src/lib/luid.h index 913effae9..3fae6be0b 100644 --- a/src/lib/luid.h +++ b/src/lib/luid.h @@ -20,14 +20,14 @@ ** Due to the extremely huge number space, LUID values can be used as unique identifiers ** without the need to check for duplicates or collisions. At various places, LUIDs are ** thus used right away on creation of new object instances or elements, in case a - ** distinguishable object identity is required, e.g. + ** distinguishable _object identity_ is required, e.g. ** - any new attachment of an object into the session ("placement") ** - unique output designation discovered during the translation into a low-level ** node graph ("builder") ** - interface slots for external binding and plug-ins ** - ** Moreover, there is a \link luidgen.c Luidgen \endlink tool to generate fixed LUIDs - ** to be included into source code. It works by replacing the token \c LUIDGEN in the + ** Moreover, there is a [Luidgen](\ref luidgen.c) tool to generate fixed LUIDs + ** to be included into source code. It works by replacing the token `LUIDGEN` in the ** source code text by a newly generated (random) LUID in octal representation. ** ** LUIDs can also be used to generate hash values for hash table storage. diff --git a/src/lib/parse.hpp b/src/lib/parse.hpp index 83c734cd2..fc3a5fd1c 100644 --- a/src/lib/parse.hpp +++ b/src/lib/parse.hpp @@ -232,7 +232,7 @@ namespace util { /** - * Foundation: build a \ref Connex to accept a _terminal symbol._ + * Foundation: build a \ref Connex to accept a _terminal symbol_. * the actual parsing is delegated to a Regular Expression, * which must match against the _beginning_ of the input sequence, * possibly after skipping some whitespace. The defined parser @@ -966,8 +966,8 @@ namespace util { } /** - * Start Syntax with a sub-clause enclosed into a _bracketing construct._ - * The »bracket« is defined as syntax for the _open marker_ and _close marker._ + * Start Syntax with a sub-clause enclosed into a _bracketing construct_. + * The »bracket« is defined as syntax for the _open marker_ and _close marker_. * These are consumed without generating model elements. The parse fails unless * the full sequence `open body close` can be matched. */ @@ -1061,7 +1061,7 @@ namespace util { /** * Combinator: extend this Syntax clause by expecting a further sub-clause * behind the part of the input matched by the already defined part of this Syntax. - * The result model will be a \SeqModel, which essentially is a tuple of the + * The result model will be a \ref SeqModel, which essentially is a tuple of the * result models of all sequenced parts. * @return Syntax clause instance accepting the extended structure. * @warning the old syntax is invalidated by moving the parse-function out. diff --git a/src/lib/polymorphic-value.hpp b/src/lib/polymorphic-value.hpp index 1e31bf176..54cafe04a 100644 --- a/src/lib/polymorphic-value.hpp +++ b/src/lib/polymorphic-value.hpp @@ -38,7 +38,7 @@ ** just for passing an abstraction barrier (while the optimiser can be expected to ** remove this barrier and the accompanying nominal copy operations altogether in ** the generated code). Consequently the ability to return a polymorphic object - ** from a factory or configuration function by value would open a lot of + ** from a factory or configuration function _by value_ would open a lot of ** straight forward design possibilities and concise formulations. ** ** # how to build a copyable value without knowing it's layout in detail diff --git a/src/lib/scoped-holder-transfer.hpp b/src/lib/scoped-holder-transfer.hpp index 36e0391f7..0f6a130a6 100644 --- a/src/lib/scoped-holder-transfer.hpp +++ b/src/lib/scoped-holder-transfer.hpp @@ -54,13 +54,13 @@ namespace lib { * two instances, it will invoke a free function named * transfer_control(TY& from, TY& to) intended * to be found by ADL. Note: in case this function throws, - * it must not have any side effects. - * - besides, the \em noncopyable type needs to provide an + * it **must not have any side effects**. + * - besides, the _noncopyable_ type needs to provide an * operator bool() yielding true iff currently * containing an managed object. This is similar to * std::unique_ptr or even the behaviour of a plain - * old raw pointer, which is equivalent to \c true - * when the pointer isn'T \c NULL + * old raw pointer, which is equivalent to `true` + * when the pointer isn'T `NULL` * @deprecated obsoleted by C++11 rvalue references * */ diff --git a/src/lib/several-builder.hpp b/src/lib/several-builder.hpp index deb45add4..146f94c3d 100644 --- a/src/lib/several-builder.hpp +++ b/src/lib/several-builder.hpp @@ -20,10 +20,10 @@ ** ** # Implementation data layout ** - ** The front-end container lib::Several is actually just a smart-ptr referring + ** The front-end container `lib::Several` is actually just a smart-ptr referring ** to the actual data storage, which resides within an _array bucket._ Typically ** the latter is placed into memory managed by a custom allocator, most notably - ** lib::AllocationCluster. However, by default, the ArrayBucket will be placed + ** lib::AllocationCluster. However, by default, the `ArrayBucket` will be placed ** into heap memory. All further meta information is also maintained alongside ** this data allocation, including a _deleter function_ to invoke all element ** destructors and de-allocate the bucket itself. Neither the type of the @@ -31,7 +31,7 @@ ** ** Since the actual data elements can (optionally) be of a different type than ** the exposed interface type \a I, additional storage and spacing is required - ** in the element array. The field ArrayBucket::spread defines this spacing + ** in the element array. The field `ArrayBucket::spread` defines this spacing ** and thus the offset used for subscript access. The actual data storage starts ** immediately behind the ArrayBucket, which thus acts as a metadata header. ** This arrangement requires a sufficiently sized raw memory allocation to place @@ -144,7 +144,7 @@ namespace lib { /** * Helper to determine the »spread« required to hold - * elements of type \a TY in memory _with proper alignment._ + * elements of type \a TY in memory _with proper alignment_. */ template size_t inline constexpr @@ -170,7 +170,7 @@ namespace lib { namespace allo {// Allocation management policies /** - * Generic factory to manage objects within an ArrayBucket storage, + * Generic factory to manage objects within an `ArrayBucket` storage, * delegating to a custom allocator \a ALO for memory handling. * - #create a storage block for a number of objects * - #createAt construct a single payload object at index position @@ -291,7 +291,7 @@ namespace lib { /** * Policy Mix-In used to adapt to the ElementFactory and Allocator. - * @tparam I Interface type (also used in the lib::Several front-end + * @tparam I Interface type (also used in the `lib::Several` front-end * @tparam E a common _element type_ to use by default * @tparam ALO custom allocator template */ @@ -369,7 +369,7 @@ namespace lib { /*************************************************//** - * Builder to create and populate a lib::Several. + * Builder to create and populate a `lib::Several`. * Content elements can be of the _interface type_ \a I, * or the _default element type_ \a E. When possible, even * elements of an ad-hoc given, unrelated type can be used. @@ -388,7 +388,7 @@ namespace lib { * patterns, consistency checks may throw at runtime, * when attempting to add an unsuitable element. */ - template + template` ,class E =I ///< a subclass element element type (relevant when not trivially movable and destructible) ,template class POL =allo::HeapOwn ///< Allocator policy template (parametrised `POL`) > diff --git a/src/lib/simple-allocator.hpp b/src/lib/simple-allocator.hpp index 150facd0a..45fa8969c 100644 --- a/src/lib/simple-allocator.hpp +++ b/src/lib/simple-allocator.hpp @@ -61,8 +61,8 @@ namespace lib { /** * Policy: use just plain heap allocations - * @waring whenever you define a specialisation, - * _you_ are responsible for proper alignment + * @warning whenever you define a specialisation, + * _you_ are responsible for proper alignment * @see TICKET #1204 */ template diff --git a/src/lib/split-splice.hpp b/src/lib/split-splice.hpp index 4bb88f03a..02add3a17 100644 --- a/src/lib/split-splice.hpp +++ b/src/lib/split-splice.hpp @@ -12,7 +12,7 @@ */ -/** @file splite-splice.hpp +/** @file split-splice.hpp ** Generic algorithm to splice a new segment into a seamless segmentation of intervals. ** Here _"segmentation"_ denotes a partitioning of an ordered axis into a seamless sequence ** of intervals (here called "segment"). The axis is based on some _ordering type,_ like e.g. diff --git a/src/lib/stat/statistic.hpp b/src/lib/stat/statistic.hpp index 88aa0ee27..c4326938f 100644 --- a/src/lib/stat/statistic.hpp +++ b/src/lib/stat/statistic.hpp @@ -12,7 +12,7 @@ */ -/** @file statistic.cpp +/** @file statistic.hpp ** Support for generic statistics calculations. ** - average over the N last elements in a data sequence ** - simple linear regression with weights (single predictor variable) diff --git a/src/lib/thread.cpp b/src/lib/thread.cpp index a202b362d..0f227f21e 100644 --- a/src/lib/thread.cpp +++ b/src/lib/thread.cpp @@ -11,7 +11,7 @@ * *****************************************************************/ -/** @file sync.cpp +/** @file thread.cpp ** This compilation unit holds some implementation details ** of the [thread wrapper](\ref lib::Thread), relegated here ** to reduce header inclusions. diff --git a/src/lib/time.h b/src/lib/time.h index 4fc96952a..3f1931738 100644 --- a/src/lib/time.h +++ b/src/lib/time.h @@ -102,7 +102,7 @@ int64_t lumiera_quantise_frames_fps (gavl_time_t time, gavl_time_t origin, uint framerate); /** - * Similar to #lumiera_quantise_frames, but returns a grid aligned _relative time._ + * Similar to #lumiera_quantise_frames, but returns a grid aligned _relative time_. * @return time of start of the grid interval containing the given time, * but measured relative to the origin * @warning because the resulting value needs to be limited to fit into a 64bit long, diff --git a/src/lib/util-tuple.hpp b/src/lib/util-tuple.hpp index 5f3c46215..1dd87d07c 100644 --- a/src/lib/util-tuple.hpp +++ b/src/lib/util-tuple.hpp @@ -12,7 +12,7 @@ */ -/** @file util-tuples.hpp +/** @file util-tuple.hpp ** Some small helpers and convenience shortcuts to simplify working with ** tuples and sequences (given by iterator). While tuples and sequences ** are fundamentally different insofar a tuple has a fixed structure (and diff --git a/src/stage/config-keys.hpp b/src/stage/config-keys.hpp index a4da9df9c..e4902d34b 100644 --- a/src/stage/config-keys.hpp +++ b/src/stage/config-keys.hpp @@ -21,8 +21,8 @@ ** The UI layer retrieves the necessary configuration values from lumiera::Config, ** the config facade in the application core. Currently as of 2/2011 these values are ** loaded from setup.ini, because the full-blown config system is not yet implemented. - ** Amongst others, this configuration defines a search path for icons and a - ** separate search path for resources. These path specs may use the token \c $ORIGIN + ** Amongst others, this configuration defines a _search path_ for icons and a + ** separate search path for resources. These path specs may use the token `$ORIGIN` ** to refer to the installation directory of the currently executing program. ** This allows for a relocatable Lumiera installation bundle. ** diff --git a/src/stage/interact/ui-coord-resolver.hpp b/src/stage/interact/ui-coord-resolver.hpp index ce7729675..3525dcc16 100644 --- a/src/stage/interact/ui-coord-resolver.hpp +++ b/src/stage/interact/ui-coord-resolver.hpp @@ -54,20 +54,20 @@ ** and the presence of some component, several contextual predications may be queried: ** ** - *anchorage* - ** ** the way the given coordinate spec is or can be anchored - ** *** it is already _explicitly anchored_ by referring either to a specific window or by generic specification - ** *** it _can be a anchored_ by interpolation of some wildcards - ** *** it is _incomplete_ and need to be extended to allow anchoring - ** *** it is _impossible to anchor_ in the current UI configuration + ** + the way the given coordinate spec is or can be anchored + ** * it is already _explicitly anchored_ by referring either to a specific window or by generic specification + ** * it _can be a anchored_ by interpolation of some wildcards + ** * it is _incomplete_ and need to be extended to allow anchoring + ** * it is _impossible to anchor_ in the current UI configuration ** ** - *coverage* - ** ** the extent to which a given coordinate spec is backed by the actual UI configuration - ** ** _please note_: to determine the coverage, the spec needs to be anchored, either explicitly, - ** or by interpolation, or by extension of an incomplete spec - ** *** it is _completely covered_ - ** *** it is _partially covered_ with an remaining, uncovered extension part - ** *** it is _possible to cover completely_ - ** *** it is _impossible to cover_ related to the current UI topology + ** + the extent to which a given coordinate spec is backed by the actual UI configuration + ** + _please note_: to determine the coverage, the spec needs to be anchored, either explicitly, + ** or by interpolation, or by extension of an incomplete spec + ** * it is _completely covered_ + ** * it is _partially covered_ with an remaining, uncovered extension part + ** * it is _possible to cover completely_ + ** * it is _impossible to cover_ related to the current UI topology ** ** \par Some fine points to note ** Anchorage and coverage are not the same thing, but coverage implies anchorage. Only when a path is complete @@ -84,17 +84,17 @@ ** it is also possible to rewrite or extend the spec based on this environment ** ** - *anchoring* - ** ** in correspondence to the possible states of anchorage, we may derive an explicitly anchored spec - ** *** by interpolating the given spec - ** *** by interpretation and extension of the given spec + ** + in correspondence to the possible states of anchorage, we may derive an explicitly anchored spec + ** * by interpolating the given spec + ** * by interpretation and extension of the given spec ** ** - *covering* - ** ** we may construct the covered part of a given spec, which includes automatic anchoring + ** + we may construct the covered part of a given spec, which includes automatic anchoring ** ** - *extending* - ** ** a given UI coordinate pattern is covered... - ** ** and _truncated_ to the covered part - ** ** the given _extension suffix_ is then attached behind + ** + a given UI coordinate pattern is covered... + ** + and _truncated_ to the covered part + ** + the given _extension suffix_ is then attached behind ** ** @see UICoordResolver_test ** @see UICoord_test @@ -536,7 +536,7 @@ namespace interact { } - /** mutate to turn a wildcard into _existentially quantified._ + /** mutate to turn a wildcard into _existentially quantified_. * This means to assume (or require) that an element actually exists at the given position, * without knowing or caring about its actual name. This becomes relevant when matching for * _partially covered_ path; normal wildcards are only accepted to build a solution, when diff --git a/src/stage/interact/view-locator.hpp b/src/stage/interact/view-locator.hpp index 0ac4d09a7..9835a1017 100644 --- a/src/stage/interact/view-locator.hpp +++ b/src/stage/interact/view-locator.hpp @@ -15,7 +15,7 @@ /** @file view-locator.hpp ** Access and allocation of UI component views. ** Within the Lumiera UI, a _component view_ is a building block to deal with some component - ** of relevance to _»the model«. As such, all component views exhibit some distinctive traits: + ** of relevance to _»the model«_. As such, all component views exhibit some distinctive traits: ** - they conform to a built-in fixed list of view types, each of which is unique and dedicated ** to a very specific purpose: *Timeline*, *Viewer*, (Asset)*Bin*, *Infobox*, *Playcontrol*,... ** - each component view has a distinguishable identity and is connected to and addressable diff --git a/src/stage/interact/view-spec-dsl.hpp b/src/stage/interact/view-spec-dsl.hpp index 68d99f714..de7eb0c0b 100644 --- a/src/stage/interact/view-spec-dsl.hpp +++ b/src/stage/interact/view-spec-dsl.hpp @@ -169,8 +169,8 @@ namespace interact { /** - * Allocator is a functor to resolve a given, desired location of a view within the UI, resulting - * in creation or allocation of the view -- which happens _as side-effect._ The result of this invocation + * Allocator is a functor to resolve a given, desired location of a view within the UI. Invocation results + * in creation or allocation of the view -- which happens _as side-effect_. The result of this invocation * are the UI coordinates of an existing or newly created view. */ using Allocator = std::function; diff --git a/src/stage/timeline/body-canvas-widget.cpp b/src/stage/timeline/body-canvas-widget.cpp index 7f0df4d2a..906a725a1 100644 --- a/src/stage/timeline/body-canvas-widget.cpp +++ b/src/stage/timeline/body-canvas-widget.cpp @@ -490,7 +490,7 @@ namespace timeline { /** * The Lumiera Timeline model does not rely on a list of tracks, as most conventional video editing software does -- - * rather, each sequence holds a _fork of nested scopes._ This recursively nested structure is parallelled in the way + * rather, each sequence holds a _fork of nested scopes_. This recursively nested structure is parallelled in the way * we organise and draw the timeline representation onto the TimelineCanvas: we use an intermediary entity, the TrackBody * as an organisational grouping device, even while we draw _all of the timeline representation_ onto a single global * #mainCanvas_ within the (scrollable) #contentArea_. Thus, adding the first TrackBody to represent the root track diff --git a/src/steam/asset.cpp b/src/steam/asset.cpp index f644ac43e..25e7bac51 100644 --- a/src/steam/asset.cpp +++ b/src/steam/asset.cpp @@ -152,9 +152,9 @@ namespace asset { other->unlink (this->id); } - /** release all links to other dependent - * asset objects held internally and advise all parent - * assets to do so with the link to this asset. + /** release all links to other _dependent asset objects_ + * held internally and advise all parent assets to do so + * with the link to this asset. * @note we don't release upward links to parent assets, * thus effectively keeping the parents alive, because * frequently the accessibility of parent assets is part diff --git a/src/steam/asset.hpp b/src/steam/asset.hpp index 5d93f978c..1a6df51db 100644 --- a/src/steam/asset.hpp +++ b/src/steam/asset.hpp @@ -21,7 +21,7 @@ ** These classes are placed into namespace asset and proc_interface. ** ** Assets are handled by a hierarchy of interfaces. Below the top level Asset interface - ** there are interfaces for various different Kinds of Assets, like asset::Media, + ** there are interfaces for various different _Kinds of Assets_, like asset::Media, ** asset::Proc, etc. Code utilising the specific properties of e.g. Media assets, will ** be implemented directly against the asset::Media interface. To make this feasible ** while at the same time being able to handle all asset Kinds in a uniform manner, diff --git a/src/steam/asset/media.hpp b/src/steam/asset/media.hpp index eebc0ec77..e01f9f3a8 100644 --- a/src/steam/asset/media.hpp +++ b/src/steam/asset/media.hpp @@ -14,7 +14,7 @@ /** @file media.hpp ** Media data represented a specific kind of Asset. - ** For the different kinds of Assets, we use sub-interfaces inheriting + ** For the different _kinds of Assets_, we use sub-interfaces inheriting ** from the general Asset interface. To be able to get asset::Media instances ** directly from the AssetManager, we define a specialisation of the Asset ID. ** diff --git a/src/steam/asset/proc.hpp b/src/steam/asset/proc.hpp index de971672a..cb6735957 100644 --- a/src/steam/asset/proc.hpp +++ b/src/steam/asset/proc.hpp @@ -14,7 +14,7 @@ /** @file proc.hpp ** Data processing Plugins and Codecs can be treated as a specific Kind of Asset. - ** For the different Kinds of Assets, we use sub-interfaces inheriting + ** For the different _Kinds of Assets_, we use sub-interfaces inheriting ** from the general Asset interface. To be able to get asset::Proc instances ** directly from the AssetManager, we define a specialisation of the Asset ID. ** diff --git a/src/steam/assetmanager.hpp b/src/steam/assetmanager.hpp index 4c450e8e3..9e6ed8047 100644 --- a/src/steam/assetmanager.hpp +++ b/src/steam/assetmanager.hpp @@ -93,7 +93,7 @@ namespace asset { bool known (IDA id, const Category& cat) ; /** remove the given asset from the internal DB. - * together with all its dependents */ + * _together with all its dependents_. */ void remove (IDA id) ; /** deregister and evict all known Assets. diff --git a/src/steam/control/argument-tuple-accept.hpp b/src/steam/control/argument-tuple-accept.hpp index 55680cdc7..02be84b29 100644 --- a/src/steam/control/argument-tuple-accept.hpp +++ b/src/steam/control/argument-tuple-accept.hpp @@ -541,8 +541,8 @@ namespace control { /** Helper Template for building a Functor or function-like class: * Mix in a function call operator, which mimics the specified signature SIG . * This template is to be used as a base class to inherit the target type TAR from; - * this target type is assumed to provide a function \bindArg(Tuple) -- - * where \c TYPES... is the sequence of types found in the provided Signature SIG. + * this target type is assumed to provide a function `bindArg(Tuple)` — + * where `TYPES...` is the sequence of types found in the provided Signature \a SIG. */ template class AcceptArgumentTuple @@ -551,7 +551,7 @@ namespace control { { }; - /** Helper Template for Steam-Layer control::Command : mix in a \c bind(...) function + /** Helper Template for Steam-Layer control::Command : mix in a `bind(...)` function * @param SIG function signature to mimic (regarding the arguments and return type) * @param TAR the target class providing a function \c bindArg(Tuple >) * @param BASE the base class for inheritance chaining diff --git a/src/steam/control/steam-dispatcher.cpp b/src/steam/control/steam-dispatcher.cpp index abe38bea7..d7c951331 100644 --- a/src/steam/control/steam-dispatcher.cpp +++ b/src/steam/control/steam-dispatcher.cpp @@ -101,7 +101,7 @@ namespace control { /********************************************************************//** - * PImpl within SteamDispatcher to implement the _Session Loop Thread._ + * PImpl within SteamDispatcher to implement the _Session Loop Thread_. * During the lifetime of this object... * - the SessionCommandService is offered to enqueue commands * - the Session Loop thread dispatches commands and triggers the Builder diff --git a/src/steam/control/stypemanager.hpp b/src/steam/control/stypemanager.hpp index 7a7a854de..056ac3a7c 100644 --- a/src/steam/control/stypemanager.hpp +++ b/src/steam/control/stypemanager.hpp @@ -80,7 +80,7 @@ namespace control { friend class lib::DependencyFactory; /** Lifecycle: reset all type registration information - * to the generic pristine default state. This includes + * to the _generic pristine default_ state. This includes * hard wired defaults and defaults provided by type plugins, but * excludes everything added by the session */ diff --git a/src/steam/engine/engine-service.hpp b/src/steam/engine/engine-service.hpp index 7d752f568..6f1167eb2 100644 --- a/src/steam/engine/engine-service.hpp +++ b/src/steam/engine/engine-service.hpp @@ -18,7 +18,7 @@ ** The EngineService singleton has no state beyond the jobs currently managed by the ** scheduler; when the latter isn't available, any invocation will throw. ** - ** The central concept provided through this facade interface is the calculation stream. + ** The central concept provided through this facade interface is the **calculation stream**. ** This represents a series of calculations, expected to happen in a timely fashion and in order ** to deliver a frame data stream into an opened output connection. On the implementation side, ** a calculation stream will be translated into a series of jobs to invoke render nodes; diff --git a/src/steam/engine/feed-manifold.hpp b/src/steam/engine/feed-manifold.hpp index c1e099507..3d9b7c72d 100644 --- a/src/steam/engine/feed-manifold.hpp +++ b/src/steam/engine/feed-manifold.hpp @@ -236,7 +236,7 @@ namespace engine { /** - * Trait template to handle an _associated parameter functor._ + * Trait template to handle an _associated parameter functor_. * In those cases, where the basic processing function is classified such * as to accept parameter(s), it may be desirable to _generate_ those parameters * at invocation — be it as a fixed parametrisation chosen for this usage, or even diff --git a/src/steam/engine/node-builder.hpp b/src/steam/engine/node-builder.hpp index 29fdf5b1e..aaa041a86 100644 --- a/src/steam/engine/node-builder.hpp +++ b/src/steam/engine/node-builder.hpp @@ -77,7 +77,7 @@ ** ** ## Flavours of the processing function ** The binding to the actual data processing operations (usually supplied by an external library) - ** is established by a **processing-functor** passed to configure the [Port builder](\PortBuilderRoot::invoke()). + ** is established by a **processing-functor** passed to configure the [Port builder](\ref PortBuilderRoot::invoke()). ** The supported signatures of this functor are quite flexible to allow for various flavours of invocation. ** Data types of parameters and buffers are picked up automatically (at compile time), based on the ** signature of the actual function supplied. The accepted variations are described in detail @@ -603,7 +603,7 @@ namespace engine { /** - * Nested sub-Builder analogous to \ref PortBuilder, but for building a _»Param Agent Node«._ + * Nested sub-Builder analogous to \ref PortBuilder, but for building a _»Param Agent Node«_. * This will compute additional parameters and make them temporarily accessible through the * TurnoutSystem of the invocation, but only while delegating recursively to another * computation node, which can then draw upon these additional parameter values. diff --git a/src/steam/fixture/model-port-registry.cpp b/src/steam/fixture/model-port-registry.cpp index 82bcb660f..efe8c0294 100644 --- a/src/steam/fixture/model-port-registry.cpp +++ b/src/steam/fixture/model-port-registry.cpp @@ -99,7 +99,7 @@ namespace fixture { - /** does the transaction currently being built + /** does the transaction _currently being built_ * already contain a model port registration for the given ID? * @note this does \em not query registration state of the * global registry; use #isRegistered for that...*/ diff --git a/src/steam/fixture/model-port-registry.hpp b/src/steam/fixture/model-port-registry.hpp index 02d1bf06e..62486a857 100644 --- a/src/steam/fixture/model-port-registry.hpp +++ b/src/steam/fixture/model-port-registry.hpp @@ -17,7 +17,7 @@ ** While client code accesses model ports only as immutable descriptors handled ** through an (opaque) reference, the builder is in charge of detecting and organising ** any (new) model ports arising as the result of the build process. Changes to the set - ** of current model ports are to be activated with an atomic transactional switch. + ** of current model ports are to be activated with an atomic _transactional switch_. ** ** builder::ModelPortRegistry thus acts as management interface and factory for model ports. ** A given instance of this registry can be promoted to be "the" model port registry reflecting diff --git a/src/steam/fixture/segment.hpp b/src/steam/fixture/segment.hpp index a82fa30be..6fbddce97 100644 --- a/src/steam/fixture/segment.hpp +++ b/src/steam/fixture/segment.hpp @@ -48,7 +48,7 @@ namespace fixture { /** * For the purpose of building and rendering, the fixture (for each timeline) - * is partitioned such that each segment is _structurally constant._ + * is partitioned such that each segment is _structurally constant_. * For each segment there is a RenderGraph (unit of the render engine) * which is able to render all ExitNode(s) for this segment. * diff --git a/src/steam/fixture/segmentation.hpp b/src/steam/fixture/segmentation.hpp index 07dbefbfa..ff15ed96d 100644 --- a/src/steam/fixture/segmentation.hpp +++ b/src/steam/fixture/segmentation.hpp @@ -61,7 +61,7 @@ namespace fixture { /** * For the purpose of building and rendering, the fixture (for each timeline) - * is partitioned such that each segment is _structurally constant._ + * is partitioned such that each segment is _structurally constant_. * The Segmentation defines and maintains this partitioning. Furthermore, * it is the general entry point for accessing the correct part of the engine * responsible for a given timeline time point. diff --git a/src/steam/mobject/interpolator.hpp b/src/steam/mobject/interpolator.hpp index a526550cc..93c2db5a5 100644 --- a/src/steam/mobject/interpolator.hpp +++ b/src/steam/mobject/interpolator.hpp @@ -13,9 +13,9 @@ /** @file interpolator.hpp - ** Core abstraction: automation parameter interpolator + ** Core abstraction: automation parameter interpolator. ** Each interpolator implementation has the ability to resolve intermediary - ** values and to provide a parameter value for _every arbitrary point in time._ + ** values and to provide a parameter value for _every arbitrary point in time_. */ diff --git a/src/steam/mobject/model-port.hpp b/src/steam/mobject/model-port.hpp index 71024939a..b07b3fa67 100644 --- a/src/steam/mobject/model-port.hpp +++ b/src/steam/mobject/model-port.hpp @@ -31,7 +31,7 @@ ** has an associated StreamType. ** ** Because model ports are discovered this way, dynamically during the build process, - ** at some point there is a transactional switch to promote the new configuration + ** at some point there is a _transactional switch_ to promote the new configuration ** to become the valid current model port configuration. After that switch, model ports ** are immutable. ** diff --git a/src/steam/mobject/output-mapping.hpp b/src/steam/mobject/output-mapping.hpp index f7fdf03fc..bccea178b 100644 --- a/src/steam/mobject/output-mapping.hpp +++ b/src/steam/mobject/output-mapping.hpp @@ -107,7 +107,7 @@ namespace mobject { * This is an generic map-like container, acting as Interface to be used * in the signature of API functions either providing or requiring a Mapping. * For each distinct usage situation, an instantiation of this template should - * be created, providing a definition context as template parameter. + * be created, providing a _definition context_ as template parameter. * Instances of this concrete mapping type may then be default constructed * and copied freely. The definition context is supposed to provide * - a functor `DEF::output` usable as function pipe-ID --> Target diff --git a/src/steam/mobject/session/effect.cpp b/src/steam/mobject/session/effect.cpp index e1cf82ebe..1a2bed066 100644 --- a/src/steam/mobject/session/effect.cpp +++ b/src/steam/mobject/session/effect.cpp @@ -24,7 +24,7 @@ namespace mobject { namespace session { /** - * @TODO: clarify asset->mobject relation and asset dependencies; Ticket #255 + * @todo: clarify asset->mobject relation and asset dependencies; /////////////////////////////////////////TICKET #255 */ asset::Proc const& Effect::getProcAsset() const diff --git a/src/steam/mobject/session/scope.hpp b/src/steam/mobject/session/scope.hpp index d6cc19f12..1d80c9f51 100644 --- a/src/steam/mobject/session/scope.hpp +++ b/src/steam/mobject/session/scope.hpp @@ -46,18 +46,18 @@ namespace session { * Within the Session/Model, Placements are used to attach * MObjects; but beyond that, each Placement can \em contain * other Placements, effectively forming a scope. Thus Scope - * is basically another view on Placements which are attached - * to the session. This (hidden) link to the session is utilised + * is basically another view on Placements _which are attached + * to the session_. This (hidden) link to the session is utilised * to establish the nesting of scopes and allow querying and navigating. * * Actually, Scope is implemented through a PlacementRef pointing to - * the Placement which \em constitutes this Scope. We call this Placement - * the "scope top". A fork e.g. can \em contain several clips, but also + * the Placement which _constitutes this Scope_. We call this Placement + * the "scope top". A fork e.g. can _contain_ several clips, but also * nested sub forks, all of which would be within the scope of this fork. - * This scoping relation plays an important role when it comes to \em resolving + * This scoping relation plays an important role when it comes to _resolving_ * properties of placement, like e.g. the output designation, overlay mode, * sound pan position etc -- properties from enclosing scopes will be - * inherited unless \em shaded by local definitions, similar to the + * inherited unless _shaded_ by local definitions, similar to the * behaviour known from most programming languages when referring * to local variables. * @note Scope is a passive entity, diff --git a/src/steam/mobject/session/session-services.cpp b/src/steam/mobject/session/session-services.cpp index 803bd3aad..a95e8d985 100644 --- a/src/steam/mobject/session/session-services.cpp +++ b/src/steam/mobject/session/session-services.cpp @@ -103,7 +103,7 @@ namespace session { } - /** detach the denoted element from the model _including all children._ + /** detach the denoted element from the model _including all children_. * @return true if actually erased something * @note when specifying model root, all sub-elements will be cleared, * but model root itself will be retained. diff --git a/src/steam/mobject/session/session.cpp b/src/steam/mobject/session/session.cpp index c76bff798..6f8771a27 100644 --- a/src/steam/mobject/session/session.cpp +++ b/src/steam/mobject/session/session.cpp @@ -57,8 +57,8 @@ namespace mobject { * implementation object, where the smart pointer is actually * the SessionManager (which is singleton as well...). * - * Consequently, if you want to talk to the session manager, - * you use dot-notation, while you access the session object + * Consequently, if you want to talk to the _session manager_, + * you use dot-notation, while you access the _session object_ * via arrow notation (e.g. `Session::current->getFixture()` ) */ SessManager& Session::current = theSessionManager(); diff --git a/src/vault/gear/activity-term.hpp b/src/vault/gear/activity-term.hpp index 488e12f15..2d62d07e9 100644 --- a/src/vault/gear/activity-term.hpp +++ b/src/vault/gear/activity-term.hpp @@ -175,7 +175,7 @@ namespace gear { /** * Builder operation: append a Notification link to the end of this Term's chain. * @param targetTerm another Term, which thereby becomes dependent on this Term. - * @remark the \q targetTerm will be inhibited, until this Term's chain has + * @remark the \a targetTerm will be inhibited, until this Term's chain has * been activated and processed up to emitting the inserted `NOTIFY`. */ Term& diff --git a/src/vault/gear/block-flow.hpp b/src/vault/gear/block-flow.hpp index db06ac3a3..bb29f7afc 100644 --- a/src/vault/gear/block-flow.hpp +++ b/src/vault/gear/block-flow.hpp @@ -214,7 +214,7 @@ namespace gear { /** * Allocation Extent holding _scheduler Activities_ to be performed altogether - * before a common _deadline._ Other than the underlying raw Extent, the Epoch + * before a common _deadline_. Other than the underlying raw Extent, the Epoch * maintains a deadline time and keeps track of storage slots already claimed. * This is achieved by using the Activity record in the first slot as a GATE term * to maintain those administrative information. diff --git a/tests/basics/typed-counter-test.cpp b/tests/basics/typed-counter-test.cpp index d1d71f18b..4ae103354 100644 --- a/tests/basics/typed-counter-test.cpp +++ b/tests/basics/typed-counter-test.cpp @@ -138,7 +138,7 @@ namespace test{ /** * Helper for #tortureTest(): * Build a table of functors, where the i-th entry invokes the function - * increment(), which leads to incrementing the counter for Dummy. + * `increment()`, which leads to incrementing the counter for `Dummy`. */ template static auto @@ -163,7 +163,7 @@ namespace test{ * - run a large number of threads in parallel, each incrementing * a randomly picked counter; this is achieved by using a table * of »increment operators«, where each one is tied to a specific - * Dummy. + * `Dummy`. */ void tortureTest() diff --git a/tests/basics/visitingtool-concept.cpp b/tests/basics/visitingtool-concept.cpp index 0499066e6..9166a8c36 100644 --- a/tests/basics/visitingtool-concept.cpp +++ b/tests/basics/visitingtool-concept.cpp @@ -19,23 +19,22 @@ ** for the drafting process and is self-contained. The final solution was ** then extracted later as library implementation into visitor.hpp ** - ** Basic considerations - **
  • cyclic dependencies should be avoided or at least restricted - ** to some library related place. The responsibilities for - ** user code should be as small as possible.
  • - **
  • Visitor is about double dispatch, thus we can't avoid - ** using some table lookup implementation, and we can't avoid using - ** some of the cooperating classes' vtables. Besides that, the - ** implementation should not be too wasteful...
  • - **
  • individual Visiting Tool implementation classes should be able - ** to opt in or opt out on implementing functions treating some of - ** the visitable subclasses.
  • - **
  • there should be a safe fallback mechanism backed by the - ** visitable object's hierarchy relations. If some new class declares - ** to be visitable, existing Visiting Tools not yet treating this new - ** visitable type should fall back rather to the next best match up the - ** hierarchy, instead of invoking some almost abstract base class
  • - **
+ ** \par Basic considerations + ** - cyclic dependencies should be avoided or at least restricted + ** to some library related place. The responsibilities for + ** user code should be as small as possible. + ** - the purpose of Visitor is to achieve **double dispatch**, thus we + ** can not avoid using some table lookup implementation, and we can not + ** avoid using some of the cooperating classes' vtables. Besides that, + ** the implementation should not be too wasteful... + ** - individual Visiting Tool implementation classes should be able + ** to opt in or opt out on implementing functions treating some of + ** the visitable subclasses. + ** - there should be a safe fallback mechanism backed by the + ** visitable object's hierarchy relations. If some new class declares + ** to be visitable, existing Visiting Tools not yet treating this new + ** visitable type should fall back rather to the next best match up the + ** hierarchy, instead of invoking some almost abstract base class. ** ** @see visitor.hpp the final lib implementation ** @see visitingtooltest.cpp test cases using our lib implementation diff --git a/tests/core/application/subsystem-runner-test.cpp b/tests/core/application/subsystem-runner-test.cpp index ba7580e4a..c677de9a5 100644 --- a/tests/core/application/subsystem-runner-test.cpp +++ b/tests/core/application/subsystem-runner-test.cpp @@ -13,7 +13,7 @@ /** @file subsystem-runner-test.cpp ** The \ref SubsystemRunner_test performs various scenarios - ** regarding start, stop and failure of _Subsystems._ Its primary + ** regarding start, stop and failure of _Subsystems_. Its primary ** purpose is to cover the \ref SubsystemRunner. */ diff --git a/tests/core/steam/engine/buffer-proxy-provider-test.cpp b/tests/core/steam/engine/output-proxy-provider-test.cpp similarity index 98% rename from tests/core/steam/engine/buffer-proxy-provider-test.cpp rename to tests/core/steam/engine/output-proxy-provider-test.cpp index 8bcc8aabc..b977acb68 100644 --- a/tests/core/steam/engine/buffer-proxy-provider-test.cpp +++ b/tests/core/steam/engine/output-proxy-provider-test.cpp @@ -11,7 +11,7 @@ * *****************************************************************/ -/** @file output-proxy-provider-test.cpp +/** @file output-proxy-provider-test.cpp ** unit test \ref OutputProxyProvider_test */ diff --git a/tests/core/steam/mobject/builder/builder-tool-test.cpp b/tests/core/steam/mobject/builder/builder-tool-test.cpp index e078fe10f..5b1bd9c61 100644 --- a/tests/core/steam/mobject/builder/builder-tool-test.cpp +++ b/tests/core/steam/mobject/builder/builder-tool-test.cpp @@ -54,7 +54,7 @@ namespace test { * and DummyMO objects (wrapped into any acceptable shared-ptr). * Intentionally, we omit to declare it applicable to TestSubMO2 instances. * In reality this would be a case of misconfiguration, because TestSubMO2 - * is defined to be processable and consequently has an \apply() function, + * is defined to be processable and consequently has an `apply()` function, * which, due to this omission can't find a dispatcher entry when invoked, * so it will call the \c onUnknown(Buildable&) instead */ diff --git a/tests/library/hetero-data-test.cpp b/tests/library/hetero-data-test.cpp index 0197ad590..fb2c1a5a8 100644 --- a/tests/library/hetero-data-test.cpp +++ b/tests/library/hetero-data-test.cpp @@ -11,7 +11,7 @@ * *****************************************************************/ -/** @file del-stash-test.cpp +/** @file hetero-data-test.cpp ** unit test \ref HeteroData_test */ diff --git a/tests/library/index-iter-test.cpp b/tests/library/index-iter-test.cpp index 04f77e10f..7222ddac1 100644 --- a/tests/library/index-iter-test.cpp +++ b/tests/library/index-iter-test.cpp @@ -11,7 +11,7 @@ * *****************************************************************/ -/** @file iter-index-test.cpp +/** @file index-iter-test.cpp ** unit test \ref IndexIter_test */ diff --git a/tests/vault/gear/stress-test-rig.hpp b/tests/vault/gear/stress-test-rig.hpp index 658081966..5169e8a29 100644 --- a/tests/vault/gear/stress-test-rig.hpp +++ b/tests/vault/gear/stress-test-rig.hpp @@ -165,7 +165,7 @@ namespace test { /** * Configurable template framework for running Scheduler Stress tests * Use to build a custom setup class, which is then [injected](\ref StressTestRig::with) - * to [perform](\ref StressTestRig::Launcher::perform) a _specific measurement tool._ + * to [perform](\ref StressTestRig::Launcher::perform) a _specific measurement tool_. * Several tools and detailed customisations are available in `namespace bench` * - bench::BreakingPoint conducts a binary search to _break a schedule_ * - bench::ParameterRange performs a randomised series of parametrised test runs diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 7f8f6df8c..099dba5f6 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -160496,8 +160496,8 @@ actively maintained upstream. Please remove gdl from Debian. - - + + @@ -160785,10 +160785,98 @@ Since then others have made contributions, see the log for the history. - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ das wirkt zwar offensichtlich im ersten Teil, wenn die source-Files erstmals geparst werden, denn dann werden (nur mit diesem Setting) alle Cores zu 100% ausgelastet +

+ +
+
+
+ + + +
+
+ + + + + +

+ ...und zwar in der der _speziellen Form mit Unterstrich._  (meint: der Unterstrich steht hinter dem Punkt, und damit nicht mehr im \brief -Teil +

+ +
+
+ + + + +

+ (wird als HTML-Trag geparst) +

+ +
+
+ + +
+ + + + +

+ das Ergebnis ist letztlich immer wieder enttäuschend +

+ + +
+ + + +

+ Doxygen (wie auch diverse andere Sourcecode-Scanner und Validatoren) passen konzeptionell nicht sonderlich gut auf die spezielle Struktur von C++ Code, welcher sehr stark auf Scopes und Querbezüge setzt. Und mein eigener Code-Stil trägt dazu auch noch einiges bei. Meistens sind nur die Texte in den Header-Kommentaren brauchbar. Es folgt dann eine mehr-oder-weniger willkürlich wirkende Liste von Klassen und namespace-Membern. Eine solche Liste erzählt keine Geschichte (der Code tut es schon). Und der Umstand, daß in Doxygen die Struktur flach geklopft wird, tut ein Übriges +

+ +
@@ -161265,7 +161353,7 @@ Since then others have made contributions, see the log for the history. - + @@ -161302,7 +161390,7 @@ Since then others have made contributions, see the log for the history. - + @@ -161611,11 +161699,13 @@ Since then others have made contributions, see the log for the history. - + + + - - - + + + @@ -161643,17 +161733,17 @@ Since then others have made contributions, see the log for the history. - + - - + + - + - + @@ -161688,8 +161778,8 @@ Since then others have made contributions, see the log for the history. - - + + @@ -161919,15 +162009,16 @@ Since then others have made contributions, see the log for the history. - + + - + - + @@ -161935,15 +162026,14 @@ Since then others have made contributions, see the log for the history. - - + - + @@ -161951,11 +162041,10 @@ Since then others have made contributions, see the log for the history. - - + - + @@ -161973,9 +162062,9 @@ Since then others have made contributions, see the log for the history. - - - + + + @@ -162000,10 +162089,9 @@ Since then others have made contributions, see the log for the history.SCHWEIN gehabt

- -
+
- + @@ -162017,13 +162105,33 @@ Since then others have made contributions, see the log for the history. - + + + + + + - + + + + + + + + + + + + + + + +