Skip to content

missing doxygen in libdap4 #3280

@edhartnett

Description

@edhartnett

Improve Doxygen documentation in libdap4

Summary

The libdap4 subdirectory implements the DAP4 (Data Access Protocol 4) client
for netCDF-C. Prior to this work the directory had almost no Doxygen
documentation: no @file blocks, no struct/enum field comments, no
@param/@return tags on public functions, and no macro documentation.
This issue tracks a systematic pass to bring the directory up to the same
documentation standard as the rest of the library.

Changes made

Header files (12 files)

File Changes
ncd4types.h @file block; all structs (NCD4node, NCD4meta, NCD4parser, NCD4response, NCD4curl, NCD4INFO), enums (NCD4sort, NCD4translation, NCD4mode, NCD4format), union ATOMICS, and all macros documented with /**< */ field comments and /** */ block comments
ncd4.h @file block; all EXTERNL function declarations documented with @param/@return; all macros (NCCHECK, FAIL, BUILDOFFSET, INCR, DECR, OFFSETSIZE, TRANSFER, DELTA, MARK, GETCOUNTER, SKIPCOUNTER, PUSH, nullfree, nulldup, d4alloc, id/accessor macros) documented
ncd4dispatch.h @file block; all dispatch entry-point declarations (NCD4_open, NCD4_close, NCD4_abort, NCD4_inq_dim, NCD4_get_vara, NCD4_get_vars, NCD4_initialize) documented with @param/@return
d4util.h @file block; d4size_t, D4blob, NULLBLOB, OFFSET2BLOB, BLOB2OFFSET, byte-swap macros (swapinline16/32/64), data-content flags (HASNIL, HASSEQ, HASSTR, HASOPFIX, HASOPVAR, LEAFSEQ), and ncd4__testurl documented
d4odom.h @file block; D4odometer struct fields and all odometer functions documented
d4debug.h @file block; debug-flag #undef macros, PANIC/ASSERT, MEMCHECK, THROW/THROWCHK, d4breakpoint, d4throw, LOG0/1/2, NCD4_sortname, NCD4_subsortname, NCD4_debugcopy documented
d4bytes.h @file block; D4bytes struct fields and all functions/macros documented
d4curlfunctions.h @file block; CURLFLAGTYPE enum, CURLFLAG struct, and all curl-option functions documented
d4chunk.h @file block (placeholder header)
d4http.h @file block; all legacy HTTP function declarations marked @internal
d4read.h @file block; legacy read declarations marked @internal
d4includes.h @file block describing its role as the master include file

Source files (21 files)

All 21 .c files received a @file block with a brief description of the
functions each file implements:

d4bytes.c, d4chunk.c, d4curlflags.c, d4curlfunctions.c, d4cvt.c,
d4data.c, d4debug.c, d4dump.c, d4file.c, d4fix.c, d4http.c,
d4mem.c, d4meta.c, d4odom.c, d4parser.c, d4printer.c, d4read.c,
d4swap.c, d4util.c, d4varx.c, ncd4dispatch.c

The following key public functions also received full @param/@return
Doxygen blocks directly above their definitions:

  • NCD4_open (d4file.c) — DAP4 URL open entry point
  • NCD4_dechunk (d4chunk.c) — chunked wire-format decoder
  • NCD4_parse (d4parser.c) — DMR XML parser
  • NCD4_metabuild (d4meta.c) — NetCDF-4 substrate metadata builder
  • NCD4_processdata (d4data.c) — endian swap + checksum verification
  • NCD4_convert (d4cvt.c) — type-conversion utility
  • NCD4_fetchurl (d4http.c) — HTTP fetch via libcurl

Style notes

  • Single-line /** text. */ comments are used without a redundant @brief
    tag (Doxygen treats the first sentence as the brief description automatically).
  • Multi-line block comments use @brief only when an explicit brief/detail
    separation is needed.
  • Internal-only helpers are tagged with @internal.
  • Macro groups are wrapped in @defgroup / @{ / @} where it adds value
    (e.g. chunk-header flags, special attribute names, data-content flags).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions