Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add doxygen comments in H5Ppublic.h #375

Merged
merged 4 commits into from
Feb 25, 2021

Conversation

ChristopherHogan
Copy link
Contributor

@ChristopherHogan ChristopherHogan commented Feb 23, 2021

Adds doxygen-style documentation for the following functions:

  • H5Pset_meta_block_size
  • H5Pset_metadata_read_attempts
  • H5Pset_multi_type
  • H5Pset_object_flush_cb
  • H5Pset_sieve_buf_size
  • H5Pset_small_data_block_size
  • H5Pset_all_coll_metadata_ops
  • H5Pget_all_coll_metadata_ops

I also added a page (maybe_metadata_reads.dox) that corresponds to this page in the RM. I preserved the original structure by putting it and the associated functions in a "General Access Properties" group.

Example Code

I noticed a few different ways that people are adding example code to the documentation:

  1. The \Code{} alias.
  2. A <pre>...</pre> block
  3. A \code ... \endcode block.

I think 3 is the most appropriate choice because it applies syntax highlighting to the code. However, two of the functions I documented (H5Pset_object_flush_cb and H5Pset_metadata_read_attempts) contain large code blocks with C-style comments, and since C does not allow nested /*...*/ comments, I had to put the example code in external files and \include them to get around this limitation.

On that same note, the doxygen EXAMPLE_PATH was not finding doxygen/examples, so I set it to use an absolute path via autoconf. I didn't make any CMake changes because it looks like we're not fully supporting CMake for doxygen yet.

Parallel Docs

I noticed that doxygen was not generating any documentation for functions declared in an H5_HAVE_PARALLEL block, even when I called configure with --enable-parallel. I believe that is because doxygen isn't including BUILDDIR/src/H5config.h. However, rather than helping doxygen find H5config.h it seemed better to always generate documentation for parallel-only functions (like the current RM) instead of only generating it if configure was called with --enable-parallel. For this reason, I added H5_HAVE_PARALLEL to doxygen's PREDEFINED variable.

* H5Pset_meta_block_size
* H5Pset_metadata_read_attempts
* H5Pset_multi_type
* H5Pset_object_flush_cb
* H5Pset_sieve_buf_size
* H5Pset_small_data_block_size
* H5Pset_all_coll_metadata_ops
* H5Pget_all_coll_metadata_ops
@byrnHDF
Copy link
Contributor

byrnHDF commented Feb 23, 2021

CMake for doxygen should be fully compatible with autotools.
What is the concern?

configure.ac Show resolved Hide resolved
@ChristopherHogan
Copy link
Contributor Author

CMake for doxygen should be fully compatible with autotools. What is the concern?

I see. I was only looking for doxygen stuff in CMakeLists.txt so I didn't see all the configuration in src/CMakeLists.txt. Thanks.

@byrnHDF
Copy link
Contributor

byrnHDF commented Feb 23, 2021

CMake for doxygen should be fully compatible with autotools. What is the concern?

I see. I was only looking for doxygen stuff in CMakeLists.txt so I didn't see all the configuration in src/CMakeLists.txt. Thanks.

Yes, with CMake I was able to localize doxygen setup per source directory.

@ChristopherHogan
Copy link
Contributor Author

Could someone point me to instructions for running clang-format?

@byrnHDF
Copy link
Contributor

byrnHDF commented Feb 23, 2021

Could someone point me to instructions for running clang-format?

clang version should be version 10, this is available on jelly as LLVM module.
run bin/format_source

Copy link
Member

@gheber gheber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good stuff. Thank you.

@lrknox lrknox merged commit 06c9ebe into HDFGroup:doxygen2 Feb 25, 2021
@ChristopherHogan ChristopherHogan deleted the chogan/H5P_doxygen branch February 25, 2021 14:19
lrknox added a commit that referenced this pull request Apr 26, 2021
* Fixed warnings and started H5Epublic.h.

* Include H5FD* headers to correctly resolve references.

