I'm not quite sure what doxygen is doing here, before I spend too much
more time digging I'm wondering if someone else knows.

The C-API docs are at:

https://api-docs.iotivity.org/latest-c

If you navigate down the left side to API Reference -> Class Members ->
Functions you get to this page (note: this snapshot is from before the
flag to "generate for C code" was turned on so a build today would not
name it "Class Members", but everything else about this looks the same):

https://api-docs.iotivity.org/latest-c/functions_func.html

That's kind of a surprise, you would conclude from this that the full
API consists only of these functions:

    DeleteContext()
    deleteResourceFromRD()
    Instance()
    PublishContext()
    publishResourceToRD()
    RDClient()

The API functions *are* available if you browse to the individual header
files, for example to cainterface.h:

https://api-docs.iotivity.org/latest-c/cainterface_8h.html

where we see a whole bunch of functions documented.


Further, the things in the list of "functions" are not functions in the
C API... the ones it's picking up come from this header:

resource/csdk/resource-directory/include/RDClient.h

resource/csdk/resource-directory/include is in the list of directories
in the Doxyfile, but it looks like this file should be getting excluded.
I guess I don't understand why the csdk directory contains ANY non-C SDK
files, but perhaps that's a different question, about code structuring.

further, the things in that header are not all doxy-marked up, so I'm
not quite sure why doxygen is picking them up: publishResourceToRD and
deleteResourceFromRD are, but the others are not, though they are either
public methods or structs. again, maybe that's a different story, I
haven't looked at how doxygen treats C++ components as I'm just chasing
the C API at the moment.


So let's distill this slightly rambling question down to a few:

1. okay to exclude RDClient.h from the C-API list?
2. how do we control the presentation so it lets you actually find the
interfaces in the API?
3. why are there lots of not C-API files in resource/csdk?

===
Note to 2: here's an organization that sort of works for me - the Apache
Portable Runtime library, which presents a module-level view (I think we
don't use modules, aka @defgroup and @addtogroup, at all):

https://apr.apache.org/docs/apr/1.5/modules.html

and then if you follow one of the threads:

https://apr.apache.org/docs/apr/1.5/group__apr__thread__proc.html




Reply via email to