+
+/** @brief declare a new message type of the given name. It only accepts the given datadesc as payload
+ *
+ * @param name: name as it should be used for logging messages (must be uniq)
+ * @param payload: datadescription of the payload
+ */
+void gras_msgtype_declare(const char *name,
+ gras_datadesc_type_t payload) {
+ gras_msgtype_declare_ext(name, 0, e_gras_msg_kind_oneway, payload, NULL);
+}
+
+
+
+/** @brief declare a new versionned message type of the given name and payload
+ *
+ * @param name: name as it should be used for logging messages (must be uniq)
+ * @param version: something like versionning symbol
+ * @param payload: datadescription of the payload
+ *
+ * Registers a message to the GRAS mechanism. Use this version instead of
+ * gras_msgtype_declare when you change the semantic or syntax of a message and
+ * want your programs to be able to deal with both versions. Internally, each
+ * will be handled as an independent message type, so you can register
+ * differents for each of them.
+ */
+void
+gras_msgtype_declare_v(const char *name,
+ short int version,
+ gras_datadesc_type_t payload) {
+
+ gras_msgtype_declare_ext(name, version,
+ e_gras_msg_kind_oneway, payload, NULL);
+}
+