BEGIN_DECL()
-/** @defgroup GRAS_dd Data description
+/** @addtogroup GRAS_dd Data description
* @brief Describing data to be exchanged (Communication facility)
*
* @section Overview
*
* There is several possible interfaces for this, ranging from the really completely automatic parsing to
* completely manual. Let's study each of them from the simplest to the more advanced.
+ *
+ * \warning At least, I would like to present those sections in the right order, but doxygen prevents me
+ * from doing so. There is a weird bug I fail to circumvent here. The right order is naturally:
+ * - a) basic operations
+ * - b) Automatic parsing
+ * - c) Simple manual definitions
+ * - d) Callback Persistant State: Simple push/pop mecanism
+ * - e) Callback Persistant State: Full featured mecanism
*/
-
+/*@{*/
+
/** @name a) basic operations
- * @ingroup GRAS_dd
*
* If you only want to send pre-existing types, simply retrieve the pre-defined description with
* the \ref gras_datadesc_by_name function. Existing types entail:
/* @} */
/** @name b) Automatic parsing
- * @ingroup GRAS_dd
*
* If you need to declare a new datatype, this is the simplest way to describe it to GRAS. Simply
* enclose its type definition into a \ref GRAS_DEFINE_TYPE macro call, and you're set. Here is
gras_datadesc_parse(const char *name, const char *C_statement);
/** @name c) Simple manual definitions
- * @ingroup GRAS_dd
*
* Here are the functions to use if you want to declare your description manually.
* The function names should be self-explanatory in most cases.
/*@}*/
-/** @name Callback Persistant State: Simple push/pop mecanism
- * @ingroup GRAS_dd
+/** @name d) Callback Persistant State: Simple push/pop mecanism
*
* Sometimes, one of the callbacks need to leave information for the next ones. If this is a simple integer (such as
* an array size), you can use the functions described here. If not, you'll have to play with the complete cbps interface.
/*@}*/
-/** @name Callback Persistant State: Full featured mecanism
- * @ingroup GRAS_dd
+/** @name e) Callback Persistant State: Full featured mecanism
*
* Sometimes, one of the callbacks need to leave information for the next ones. If the simple push/pop mecanism
* introduced in previous section isn't enough, you can always use this full featured one.
gras_cbps_block_end(gras_cbps_t ps);
/* @} */
+/*@}*/
/*******************************