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).
Improve Doxygen documentation in libdap4
Summary
The
libdap4subdirectory implements the DAP4 (Data Access Protocol 4) clientfor netCDF-C. Prior to this work the directory had almost no Doxygen
documentation: no
@fileblocks, no struct/enum field comments, no@param/@returntags 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)
ncd4types.h@fileblock; all structs (NCD4node,NCD4meta,NCD4parser,NCD4response,NCD4curl,NCD4INFO), enums (NCD4sort,NCD4translation,NCD4mode,NCD4format), unionATOMICS, and all macros documented with/**< */field comments and/** */block commentsncd4.h@fileblock; allEXTERNLfunction 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) documentedncd4dispatch.h@fileblock; 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/@returnd4util.h@fileblock;d4size_t,D4blob,NULLBLOB,OFFSET2BLOB,BLOB2OFFSET, byte-swap macros (swapinline16/32/64), data-content flags (HASNIL,HASSEQ,HASSTR,HASOPFIX,HASOPVAR,LEAFSEQ), andncd4__testurldocumentedd4odom.h@fileblock;D4odometerstruct fields and all odometer functions documentedd4debug.h@fileblock; debug-flag#undefmacros,PANIC/ASSERT,MEMCHECK,THROW/THROWCHK,d4breakpoint,d4throw,LOG0/1/2,NCD4_sortname,NCD4_subsortname,NCD4_debugcopydocumentedd4bytes.h@fileblock;D4bytesstruct fields and all functions/macros documentedd4curlfunctions.h@fileblock;CURLFLAGTYPEenum,CURLFLAGstruct, and all curl-option functions documentedd4chunk.h@fileblock (placeholder header)d4http.h@fileblock; all legacy HTTP function declarations marked@internald4read.h@fileblock; legacy read declarations marked@internald4includes.h@fileblock describing its role as the master include fileSource files (21 files)
All 21
.cfiles received a@fileblock with a brief description of thefunctions 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.cThe following key public functions also received full
@param/@returnDoxygen blocks directly above their definitions:
NCD4_open(d4file.c) — DAP4 URL open entry pointNCD4_dechunk(d4chunk.c) — chunked wire-format decoderNCD4_parse(d4parser.c) — DMR XML parserNCD4_metabuild(d4meta.c) — NetCDF-4 substrate metadata builderNCD4_processdata(d4data.c) — endian swap + checksum verificationNCD4_convert(d4cvt.c) — type-conversion utilityNCD4_fetchurl(d4http.c) — HTTP fetch via libcurlStyle notes
/** text. */comments are used without a redundant@brieftag (Doxygen treats the first sentence as the brief description automatically).
@briefonly when an explicit brief/detailseparation is needed.
@internal.@defgroup/@{/@}where it adds value(e.g. chunk-header flags, special attribute names, data-content flags).