* Doxygen2 (#330)

* H5Eauto_is_v2.

* Added a few more calls.

* Added a few more H5E calls.

* First cut of H5E v2.

* Added the deprecated v1 calls.

* Updated spacing.

* Once more.

* Taking some inspiration from Eigen3.

* Add doxygen for the assigned functions: H5Pregister1,H5Pinsert1,H5Pen… (#352)

* Add doxygen for the assigned functions: H5Pregister1,H5Pinsert1,H5Pencode1, H5Pget_filter_by_id1,H5Pget_version, H5Pset_file_space,H5Pget_file_space. Someone already adds H5Pget_filter1. Also fixs an extra parameter 'close' call back function for HPregister2.

* doxygen work. fixs format by using clang-format.

* doxgen work for H5Pregister1 etc. Addressed Barbara and Gerd's comments.
For Quincey's comments, since we are not supposed to change the source code.
I leave this to future improvements.

* added documentation for H5P APIs (#350)

* add documenation for H5Pget_buffer,H5Pget_data_transform,H5Pget_edc_check,H5Pget_hyper_vector_size,H5Pget_preserve,H5Pget_type_conv_cb,H5Pget_vlen_mem_manager,H5Pset_btree_ratios

* format corrections

* fixed grammer

* fixed herr_t

* Better name.

* A fresh look.

* add doxygen to H5Ppublic.h

* use attention instead of warning

* Add doxygen comments in H5Ppublic.h (#375)

* Add doxygen comments in H5Ppublic.h

* H5Pset_meta_block_size
* H5Pset_metadata_read_attempts
* H5Pset_multi_type
* H5Pset_object_flush_cb
* H5Pset_sieve_buf_size
* H5Pset_small_data_block_size
* H5Pset_all_coll_metadata_ops
* H5Pget_all_coll_metadata_ops

* Add DOXYGEN_EXAMPLES_DIR to src/CMakeLists.txt

* Fix clang-format errors

* Fix filenames in doxygen/examples

* add doxygen to H5Ppublic.h (#378)

* add doxygen to H5Ppublic.h

* use attention instead of warning

Co-authored-by: Kimmy Mu <kmu@hdfgroup.org>

* Revert "add doxygen to H5Ppublic.h (#378)"

This reverts commit 2ee1821.

* Updated Doxygen variables.

* I forgot to copy two images.

* Enable desktop search by default.

* Add my assigned Doxygen documentation.

* Remove whitespace at EOL.  Appease clang-format.

* Addressed Chris' comments.

* Added an alias for asynchronous functions.

* One space is enough for all of us.

* Slightly restructured RM page.

* address some issues

* reformatting

* Style external links.

* reformatting

* reformatting

* Added "Metadata Caching in HDF5" as a technical note example.

* Revise this soon!

* Added specification examples.

* Fixed references.

* Added H5AC cache image stuff and file format study.

* Added older FMT versions. Where did 1.0 go?

* Updated C/C++ note and replaced ambiguous labels.

* Reformat source with clang v10.0.1.

* Added the VFL technical note.

* Added what I believe might be called version 1.0 of the format.

* Added the remaining specs.

* Added H5Z callback documentation and fixed a few mistakes.

* Added dox for deprecated H5G calls and fixed a few snippet blockIDs.

* clang-format happy?

* Ok?

* Bonus track: Deprecated H5D functions.

* Carry over the more detailed group description.

* Added documentation for the missing and deprecated H5R calls.

* Life is easier and less repetitive w/ snippets. Use them!

* Eliminate the snippet block ID artifacts in the HTML rendering.

* Fixed snippet HTML artifacts and added a few missing calls.

* Under 20 H5Ps to go!

* Almost complete!

* "This is a form of pedantry up with which I will not put." (Churchill)

* Let's not waste as much space on bulleted lists!

* First complete (?) draft of the Doxygen-based RM.

* Completeness check and minor fixes along the way.

* Pedantry.

* Adding missing H5FD calls checkpoint.

* Pedantry.

* More pedantry.

* Added H5Pset_fapl_log.

* First draft of H5ES.

* Fixed warnings.

* Prep. for map module.

* First cut of the map module.

* Pedantry.

* Possible H5F introduction.

* Fix the indentation.

* Pedantry.

* Ditto.

* Thanks to the reviewers for their comments.

* Added missing images.

* Line numbers are a distraction here.

* More examples, references, and clean-up. Don't repeat yourself!

* Clang pedantry.

* Ditto.

* More reviewer comments...

* Templatized references and cleaned up \todos.

* Committing clang-format changes

* Fixed MANIFEST.

* Addressed Quincey's comments. (OCPLs)

* Fixed a few more \todo items.

* Fixed more \todo items.

* Added attribute life cycle.

* Forgot the examples file.

* Committing clang-format changes

* Pedantry.

* Live and learn!

* Added a sample H5D life cycle.

* Committing clang-format changes

* Pedantry.

Co-authored-by: kyang2014 <kyang2014@users.noreply.github.com>
Co-authored-by: Scot Breitenfeld <brtnfld@hdfgroup.org>
Co-authored-by: Kimmy Mu <kmu@hdfgroup.org>
Co-authored-by: Christopher Hogan <ChristopherHogan@users.noreply.github.com>
Co-authored-by: jya-kmu <53388330+jya-kmu@users.noreply.github.com>
Co-authored-by: David Young <dyoung@hdfgroup.org>
Co-authored-by: Larry Knox <lrknox@hdfgroup.org>
Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants