diff --git a/apps/app_queue.c b/apps/app_queue.c index 7801584ce369527607fc45d562ada24d14ae2a08..a3dce7e9515a5c74463d7e72bc16910daf98ae5d 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -2060,7 +2060,8 @@ static void update_status(struct call_queue *q, struct member *m, const int stat } /*! - * \internal \brief Determine if a queue member is available + * \internal + * \brief Determine if a queue member is available * \retval 1 if the member is available * \retval 0 if the member is not available */ diff --git a/channels/chan_sip.c b/channels/chan_sip.c index fc3fb4c490f77adc755cd823cf0abb5f2f8470fb..79e8211751619cdf23ec56d42ae9865b5acc990b 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -7724,7 +7724,10 @@ static int interpret_t38_parameters(struct sip_pvt *p, const struct ast_control_ return res; } -/*! \internal \brief Create and initialize UDPTL for the specified dialog +/*! + * \internal + * \brief Create and initialize UDPTL for the specified dialog + * * \param p SIP private structure to create UDPTL object for * \pre p is locked * \pre p->owner is locked @@ -14443,7 +14446,10 @@ static int __sip_subscribe_mwi_do(struct sip_subscription_mwi *mwi) return 0; } -/*! \internal \brief Find the channel that is causing the RINGING update, ref'd */ +/*! + * \internal + * \brief Find the channel that is causing the RINGING update, ref'd + */ static struct ast_channel *find_ringing_channel(struct ao2_container *device_state_info, struct sip_pvt *p) { struct ao2_iterator citer; @@ -16386,7 +16392,10 @@ static void build_route(struct sip_pvt *p, struct sip_request *req, int backward } } -/*! \internal \brief Create a new route +/*! + * \internal + * \brief Create a new route + * * \retval NULL on error * \retval sip_route on success */ @@ -16415,7 +16424,10 @@ static struct sip_route *create_route(const char *hop, struct sip_route *prev) return route; } -/*! \internal \brief copy route-set +/*! + * \internal + * \brief copy route-set + * * \retval non-zero on failure * \retval 0 on success */ @@ -17045,7 +17057,9 @@ static void extract_host_from_hostport(char **hostport) ast_sockaddr_split_hostport(*hostport, hostport, &dont_care, PARSE_PORT_IGNORE); } -/*! \internal \brief Helper function to update a peer's lastmsgssent value +/*! + * \internal + * \brief Helper function to update a peer's lastmsgssent value */ static void update_peer_lastmsgssent(struct sip_peer *peer, int value, int locked) { @@ -17059,13 +17073,16 @@ static void update_peer_lastmsgssent(struct sip_peer *peer, int value, int locke } -/*! \brief Verify registration of user - - Registration is done in several steps, first a REGISTER without auth - to get a challenge (nonce) then a second one with auth - - Registration requests are only matched with peers that are marked as "dynamic" +/*! + * \brief Verify registration of user + * + * \details + * - Registration is done in several steps, first a REGISTER without auth + * to get a challenge (nonce) then a second one with auth + * - Registration requests are only matched with peers that are marked as "dynamic" */ static enum check_auth_result register_verify(struct sip_pvt *p, struct ast_sockaddr *addr, - struct sip_request *req, const char *uri) + struct sip_request *req, const char *uri) { enum check_auth_result res = AUTH_NOT_FOUND; struct sip_peer *peer; @@ -27207,7 +27224,10 @@ static int handle_request_publish(struct sip_pvt *p, struct sip_request *req, st return handler_result; } -/*! \internal \brief Subscribe to MWI events for the specified peer +/*! + * \internal + * \brief Subscribe to MWI events for the specified peer + * * \note The peer cannot be locked during this method. sip_send_mwi_peer will * attempt to lock the peer after the event subscription lock is held; if the peer is locked during * this method then we will attempt to lock the event subscription lock but after the peer, creating diff --git a/main/bridge_channel.c b/main/bridge_channel.c index 013475c6895eafab3fbcfb02f72065468ede1145..6a96b1e3b2fd59d66fa912efaec3e86ad5c1e656 100644 --- a/main/bridge_channel.c +++ b/main/bridge_channel.c @@ -108,7 +108,10 @@ void ast_bridge_channel_leave_bridge(struct ast_bridge_channel *bridge_channel, ast_bridge_channel_unlock(bridge_channel); } -/*! \internal \brief Poke the bridge_channel thread */ +/*! + * \internal + * \brief Poke the bridge_channel thread + */ static void bridge_channel_poke(struct ast_bridge_channel *bridge_channel) { if (!pthread_equal(pthread_self(), bridge_channel->thread)) { @@ -487,7 +490,10 @@ int ast_bridge_channel_write_unhold(struct ast_bridge_channel *bridge_channel) return ast_bridge_channel_write_control_data(bridge_channel, AST_CONTROL_UNHOLD, NULL, 0); } -/*! \internal \brief Helper function to kick off a PBX app on a bridge_channel */ +/*! + * \internal + * \brief Helper function to kick off a PBX app on a bridge_channel + */ static int run_app_helper(struct ast_channel *chan, const char *app_name, const char *app_args) { int res = 0; @@ -983,7 +989,10 @@ static void bridge_channel_handle_interval(struct ast_bridge_channel *bridge_cha } } -/*! \internal \brief Write a DTMF stream out to a channel */ +/*! + * \internal + * \brief Write a DTMF stream out to a channel + */ static int bridge_channel_write_dtmf_stream(struct ast_bridge_channel *bridge_channel, const char *dtmf) { return bridge_channel_write_action_data(bridge_channel, @@ -1099,7 +1108,10 @@ static void bridge_channel_feature(struct ast_bridge_channel *bridge_channel, co } } -/*! \internal \brief Indicate that a bridge_channel is talking */ +/*! + * \internal + * \brief Indicate that a bridge_channel is talking + */ static void bridge_channel_talking(struct ast_bridge_channel *bridge_channel, int talking) { struct ast_bridge_features *features = bridge_channel->features; @@ -1140,7 +1152,10 @@ struct blind_transfer_data { char context[AST_MAX_CONTEXT]; }; -/*! \internal \brief Execute after bridge actions on a channel when it leaves a bridge */ +/*! + * \internal + * \brief Execute after bridge actions on a channel when it leaves a bridge + */ static void after_bridge_move_channel(struct ast_channel *chan_bridged, void *data) { RAII_VAR(struct ast_channel *, chan_target, data, ao2_cleanup); @@ -1177,7 +1192,10 @@ static void after_bridge_move_channel(struct ast_channel *chan_bridged, void *da ast_party_connected_line_free(&connected_target); } -/*! \internal \brief Execute logic to cleanup when after bridge fails */ +/*! + * \internal + * \brief Execute logic to cleanup when after bridge fails + */ static void after_bridge_move_channel_fail(enum ast_bridge_after_cb_reason reason, void *data) { RAII_VAR(struct ast_channel *, chan_target, data, ao2_cleanup); @@ -1187,7 +1205,10 @@ static void after_bridge_move_channel_fail(enum ast_bridge_after_cb_reason reaso ast_softhangup(chan_target, AST_SOFTHANGUP_DEV); } -/*! \internal \brief Perform a blind transfer on a channel in a bridge */ +/*! + * \internal + * \brief Perform a blind transfer on a channel in a bridge + */ static void bridge_channel_blind_transfer(struct ast_bridge_channel *bridge_channel, struct blind_transfer_data *blind_data) { @@ -1195,7 +1216,10 @@ static void bridge_channel_blind_transfer(struct ast_bridge_channel *bridge_chan bridge_channel_handle_hangup(bridge_channel); } -/*! \internal \brief Perform an attended transfer on a channel in a bridge */ +/*! + * \internal + * \brief Perform an attended transfer on a channel in a bridge + */ static void bridge_channel_attended_transfer(struct ast_bridge_channel *bridge_channel, const char *target_chan_name) { diff --git a/main/cdr.c b/main/cdr.c index 15f98ef1e1293b0ac12be5cdab20db5d406ec1c8..bfb849423ffd5aeab2a73f3f91cd5bd95a8f2091 100644 --- a/main/cdr.c +++ b/main/cdr.c @@ -1545,7 +1545,10 @@ static int dial_state_process_dial_begin(struct cdr_object *cdr, struct ast_chan return 1; } -/*! \internal \brief Convert a dial status to a CDR disposition */ +/*! + * \internal + * \brief Convert a dial status to a CDR disposition + */ static enum ast_cdr_disposition dial_status_to_disposition(const char *dial_status) { RAII_VAR(struct module_config *, mod_cfg, @@ -1898,13 +1901,19 @@ static int cdr_object_update_party_b(void *obj, void *arg, int flags) return 0; } -/*! \internal \brief Filter channel snapshots by technology */ +/*! + * \internal + * \brief Filter channel snapshots by technology + */ static int filter_channel_snapshot(struct ast_channel_snapshot *snapshot) { return snapshot->tech_properties & AST_CHAN_TP_INTERNAL; } -/*! \internal \brief Filter a channel cache update */ +/*! + * \internal + * \brief Filter a channel cache update + */ static int filter_channel_cache_message(struct ast_channel_snapshot *old_snapshot, struct ast_channel_snapshot *new_snapshot) { @@ -2209,7 +2218,9 @@ static struct bridge_candidate *bridge_candidate_alloc(struct cdr_object *cdr, s } /*! - * \internal \brief Build and add bridge candidates based on a CDR + * \internal + * \brief Build and add bridge candidates based on a CDR + * * \param bridge_id The ID of the bridge we need candidates for * \param candidates The container of \ref bridge_candidate objects * \param cdr The \ref cdr_object that is our candidate @@ -2303,7 +2314,9 @@ static struct ao2_container *create_candidates_for_bridge(struct ast_bridge_snap } /*! - * \internal \brief Create a new CDR, append it to an existing CDR, and update its snapshots + * \internal + * \brief Create a new CDR, append it to an existing CDR, and update its snapshots + * * \note The new CDR will be automatically transitioned to the bridge state */ static void bridge_candidate_add_to_cdr(struct cdr_object *cdr, diff --git a/main/data.c b/main/data.c index b7bedf25464290f1bf4d51b53221819bd3f23b34..4c39362f58125348c0ac465f54e50bb27e31d14f 100644 --- a/main/data.c +++ b/main/data.c @@ -3302,7 +3302,10 @@ AST_TEST_DEFINE(test_data_get) #endif -/*! \internal \brief Clean up resources on Asterisk shutdown */ +/*! + * \internal + * \brief Clean up resources on Asterisk shutdown + */ static void data_shutdown(void) { ast_manager_unregister("DataGet"); diff --git a/main/db.c b/main/db.c index 6ccdb17f96f23d5263ef6382e02dbceaf76607b4..4fe249b1028e455cded7e29d6b99b973532bcd6c 100644 --- a/main/db.c +++ b/main/db.c @@ -982,7 +982,10 @@ static void *db_sync_thread(void *data) return NULL; } -/*! \internal \brief Clean up resources on Asterisk shutdown */ +/*! + * \internal + * \brief Clean up resources on Asterisk shutdown + */ static void astdb_atexit(void) { ast_cli_unregister_multiple(cli_database, ARRAY_LEN(cli_database)); diff --git a/main/features.c b/main/features.c index 70c5423aebd8a44b326d7058ace23f8fc3306019..55b8dc2bedb200ede50f4395a0586daa94c90265 100644 --- a/main/features.c +++ b/main/features.c @@ -1439,7 +1439,10 @@ done: return 0; } -/*! \internal \brief Clean up resources on Asterisk shutdown */ +/*! + * \internal + * \brief Clean up resources on Asterisk shutdown + */ static void features_shutdown(void) { ast_features_config_shutdown(); diff --git a/main/file.c b/main/file.c index a351fd4ec1b41d26656f8c367db0ee20d76c67d3..4783c416f764945f5bbc23b76b9553ede18b607c 100644 --- a/main/file.c +++ b/main/file.c @@ -343,7 +343,10 @@ static int exts_compare(const char *exts, const char *type) return 0; } -/*! \internal \brief Close the file stream by canceling any pending read / write callbacks */ +/*! + * \internal + * \brief Close the file stream by canceling any pending read / write callbacks + */ static void filestream_close(struct ast_filestream *f) { enum ast_format_type format_type = AST_FORMAT_GET_TYPE(f->fmt->format.id); diff --git a/main/format.c b/main/format.c index 5b8b8b05fe89f002317458470073f2dd9e206809..2c563c556f9cdc417768b02f62d5df376277f3a2 100644 --- a/main/format.c +++ b/main/format.c @@ -1071,7 +1071,10 @@ static int format_list_init(void) return 0; } -/*! \internal \brief Clean up resources on Asterisk shutdown */ +/*! + * \internal + * \brief Clean up resources on Asterisk shutdown + */ static void format_list_shutdown(void) { ast_rwlock_destroy(&format_list_array_lock); @@ -1105,7 +1108,10 @@ init_list_cleanup: return -1; } -/*! \internal \brief Clean up resources on Asterisk shutdown */ +/*! + * \internal + * \brief Clean up resources on Asterisk shutdown + */ static void format_attr_shutdown(void) { ast_cli_unregister_multiple(my_clis, ARRAY_LEN(my_clis)); diff --git a/main/indications.c b/main/indications.c index 6ad30bfcf5a298ee7330351e8231bdd284e3bf46..39c9c6e7b44affa6bd14fcfcb81cb4170012adfc 100644 --- a/main/indications.c +++ b/main/indications.c @@ -1149,7 +1149,10 @@ int ast_tone_zone_data_add_structure(struct ast_data *tree, struct ast_tone_zone return 0; } -/*! \internal \brief Clean up resources on Asterisk shutdown */ +/*! + * \internal + * \brief Clean up resources on Asterisk shutdown + */ static void indications_shutdown(void) { ast_cli_unregister_multiple(cli_indications, ARRAY_LEN(cli_indications)); diff --git a/main/manager.c b/main/manager.c index a375551e2c2b93dd36504e89176f883c24cfb955..3302e8c308443807cb873700a1f864aeeb2e0ba1 100644 --- a/main/manager.c +++ b/main/manager.c @@ -7678,7 +7678,10 @@ static void test_suite_event_cb(void *data, struct stasis_subscription *sub, #endif -/*! \internal \brief Free a user record. Should already be removed from the list */ +/*! + * \internal + * \brief Free a user record. Should already be removed from the list + */ static void manager_free_user(struct ast_manager_user *user) { if (user->a1_hash) { @@ -7696,7 +7699,10 @@ static void manager_free_user(struct ast_manager_user *user) ast_free(user); } -/*! \internal \brief Clean up resources on Asterisk shutdown */ +/*! + * \internal + * \brief Clean up resources on Asterisk shutdown + */ static void manager_shutdown(void) { struct ast_manager_user *user; diff --git a/main/message.c b/main/message.c index bb98e24d992dacdb7e4f8bd0e3aee5edf0c1a9f4..132ef302a37357c716c794836ed8377e5bcd080e 100644 --- a/main/message.c +++ b/main/message.c @@ -1301,10 +1301,14 @@ void ast_msg_shutdown(void) } } -/*! \internal \brief Clean up other resources on Asterisk shutdown +/*! + * \internal + * \brief Clean up other resources on Asterisk shutdown + * * \note This does not include the msg_q_tp object, which must be disposed * of prior to Asterisk checking for channel destruction in its shutdown - * sequence. The atexit handlers are executed after this occurs. */ + * sequence. The atexit handlers are executed after this occurs. + */ static void message_shutdown(void) { ast_custom_function_unregister(&msg_function); diff --git a/main/pbx.c b/main/pbx.c index 730b526fe4d6307ed528177bc9194fd3bf66b9ab..6bd6261cb58bf3b8894bb9626b0232c65f3d91a1 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -4841,7 +4841,10 @@ const char *ast_extension_state2str(int extension_state) return "Unknown"; } -/*! \internal \brief Check extension state for an extension by using hint */ +/*! + * \internal + * \brief Check extension state for an extension by using hint + */ static int internal_extension_state_extended(struct ast_channel *c, const char *context, const char *exten, struct ao2_container *device_state_info) { @@ -5226,7 +5229,10 @@ static void destroy_state_cb(void *doomed) } } -/*! \internal \brief Add watcher for extension states with destructor */ +/*! + * \internal + * \brief Add watcher for extension states with destructor + */ static int extension_state_add_destroy(const char *context, const char *exten, ast_state_cb_type change_cb, ast_state_cb_destroy_type destroy_cb, void *data, int extended) { @@ -11431,8 +11437,12 @@ static const struct ast_data_entry pbx_data_providers[] = { AST_DATA_ENTRY("asterisk/core/hints", &hints_data_provider), }; -/*! \internal \brief Clean up resources on Asterisk shutdown. - * \note Cleans up resources allocated in load_pbx */ +/*! + * \internal + * \brief Clean up resources on Asterisk shutdown. + * + * \note Cleans up resources allocated in load_pbx + */ static void unload_pbx(void) { int x; diff --git a/main/pickup.c b/main/pickup.c index a945e3576e0d9ac5b7d51b24285bd7a9680261c4..7ae6927faea359e453013687c817e894fe2e2599 100644 --- a/main/pickup.c +++ b/main/pickup.c @@ -383,7 +383,10 @@ pickup_failed: return res; } -/*! \internal \brief Clean up resources on Asterisk shutdown */ +/*! + * \internal + * \brief Clean up resources on Asterisk shutdown + */ static void pickup_shutdown(void) { STASIS_MESSAGE_TYPE_CLEANUP(ast_call_pickup_type); diff --git a/main/rtp_engine.c b/main/rtp_engine.c index 1a5333ebdc58605c1383d9de9f7fc4a6e1b574f1..8a9dacf335144387e5327243b04961b990fd59e7 100644 --- a/main/rtp_engine.c +++ b/main/rtp_engine.c @@ -1671,7 +1671,10 @@ int ast_rtp_engine_unload_format(const struct ast_format *format) return 0; } -/*! \internal \brief \ref stasis message payload for RTCP messages */ +/*! + * \internal + * \brief \ref stasis message payload for RTCP messages + */ struct rtcp_message_payload { struct ast_channel_snapshot *snapshot; /*< The channel snapshot, if available */ struct ast_rtp_rtcp_report *report; /*< The RTCP report */ diff --git a/main/stasis_channels.c b/main/stasis_channels.c index 37b6b62ee4ff9635af91e5c546c185e32851bc2d..1efc51dbbef4f020ec58230c949d45d4aa4b237b 100644 --- a/main/stasis_channels.c +++ b/main/stasis_channels.c @@ -138,7 +138,10 @@ static const char *channel_snapshot_get_name(struct stasis_message *message) return snapshot->name; } -/*! \internal \brief Hash function for \ref ast_channel_snapshot objects */ +/*! + * \internal + * \brief Hash function for \ref ast_channel_snapshot objects + */ static int channel_snapshot_hash_cb(const void *obj, const int flags) { const struct ast_channel_snapshot *snapshot = obj; @@ -146,7 +149,10 @@ static int channel_snapshot_hash_cb(const void *obj, const int flags) return ast_str_case_hash(name); } -/*! \internal \brief Comparison function for \ref ast_channel_snapshot objects */ +/*! + * \internal + * \brief Comparison function for \ref ast_channel_snapshot objects + */ static int channel_snapshot_cmp_cb(void *obj, void *arg, int flags) { struct ast_channel_snapshot *left = obj; @@ -401,7 +407,10 @@ struct ast_multi_channel_blob { struct ast_json *blob; /*< A blob of JSON data */ }; -/*! \internal \brief Standard comparison function for \ref channel_role_snapshot objects */ +/*! + * \internal + * \brief Standard comparison function for \ref channel_role_snapshot objects + */ static int channel_role_single_cmp_cb(void *obj, void *arg, int flags) { struct channel_role_snapshot *left = obj; @@ -410,7 +419,10 @@ static int channel_role_single_cmp_cb(void *obj, void *arg, int flags) return strcasecmp(left->role, match) ? 0 : (CMP_MATCH | CMP_STOP); } -/*! \internal \brief Multi comparison function for \ref channel_role_snapshot objects */ +/*! + * \internal + * \brief Multi comparison function for \ref channel_role_snapshot objects + */ static int channel_role_multi_cmp_cb(void *obj, void *arg, int flags) { struct channel_role_snapshot *left = obj; @@ -419,7 +431,10 @@ static int channel_role_multi_cmp_cb(void *obj, void *arg, int flags) return strcasecmp(left->role, match) ? 0 : (CMP_MATCH); } -/*! \internal \brief Hash function for \ref channel_role_snapshot objects */ +/*! + * \internal + * \brief Hash function for \ref channel_role_snapshot objects + */ static int channel_role_hash_cb(const void *obj, const int flags) { const struct channel_role_snapshot *snapshot = obj; @@ -427,7 +442,10 @@ static int channel_role_hash_cb(const void *obj, const int flags) return ast_str_case_hash(name); } -/*! \internal \brief Destructor for \ref ast_multi_channel_blob objects */ +/*! + * \internal + * \brief Destructor for \ref ast_multi_channel_blob objects + */ static void multi_channel_blob_dtor(void *obj) { struct ast_multi_channel_blob *multi_blob = obj; diff --git a/main/xmldoc.c b/main/xmldoc.c index 542b77ef58fdd8b19aa05c0ba91ae02327af4de5..7ca66e12b7062e78ca698dd798d47616ad79fad2 100644 --- a/main/xmldoc.c +++ b/main/xmldoc.c @@ -45,13 +45,17 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") /*! \brief Default documentation language. */ static const char default_documentation_language[] = "en_US"; -/*! \brief Number of columns to print when showing the XML documentation with a - * 'core show application/function *' CLI command. Used in text wrapping.*/ +/*! + * \brief Number of columns to print when showing the XML documentation with a + * 'core show application/function *' CLI command. Used in text wrapping. + */ static const int xmldoc_text_columns = 74; -/*! \brief This is a value that we will use to let the wrapping mechanism move the cursor +/*! + * \brief This is a value that we will use to let the wrapping mechanism move the cursor * backward and forward xmldoc_max_diff positions before cutting the middle of a - * word, trying to find a space or a \n. */ + * word, trying to find a space or a \n. + */ static const int xmldoc_max_diff = 5; /*! \brief XML documentation language. */ @@ -111,11 +115,14 @@ static const struct strspecial_tags { { "warning", "<warning>WARNING!!!:</warning> ", "" } }; -/*! \internal - * \brief Calculate the space in bytes used by a format string - * that will be passed to a sprintf function. - * \param postbr The format string to use to calculate the length. - * \retval The postbr length. +/*! + * \internal + * \brief Calculate the space in bytes used by a format string + * that will be passed to a sprintf function. + * + * \param postbr The format string to use to calculate the length. + * + * \retval The postbr length. */ static int xmldoc_postbrlen(const char *postbr) { @@ -136,12 +143,14 @@ static int xmldoc_postbrlen(const char *postbr) return postbrreallen; } -/*! \internal - * \brief Setup postbr to be used while wrapping the text. - * Add to postbr array all the spaces and tabs at the beginning of text. - * \param postbr output array. - * \param len text array length. - * \param text Text with format string before the actual string. +/*! + * \internal + * \brief Setup postbr to be used while wrapping the text. + * Add to postbr array all the spaces and tabs at the beginning of text. + * + * \param postbr output array. + * \param len text array length. + * \param text Text with format string before the actual string. */ static void xmldoc_setpostbr(char *postbr, size_t len, const char *text) { @@ -161,15 +170,18 @@ static void xmldoc_setpostbr(char *postbr, size_t len, const char *text) postbr[postbrlen] = '\0'; } -/*! \internal - * \brief Try to find a space or a break in text starting at currentpost +/*! + * \internal + * \brief Try to find a space or a break in text starting at currentpost * and moving at most maxdiff positions. * Helper for xmldoc_string_wrap(). - * \param text Input string where it will search. - * \param currentpos Current position within text. - * \param maxdiff Not move more than maxdiff inside text. - * \retval 1 if a space or break is found inside text while moving. - * \retval 0 if no space or break is found. + * + * \param text Input string where it will search. + * \param currentpos Current position within text. + * \param maxdiff Not move more than maxdiff inside text. + * + * \retval 1 if a space or break is found inside text while moving. + * \retval 0 if no space or break is found. */ static int xmldoc_wait_nextspace(const char *text, int currentpos, int maxdiff) { @@ -200,16 +212,19 @@ static int xmldoc_wait_nextspace(const char *text, int currentpos, int maxdiff) return 0; } -/*! \internal - * \brief Helper function for xmldoc_string_wrap(). - * Try to found a space or a break inside text moving backward - * not more than maxdiff positions. - * \param text The input string where to search for a space. - * \param currentpos The current cursor position. - * \param maxdiff The max number of positions to move within text. - * \retval 0 If no space is found (Notice that text[currentpos] is not a space or a break) - * \retval > 0 If a space or a break is found, and the result is the position relative to - * currentpos. +/*! + * \internal + * \brief Helper function for xmldoc_string_wrap(). + * Try to found a space or a break inside text moving backward + * not more than maxdiff positions. + * + * \param text The input string where to search for a space. + * \param currentpos The current cursor position. + * \param maxdiff The max number of positions to move within text. + * + * \retval 0 If no space is found (Notice that text[currentpos] is not a space or a break) + * \retval > 0 If a space or a break is found, and the result is the position relative to + * currentpos. */ static int xmldoc_foundspace_backward(const char *text, int currentpos, int maxdiff) { @@ -232,13 +247,16 @@ static int xmldoc_foundspace_backward(const char *text, int currentpos, int maxd return 0; } -/*! \internal - * \brief Justify a text to a number of columns. - * \param text Input text to be justified. - * \param columns Number of columns to preserve in the text. - * \param maxdiff Try to not cut a word when goinf down. - * \retval NULL on error. - * \retval The wrapped text. +/*! + * \internal + * \brief Justify a text to a number of columns. + * + * \param text Input text to be justified. + * \param columns Number of columns to preserve in the text. + * \param maxdiff Try to not cut a word when goinf down. + * + * \retval NULL on error. + * \retval The wrapped text. */ static char *xmldoc_string_wrap(const char *text, int columns, int maxdiff) { @@ -427,11 +445,13 @@ char *ast_xmldoc_printable(const char *bwinput, int withcolors) return wrapped; } -/*! \internal - * \brief Cleanup spaces and tabs after a \n - * \param text String to be cleaned up. - * \param output buffer (not already allocated). - * \param lastspaces Remove last spaces in the string. +/*! + * \internal + * \brief Cleanup spaces and tabs after a \n + * + * \param text String to be cleaned up. + * \param output buffer (not already allocated). + * \param lastspaces Remove last spaces in the string. */ static void xmldoc_string_cleanup(const char *text, struct ast_str **output, int lastspaces) { @@ -470,11 +490,14 @@ static void xmldoc_string_cleanup(const char *text, struct ast_str **output, int } } -/*! \internal +/*! + * \internal * \brief Check if the given attribute on the given node matches the given value. + * * \param node the node to match * \param attr the name of the attribute * \param value the expected value of the attribute + * * \retval true if the given attribute contains the given value * \retval false if the given attribute does not exist or does not contain the given value */ @@ -486,16 +509,19 @@ static int xmldoc_attribute_match(struct ast_xml_node *node, const char *attr, c return match; } -/*! \internal - * \brief Get the application/function node for 'name' application/function with language 'language' - * and module 'module' if we don't find any, get the first application - * with 'name' no matter which language or module. - * \param type 'application', 'function', ... - * \param name Application or Function name. - * \param module Module item is in. - * \param language Try to get this language (if not found try with en_US) - * \retval NULL on error. - * \retval A node of type ast_xml_node. +/*! + * \internal + * \brief Get the application/function node for 'name' application/function with language 'language' + * and module 'module' if we don't find any, get the first application + * with 'name' no matter which language or module. + * + * \param type 'application', 'function', ... + * \param name Application or Function name. + * \param module Module item is in. + * \param language Try to get this language (if not found try with en_US) + * + * \retval NULL on error. + * \retval A node of type ast_xml_node. */ static struct ast_xml_node *xmldoc_get_node(const char *type, const char *name, const char *module, const char *language) { @@ -568,14 +594,16 @@ static struct ast_xml_node *xmldoc_get_node(const char *type, const char *name, return node; } -/*! \internal - * \brief Helper function used to build the syntax, it allocates the needed buffer (or reallocates it), - * and based on the reverse value it makes use of fmt to print the parameter list inside the - * realloced buffer (syntax). - * \param reverse We are going backwards while generating the syntax? - * \param len Current length of 'syntax' buffer. - * \param syntax Output buffer for the concatenated values. - * \param fmt A format string that will be used in a sprintf call. +/*! + * \internal + * \brief Helper function used to build the syntax, it allocates the needed buffer (or reallocates it), + * and based on the reverse value it makes use of fmt to print the parameter list inside the + * realloced buffer (syntax). + * + * \param reverse We are going backwards while generating the syntax? + * \param len Current length of 'syntax' buffer. + * \param syntax Output buffer for the concatenated values. + * \param fmt A format string that will be used in a sprintf call. */ static void __attribute__((format(printf, 4, 5))) xmldoc_reverse_helper(int reverse, int *len, char **syntax, const char *fmt, ...) { @@ -616,12 +644,15 @@ static void __attribute__((format(printf, 4, 5))) xmldoc_reverse_helper(int reve ast_free(tmpfmt); } -/*! \internal - * \brief Check if the passed node has 'what' tags inside it. - * \param node Root node to search 'what' elements. - * \param what node name to search inside node. - * \retval 1 If a 'what' element is found inside 'node'. - * \retval 0 If no 'what' is found inside 'node'. +/*! + * \internal + * \brief Check if the passed node has 'what' tags inside it. + * + * \param node Root node to search 'what' elements. + * \param what node name to search inside node. + * + * \retval 1 If a 'what' element is found inside 'node'. + * \retval 0 If no 'what' is found inside 'node'. */ static int xmldoc_has_inside(struct ast_xml_node *fixnode, const char *what) { @@ -635,11 +666,14 @@ static int xmldoc_has_inside(struct ast_xml_node *fixnode, const char *what) return 0; } -/*! \internal - * \brief Check if the passed node has at least one node inside it. - * \param node Root node to search node elements. - * \retval 1 If a node element is found inside 'node'. - * \retval 0 If no node is found inside 'node'. +/*! + * \internal + * \brief Check if the passed node has at least one node inside it. + * + * \param node Root node to search node elements. + * + * \retval 1 If a node element is found inside 'node'. + * \retval 0 If no node is found inside 'node'. */ static int xmldoc_has_nodes(struct ast_xml_node *fixnode) { @@ -653,11 +687,14 @@ static int xmldoc_has_nodes(struct ast_xml_node *fixnode) return 0; } -/*! \internal - * \brief Check if the passed node has at least one specialtag. - * \param node Root node to search "specialtags" elements. - * \retval 1 If a "specialtag" element is found inside 'node'. - * \retval 0 If no "specialtag" is found inside 'node'. +/*! + * \internal + * \brief Check if the passed node has at least one specialtag. + * + * \param node Root node to search "specialtags" elements. + * + * \retval 1 If a "specialtag" element is found inside 'node'. + * \retval 0 If no "specialtag" is found inside 'node'. */ static int xmldoc_has_specialtags(struct ast_xml_node *fixnode) { @@ -674,15 +711,18 @@ static int xmldoc_has_specialtags(struct ast_xml_node *fixnode) return 0; } -/*! \internal - * \brief Build the syntax for a specified starting node. - * \param rootnode A pointer to the ast_xml root node. - * \param rootname Name of the application, function, option, etc. to build the syntax. - * \param childname The name of each parameter node. - * \param printparenthesis Boolean if we must print parenthesis if not parameters are found in the rootnode. - * \param printrootname Boolean if we must print the rootname before the syntax and parenthesis at the begining/end. - * \retval NULL on error. - * \retval An ast_malloc'ed string with the syntax generated. +/*! + * \internal + * \brief Build the syntax for a specified starting node. + * + * \param rootnode A pointer to the ast_xml root node. + * \param rootname Name of the application, function, option, etc. to build the syntax. + * \param childname The name of each parameter node. + * \param printparenthesis Boolean if we must print parenthesis if not parameters are found in the rootnode. + * \param printrootname Boolean if we must print the rootname before the syntax and parenthesis at the begining/end. + * + * \retval NULL on error. + * \retval An ast_malloc'ed string with the syntax generated. */ static char *xmldoc_get_syntax_fun(struct ast_xml_node *rootnode, const char *rootname, const char *childname, int printparenthesis, int printrootname) { @@ -919,12 +959,14 @@ static char *xmldoc_get_syntax_fun(struct ast_xml_node *rootnode, const char *ro #undef MP } -/*! \internal - * \brief Parse an enumlist inside a <parameter> to generate a COMMAND - * syntax. - * \param fixnode A pointer to the <enumlist> node. - * \retval {<unknown>} on error. - * \retval A string inside brackets {} with the enum's separated by pipes |. +/*! + * \internal + * \brief Parse an enumlist inside a <parameter> to generate a COMMAND syntax. + * + * \param fixnode A pointer to the <enumlist> node. + * + * \retval {<unknown>} on error. + * \retval A string inside brackets {} with the enum's separated by pipes |. */ static char *xmldoc_parse_cmd_enumlist(struct ast_xml_node *fixnode) { @@ -965,13 +1007,16 @@ static char *xmldoc_parse_cmd_enumlist(struct ast_xml_node *fixnode) return ret; } -/*! \internal - * \brief Generate a syntax of COMMAND type. - * \param fixnode The <syntax> node pointer. - * \param name The name of the 'command'. - * \param printname Print the name of the command before the paramters? - * \retval On error, return just 'name'. - * \retval On success return the generated syntax. +/*! + * \internal + * \brief Generate a syntax of COMMAND type. + * + * \param fixnode The <syntax> node pointer. + * \param name The name of the 'command'. + * \param printname Print the name of the command before the paramters? + * + * \retval On error, return just 'name'. + * \retval On success return the generated syntax. */ static char *xmldoc_get_syntax_cmd(struct ast_xml_node *fixnode, const char *name, int printname) { @@ -1068,13 +1113,16 @@ static char *xmldoc_get_syntax_cmd(struct ast_xml_node *fixnode, const char *nam return ret; } -/*! \internal - * \brief Generate an AMI action/event syntax. - * \param fixnode The manager action/event node pointer. - * \param name The name of the manager action/event. - * \param manager_type "Action" or "Event" - * \retval The generated syntax. - * \retval NULL on error. +/*! + * \internal + * \brief Generate an AMI action/event syntax. + * + * \param fixnode The manager action/event node pointer. + * \param name The name of the manager action/event. + * \param manager_type "Action" or "Event" + * + * \retval The generated syntax. + * \retval NULL on error. */ static char *xmldoc_get_syntax_manager(struct ast_xml_node *fixnode, const char *name, const char *manager_type) { @@ -1219,10 +1267,13 @@ static struct strsyntaxtype { { "agi", COMMAND_SYNTAX }, }; -/*! \internal - * \brief Get syntax type based on type of node. - * \param type Type of node. - * \retval The type of syntax to generate based on the type of node. +/*! + * \internal + * \brief Get syntax type based on type of node. + * + * \param type Type of node. + * + * \retval The type of syntax to generate based on the type of node. */ static enum syntaxtype xmldoc_get_syntax_type(const char *type) { @@ -1246,8 +1297,8 @@ static enum syntaxtype xmldoc_get_syntax_type(const char *type) * \note This method exists for when you already have the node. This * prevents having to lock the documentation tree twice * - * \returns A malloc'd character pointer to the syntax of the item - * \returns NULL on failure + * \retval A malloc'd character pointer to the syntax of the item + * \retval NULL on failure * * \since 11 */ @@ -1300,18 +1351,21 @@ char *ast_xmldoc_build_syntax(const char *type, const char *name, const char *mo return _ast_xmldoc_build_syntax(node, type, name); } -/*! \internal - * \brief Parse common internal elements. This includes paragraphs, special - * tags, and information nodes. - * \param node The element to parse - * \param tabs Add this string before the content of the parsed element. - * \param posttabs Add this string after the content of the parsed element. - * \param buffer This must be an already allocated ast_str. It will be used to - * store the result (if something has already been placed in the - * buffer, the parsed elements will be appended) - * \retval 1 if any data was appended to the buffer - * \retval 2 if the data appended to the buffer contained a text paragraph - * \retval 0 if no data was appended to the buffer +/*! + * \internal + * \brief Parse common internal elements. This includes paragraphs, special + * tags, and information nodes. + * + * \param node The element to parse + * \param tabs Add this string before the content of the parsed element. + * \param posttabs Add this string after the content of the parsed element. + * \param buffer This must be an already allocated ast_str. It will be used to + * store the result (if something has already been placed in the + * buffer, the parsed elements will be appended) + * + * \retval 1 if any data was appended to the buffer + * \retval 2 if the data appended to the buffer contained a text paragraph + * \retval 0 if no data was appended to the buffer */ static int xmldoc_parse_common_elements(struct ast_xml_node *node, const char *tabs, const char *posttabs, struct ast_str **buffer) { @@ -1320,17 +1374,20 @@ static int xmldoc_parse_common_elements(struct ast_xml_node *node, const char *t || xmldoc_parse_info(node, tabs, posttabs, buffer)); } -/*! \internal - * \brief Parse a <para> element. - * \param node The <para> element pointer. - * \param tabs Added this string before the content of the <para> element. - * \param posttabs Added this string after the content of the <para> element. - * \param buffer This must be an already allocated ast_str. It will be used - * to store the result (if already has something it will be appended to the current - * string). - * \retval 1 If 'node' is a named 'para'. - * \retval 2 If data is appended in buffer. - * \retval 0 on error. +/*! + * \internal + * \brief Parse a <para> element. + * + * \param node The <para> element pointer. + * \param tabs Added this string before the content of the <para> element. + * \param posttabs Added this string after the content of the <para> element. + * \param buffer This must be an already allocated ast_str. It will be used + * to store the result (if already has something it will be appended to the current + * string). + * + * \retval 1 If 'node' is a named 'para'. + * \retval 2 If data is appended in buffer. + * \retval 0 on error. */ static int xmldoc_parse_para(struct ast_xml_node *node, const char *tabs, const char *posttabs, struct ast_str **buffer) { @@ -1376,15 +1433,18 @@ static int xmldoc_parse_para(struct ast_xml_node *node, const char *tabs, const return ret; } -/*! \internal - * \brief Parse special elements defined in 'struct special_tags' special elements must have a <para> element inside them. - * \param fixnode special tag node pointer. - * \param tabs put tabs before printing the node content. - * \param posttabs put posttabs after printing node content. - * \param buffer Output buffer, the special tags will be appended here. - * \retval 0 if no special element is parsed. - * \retval 1 if a special element is parsed (data is appended to buffer). - * \retval 2 if a special element is parsed and also a <para> element is parsed inside the specialtag. +/*! + * \internal + * \brief Parse special elements defined in 'struct special_tags' special elements must have a <para> element inside them. + * + * \param fixnode special tag node pointer. + * \param tabs put tabs before printing the node content. + * \param posttabs put posttabs after printing node content. + * \param buffer Output buffer, the special tags will be appended here. + * + * \retval 0 if no special element is parsed. + * \retval 1 if a special element is parsed (data is appended to buffer). + * \retval 2 if a special element is parsed and also a <para> element is parsed inside the specialtag. */ static int xmldoc_parse_specialtags(struct ast_xml_node *fixnode, const char *tabs, const char *posttabs, struct ast_str **buffer) { @@ -1427,16 +1487,19 @@ static int xmldoc_parse_specialtags(struct ast_xml_node *fixnode, const char *ta return ret; } -/*! \internal - * \brief Parse an 'info' tag inside an element. - * \param node A pointer to the 'info' xml node. - * \param tabs A string to be appended at the beginning of each line being printed - * inside 'buffer' - * \param posttabs Add this string after the content of the <para> element, if one exists - * \param String buffer to put values found inide the info element. - * \ret 2 if the information contained a para element, and it returned a value of 2 - * \ret 1 if information was put into the buffer - * \ret 0 if no information was put into the buffer or error +/*! + * \internal + * \brief Parse an 'info' tag inside an element. + * + * \param node A pointer to the 'info' xml node. + * \param tabs A string to be appended at the beginning of each line being printed + * inside 'buffer' + * \param posttabs Add this string after the content of the <para> element, if one exists + * \param String buffer to put values found inide the info element. + * + * \retval 2 if the information contained a para element, and it returned a value of 2 + * \retval 1 if information was put into the buffer + * \retval 0 if no information was put into the buffer or error */ static int xmldoc_parse_info(struct ast_xml_node *node, const char *tabs, const char *posttabs, struct ast_str **buffer) { @@ -1476,15 +1539,18 @@ static int xmldoc_parse_info(struct ast_xml_node *node, const char *tabs, const return ret; } -/*! \internal - * \brief Parse an <argument> element from the xml documentation. - * \param fixnode Pointer to the 'argument' xml node. - * \param insideparameter If we are parsing an <argument> inside a <parameter>. - * \param paramtabs pre tabs if we are inside a parameter element. - * \param tabs What to be printed before the argument name. - * \param buffer Output buffer to put values found inside the <argument> element. - * \retval 1 If there is content inside the argument. - * \retval 0 If the argument element is not parsed, or there is no content inside it. +/*! + * \internal + * \brief Parse an <argument> element from the xml documentation. + * + * \param fixnode Pointer to the 'argument' xml node. + * \param insideparameter If we are parsing an <argument> inside a <parameter>. + * \param paramtabs pre tabs if we are inside a parameter element. + * \param tabs What to be printed before the argument name. + * \param buffer Output buffer to put values found inside the <argument> element. + * + * \retval 1 If there is content inside the argument. + * \retval 0 If the argument element is not parsed, or there is no content inside it. */ static int xmldoc_parse_argument(struct ast_xml_node *fixnode, int insideparameter, const char *paramtabs, const char *tabs, struct ast_str **buffer) { @@ -1519,16 +1585,19 @@ static int xmldoc_parse_argument(struct ast_xml_node *fixnode, int insideparamet return ret; } -/*! \internal - * \brief Parse a <variable> node inside a <variablelist> node. - * \param node The variable node to parse. - * \param tabs A string to be appended at the begining of the output that will be stored - * in buffer. - * \param buffer This must be an already created ast_str. It will be used - * to store the result (if already has something it will be appended to the current - * string). - * \retval 0 if no data is appended. - * \retval 1 if data is appended. +/*! + * \internal + * \brief Parse a <variable> node inside a <variablelist> node. + * + * \param node The variable node to parse. + * \param tabs A string to be appended at the begining of the output that will be stored + * in buffer. + * \param buffer This must be an already created ast_str. It will be used + * to store the result (if already has something it will be appended to the current + * string). + * + * \retval 0 if no data is appended. + * \retval 1 if data is appended. */ static int xmldoc_parse_variable(struct ast_xml_node *node, const char *tabs, struct ast_str **buffer) { @@ -1577,16 +1646,19 @@ static int xmldoc_parse_variable(struct ast_xml_node *node, const char *tabs, st return ret; } -/*! \internal - * \brief Parse a <variablelist> node and put all the output inside 'buffer'. - * \param node The variablelist node pointer. - * \param tabs A string to be appended at the begining of the output that will be stored - * in buffer. - * \param buffer This must be an already created ast_str. It will be used - * to store the result (if already has something it will be appended to the current - * string). - * \retval 1 If a <variablelist> element is parsed. - * \retval 0 On error. +/*! + * \internal + * \brief Parse a <variablelist> node and put all the output inside 'buffer'. + * + * \param node The variablelist node pointer. + * \param tabs A string to be appended at the begining of the output that will be stored + * in buffer. + * \param buffer This must be an already created ast_str. It will be used + * to store the result (if already has something it will be appended to the current + * string). + * + * \retval 1 If a <variablelist> element is parsed. + * \retval 0 On error. */ static int xmldoc_parse_variablelist(struct ast_xml_node *node, const char *tabs, struct ast_str **buffer) { @@ -1635,13 +1707,14 @@ static int xmldoc_parse_variablelist(struct ast_xml_node *node, const char *tabs /*! * \internal * \brief Build seealso information for an item + * * \param node The seealso node to parse * * \note This method exists for when you already have the node. This * prevents having to lock the documentation tree twice * - * \returns A malloc'd character pointer to the seealso information of the item - * \returns NULL on failure + * \retval A malloc'd character pointer to the seealso information of the item + * \retval NULL on failure * * \since 11 */ @@ -1727,12 +1800,15 @@ char *ast_xmldoc_build_seealso(const char *type, const char *name, const char *m return output; } -/*! \internal - * \brief Parse a <enum> node. - * \brief fixnode An ast_xml_node pointer to the <enum> node. - * \bried buffer The output buffer. - * \retval 0 if content is not found inside the enum element (data is not appended to buffer). - * \retval 1 if content is found and data is appended to buffer. +/*! + * \internal + * \brief Parse a <enum> node. + * + * \param fixnode An ast_xml_node pointer to the <enum> node. + * \param buffer The output buffer. + * + * \retval 0 if content is not found inside the enum element (data is not appended to buffer). + * \retval 1 if content is found and data is appended to buffer. */ static int xmldoc_parse_enum(struct ast_xml_node *fixnode, const char *tabs, struct ast_str **buffer) { @@ -1757,12 +1833,15 @@ static int xmldoc_parse_enum(struct ast_xml_node *fixnode, const char *tabs, str return ret; } -/*! \internal - * \brief Parse a <enumlist> node. - * \param fixnode As ast_xml pointer to the <enumlist> node. - * \param buffer The ast_str output buffer. - * \retval 0 if no <enumlist> node was parsed. - * \retval 1 if a <enumlist> node was parsed. +/*! + * \internal + * \brief Parse a <enumlist> node. + * + * \param fixnode As ast_xml pointer to the <enumlist> node. + * \param buffer The ast_str output buffer. + * + * \retval 0 if no <enumlist> node was parsed. + * \retval 1 if a <enumlist> node was parsed. */ static int xmldoc_parse_enumlist(struct ast_xml_node *fixnode, const char *tabs, struct ast_str **buffer) { @@ -1791,14 +1870,17 @@ static int xmldoc_parse_enumlist(struct ast_xml_node *fixnode, const char *tabs, return ret; } -/*! \internal - * \brief Parse an <option> node. - * \param fixnode An ast_xml pointer to the <option> node. - * \param tabs A string to be appended at the begining of each line being added to the - * buffer string. - * \param buffer The output buffer. - * \retval 0 if no option node is parsed. - * \retval 1 if an option node is parsed. +/*! + * \internal + * \brief Parse an <option> node. + * + * \param fixnode An ast_xml pointer to the <option> node. + * \param tabs A string to be appended at the begining of each line being added to the + * buffer string. + * \param buffer The output buffer. + * + * \retval 0 if no option node is parsed. + * \retval 1 if an option node is parsed. */ static int xmldoc_parse_option(struct ast_xml_node *fixnode, const char *tabs, struct ast_str **buffer) { @@ -1835,12 +1917,14 @@ static int xmldoc_parse_option(struct ast_xml_node *fixnode, const char *tabs, s return ret; } -/*! \internal - * \brief Parse an <optionlist> element from the xml documentation. - * \param fixnode Pointer to the optionlist xml node. - * \param tabs A string to be appended at the begining of each line being added to the - * buffer string. - * \param buffer Output buffer to put what is inside the optionlist tag. +/*! + * \internal + * \brief Parse an <optionlist> element from the xml documentation. + * + * \param fixnode Pointer to the optionlist xml node. + * \param tabs A string to be appended at the begining of each line being added to the + * buffer string. + * \param buffer Output buffer to put what is inside the optionlist tag. */ static void xmldoc_parse_optionlist(struct ast_xml_node *fixnode, const char *tabs, struct ast_str **buffer) { @@ -1886,12 +1970,14 @@ static void xmldoc_parse_optionlist(struct ast_xml_node *fixnode, const char *ta } } -/*! \internal - * \brief Parse a 'parameter' tag inside a syntax element. - * \param fixnode A pointer to the 'parameter' xml node. - * \param tabs A string to be appended at the beginning of each line being printed inside - * 'buffer'. - * \param buffer String buffer to put values found inside the parameter element. +/*! + * \internal + * \brief Parse a 'parameter' tag inside a syntax element. + * + * \param fixnode A pointer to the 'parameter' xml node. + * \param tabs A string to be appended at the beginning of each line being printed inside + * 'buffer'. + * \param buffer String buffer to put values found inside the parameter element. */ static void xmldoc_parse_parameter(struct ast_xml_node *fixnode, const char *tabs, struct ast_str **buffer) { @@ -1965,13 +2051,14 @@ static void xmldoc_parse_parameter(struct ast_xml_node *fixnode, const char *tab /*! * \internal * \brief Build the arguments for an item + * * \param node The arguments node to parse * * \note This method exists for when you already have the node. This * prevents having to lock the documentation tree twice * - * \returns A malloc'd character pointer to the arguments for the item - * \returns NULL on failure + * \retval A malloc'd character pointer to the arguments for the item + * \retval NULL on failure * * \since 11 */ @@ -2032,13 +2119,16 @@ char *ast_xmldoc_build_arguments(const char *type, const char *name, const char return _ast_xmldoc_build_arguments(node); } -/*! \internal - * \brief Return the string within a node formatted with <para> and <variablelist> elements. - * \param node Parent node where content resides. - * \param raw If set, return the node's content without further processing. - * \param raw_wrap Wrap raw text. - * \retval NULL on error - * \retval Node content on success. +/*! + * \internal + * \brief Return the string within a node formatted with <para> and <variablelist> elements. + * + * \param node Parent node where content resides. + * \param raw If set, return the node's content without further processing. + * \param raw_wrap Wrap raw text. + * + * \retval NULL on error + * \retval Node content on success. */ static struct ast_str *xmldoc_get_formatted(struct ast_xml_node *node, int raw_output, int raw_wrap) { @@ -2074,13 +2164,16 @@ static struct ast_str *xmldoc_get_formatted(struct ast_xml_node *node, int raw_o } /*! - * \brief Get the content of a field (synopsis, description, etc) from an asterisk document tree node - * \param node The node to obtain the information from - * \param var Name of field to return (synopsis, description, etc). - * \param raw Field only contains text, no other elements inside it. - * \retval NULL On error. - * \retval Field text content on success. - * \since 11 + * \internal + * \brief Get the content of a field (synopsis, description, etc) from an asterisk document tree node + * + * \param node The node to obtain the information from + * \param var Name of field to return (synopsis, description, etc). + * \param raw Field only contains text, no other elements inside it. + * + * \retval NULL On error. + * \retval Field text content on success. + * \since 11 */ static char *_xmldoc_build_field(struct ast_xml_node *node, const char *var, int raw) { @@ -2104,12 +2197,15 @@ static char *_xmldoc_build_field(struct ast_xml_node *node, const char *var, int } /*! + * \internal * \brief Get the content of a field (synopsis, description, etc) from an asterisk document tree + * * \param type Type of element (application, function, ...). * \param name Name of element (Dial, Echo, Playback, ...). * \param var Name of field to return (synopsis, description, etc). * \param module * \param raw Field only contains text, no other elements inside it. + * * \retval NULL On error. * \retval Field text content on success. */ @@ -2132,15 +2228,17 @@ static char *xmldoc_build_field(const char *type, const char *name, const char * return _xmldoc_build_field(node, var, raw); } -/* \internal +/*! + * \internal * \brief Build the synopsis for an item + * * \param node The synopsis node * * \note This method exists for when you already have the node. This * prevents having to lock the documentation tree twice * - * \returns A malloc'd character pointer to the synopsis information - * \returns NULL on failure + * \retval A malloc'd character pointer to the synopsis information + * \retval NULL on failure * \since 11 */ static char *_ast_xmldoc_build_synopsis(struct ast_xml_node *node) @@ -2156,13 +2254,14 @@ char *ast_xmldoc_build_synopsis(const char *type, const char *name, const char * /*! * \internal * \brief Build the descripton for an item + * * \param node The description node to parse * * \note This method exists for when you already have the node. This * prevents having to lock the documentation tree twice * - * \returns A malloc'd character pointer to the arguments for the item - * \returns NULL on failure + * \retval A malloc'd character pointer to the arguments for the item + * \retval NULL on failure * \since 11 */ static char *_ast_xmldoc_build_description(struct ast_xml_node *node) @@ -2175,7 +2274,9 @@ char *ast_xmldoc_build_description(const char *type, const char *name, const cha return xmldoc_build_field(type, name, module, "description", 0); } -/*! \internal \brief ast_xml_doc_item ao2 destructor +/*! + * \internal + * \brief ast_xml_doc_item ao2 destructor * \since 11 */ static void ast_xml_doc_item_destructor(void *obj) @@ -2199,8 +2300,10 @@ static void ast_xml_doc_item_destructor(void *obj) } } -/*! \internal +/*! + * \internal * \brief Create an ao2 ref counted ast_xml_doc_item + * * \param name The name of the item * \param type The item's source type * \since 11 @@ -2237,7 +2340,8 @@ ast_xml_doc_item_failure: return NULL; } -/*! \internal +/*! + * \internal * \brief ao2 item hash function for ast_xml_doc_item * \since 11 */ @@ -2248,7 +2352,8 @@ static int ast_xml_doc_item_hash(const void *obj, const int flags) return ast_str_case_hash(name); } -/*! \internal +/*! + * \internal * \brief ao2 item comparison function for ast_xml_doc_item * \since 11 */ @@ -2260,14 +2365,16 @@ static int ast_xml_doc_item_cmp(void *obj, void *arg, int flags) return strcasecmp(left->name, match) ? 0 : (CMP_MATCH | CMP_STOP); } -/* \internal +/*! + * \internal * \brief Build an XML documentation item + * * \param node The root node for the item * \param name The name of the item * \param type The item's source type * - * \returns NULL on failure - * \returns An ao2 ref counted object + * \retval NULL on failure + * \retval An ao2 ref counted object * \since 11 */ static struct ast_xml_doc_item *xmldoc_build_documentation_item(struct ast_xml_node *node, const char *name, const char *type) diff --git a/res/parking/parking_bridge_features.c b/res/parking/parking_bridge_features.c index 4bf91ca1755623a87a472bf5805aa53f2884e867..de06dd96f780e03fcfc187e6812cfb053f38522a 100644 --- a/res/parking/parking_bridge_features.c +++ b/res/parking/parking_bridge_features.c @@ -231,7 +231,10 @@ static struct ast_channel *park_local_transfer(struct ast_channel *parker, const return parkee; } -/*! \internal \brief Determine if an extension is a parking extension */ +/*! + * \internal + * \brief Determine if an extension is a parking extension + */ static int parking_is_exten_park(const char *context, const char *exten) { struct ast_exten *exten_obj; diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index efe5b967e0974c2daf5f811460791cac8055c92a..db07e4ec5e9fcc39f017848caeb43108024e781b 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -3105,7 +3105,10 @@ static int update_rtt_stats(struct ast_rtp *rtp, unsigned int lsr, unsigned int return 0; } -/*! \internal \brief Update RTCP interarrival jitter stats */ +/*! + * \internal + * \brief Update RTCP interarrival jitter stats + */ static void update_jitter_stats(struct ast_rtp *rtp, unsigned int ia_jitter) { double reported_jitter; @@ -3127,7 +3130,10 @@ static void update_jitter_stats(struct ast_rtp *rtp, unsigned int ia_jitter) rtp->rtcp->reported_normdev_jitter = reported_normdev_jitter_current; } -/*! \internal \brief Update RTCP lost packet stats */ +/*! + * \internal + * \brief Update RTCP lost packet stats + */ static void update_lost_stats(struct ast_rtp *rtp, unsigned int lost_packets) { double reported_lost; diff --git a/tests/test_abstract_jb.c b/tests/test_abstract_jb.c index 17861e6bc52e80474e68e112833ed9265bad21b8..f48307a3acd7b69f1f07146757bc28b0e12dc8ab 100644 --- a/tests/test_abstract_jb.c +++ b/tests/test_abstract_jb.c @@ -50,8 +50,12 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #define DEFAULT_CONFIG_RESYNC_THRESHOLD (DEFAULT_FRAME_MS) * 2 #define DEFAULT_CONFIG_TARGET_EXTRA -1 -/*! \internal \brief Destructor for a jitter buffer +/*! + * \internal + * \brief Destructor for a jitter buffer + * * \param jb The jitter buffer to destroy + * * \note This will destroy all frames still in the jitter buffer */ static void dispose_jitterbuffer(struct ast_jb *jb) @@ -67,9 +71,13 @@ static void dispose_jitterbuffer(struct ast_jb *jb) jb->jbobj = NULL; } -/*! \internal \brief Create a test frame +/*! + * \internal + * \brief Create a test frame + * * \param timestamp the time in ms of the frame * \param seqno the frame's sequence number + * * \returns a malloc'd frame */ static struct ast_frame *create_test_frame(long timestamp, @@ -150,19 +158,28 @@ static struct ast_frame *create_test_frame(long timestamp, (conf)->target_extra = DEFAULT_CONFIG_TARGET_EXTRA; \ } while (0) -/*! \internal \brief A container object for the jitter buffers, used for all tests*/ +/*! + * \internal + * \brief A container object for the jitter buffers, used for all tests + */ static struct ast_jb default_jb = { .impl = NULL, .jbobj = NULL }; -/*! \internal \brief Construct a test name */ +/*! + * \internal + * \brief Construct a test name + */ #define TEST_NAME(type_name, specifier) type_name ## _ ## specifier #define TEST_NAME2(test_name) #test_name #define STRINGIFY_TESTNAME(test_name) TEST_NAME2(test_name) -/*! \internal \brief Test nominal construction of a jitter buffer +/*! + * \internal + * \brief Test nominal construction of a jitter buffer + * * \param type_name The enum type of the jitter buffer to create * \param literal_type_name The literal name of the type - "fixed" or "adaptive" */ @@ -198,7 +215,10 @@ static struct ast_jb default_jb = { return AST_TEST_PASS; \ } -/*! \internal \brief Test putting the initial frame into a jitter buffer +/*! + * \internal + * \brief Test putting the initial frame into a jitter buffer + * * \param type_name The enum type of the jitter buffer to create * \param literal_type_name The literal name of the type - "fixed" or "adaptive" */ @@ -254,7 +274,10 @@ static struct ast_jb default_jb = { return AST_TEST_PASS; \ } -/*! \internal \brief Test putting a voice frames into a jitter buffer +/*! + * \internal + * \brief Test putting a voice frames into a jitter buffer + * * \param type_name The enum type of the jitter buffer to create * \param literal_type_name The literal name of the type - "fixed" or "adaptive" */ @@ -316,7 +339,10 @@ static struct ast_jb default_jb = { return AST_TEST_PASS; \ } -/*! \internal \brief Test overflowing the limits of a jitter buffer +/*! + * \internal + * \brief Test overflowing the limits of a jitter buffer + * * \param type_name The enum type of the jitter buffer to create * \param literal_type_name The literal name of the type - "fixed" or "adaptive" * \param overflow_limit The number of frames at which we expect the buffer to overflow @@ -381,7 +407,10 @@ static struct ast_jb default_jb = { return AST_TEST_PASS; \ } -/*! \internal \brief Test putting voice frames into a jitter buffer out of order +/*! + * \internal + * \brief Test putting voice frames into a jitter buffer out of order + * * \param type_name The enum type of the jitter buffer to create * \param literal_type_name The literal name of the type - "fixed" or "adaptive" * \param synch_limit The synchronization limit for this particular type of jitter buffer diff --git a/tests/test_cdr.c b/tests/test_cdr.c index 18511af55e558ddb56a898c768614a2bfc5153ab..14bf63d0b96cac7be8c2acd2ef48fccc89b41432 100644 --- a/tests/test_cdr.c +++ b/tests/test_cdr.c @@ -2402,7 +2402,8 @@ AST_TEST_DEFINE(test_cdr_fork_cdr) } /*! - * \internal \brief Callback function called before each test executes + * \internal + * \brief Callback function called before each test executes */ static int test_cdr_init_cb(struct ast_test_info *info, struct ast_test *test) { @@ -2413,7 +2414,8 @@ static int test_cdr_init_cb(struct ast_test_info *info, struct ast_test *test) } /*! - * \internal \brief Callback function called after each test executes + * \internal + * \brief Callback function called after each test executes */ static int test_cdr_cleanup_cb(struct ast_test_info *info, struct ast_test *test) { diff --git a/tests/test_cel.c b/tests/test_cel.c index 5b5727e35bdc663a4a4b433ee0cd4e1007575b4d..2b36937685eeb00a7dcd10d628a7866840f40d4a 100644 --- a/tests/test_cel.c +++ b/tests/test_cel.c @@ -1685,7 +1685,8 @@ static void test_sub(const struct ast_event *event, void *data) } /*! - * \internal \brief Callback function called before each test executes + * \internal + * \brief Callback function called before each test executes */ static int test_cel_init_cb(struct ast_test_info *info, struct ast_test *test) { @@ -1908,7 +1909,10 @@ static struct ast_event *create_sync_event(void) } /*! - * \internal \brief Callback function called after each test executes. + * \internal + * \brief Callback function called after each test executes. + * + * \details * In addition to cleanup, this function also performs verification * that the events received during a test match the events that were * expected to have been generated during the test. diff --git a/tests/test_jitterbuf.c b/tests/test_jitterbuf.c index 65e7d4dcdfa5d2345b1b59b5305c10f706a3ea87..58dd46d610be173ef743939dfb1bdf16e4eb52a4 100644 --- a/tests/test_jitterbuf.c +++ b/tests/test_jitterbuf.c @@ -96,7 +96,10 @@ static const char *jitter_buffer_return_codes[] = { "JB_SCHED" /* 5 */ }; -/*! \internal \brief Make a default jitter buffer configuration */ +/*! + * \internal + * \brief Make a default jitter buffer configuration + */ static void test_jb_populate_config(struct jb_conf *jbconf) { if (!jbconf) { @@ -109,7 +112,10 @@ static void test_jb_populate_config(struct jb_conf *jbconf) jbconf->target_extra = 0; } -/*! \internal \brief Debug callback function for the jitter buffer's jb_dbg function */ +/*! + * \internal + * \brief Debug callback function for the jitter buffer's jb_dbg function + */ static void __attribute__((format(printf, 1, 2))) test_jb_debug_output(const char *fmt, ...) { va_list args; @@ -122,7 +128,10 @@ static void __attribute__((format(printf, 1, 2))) test_jb_debug_output(const cha ast_debug(1, "%s", buf); } -/*! \internal \brief Warning callback function for the jitter buffer's jb_warn function */ +/*! + * \internal + * \brief Warning callback function for the jitter buffer's jb_warn function + */ static void __attribute__((format(printf, 1, 2))) test_jb_warn_output(const char *fmt, ...) { va_list args; @@ -135,7 +144,10 @@ static void __attribute__((format(printf, 1, 2))) test_jb_warn_output(const char ast_log(AST_LOG_WARNING, "%s", buf); } -/*! \internal \brief Error callback function for the jitter buffer's jb_err function */ +/*! + * \internal + * \brief Error callback function for the jitter buffer's jb_err function + */ static void __attribute__((format(printf, 1, 2))) test_jb_error_output(const char *fmt, ...) { va_list args; @@ -148,7 +160,10 @@ static void __attribute__((format(printf, 1, 2))) test_jb_error_output(const cha ast_log(AST_LOG_ERROR, "%s", buf); } -/*! \internal \brief Insert frames into the jitter buffer for the nominal tests */ +/*! + * \internal + * \brief Insert frames into the jitter buffer for the nominal tests + */ static int test_jb_nominal_frame_insertion(struct ast_test *test, struct jitterbuf *jb, enum jb_frame_type frame_type) { int i = 0, ret = 0; @@ -323,7 +338,10 @@ cleanup: return result; } -/*! \internal \brief Insert frames into the jitter buffer for the out of order tests */ +/*! + * \internal + * \brief Insert frames into the jitter buffer for the out of order tests + */ static int test_jb_out_of_order_frame_insertion(struct ast_test *test, struct jitterbuf *jb, enum jb_frame_type frame_type) { int i = 0, ret = 0; @@ -517,7 +535,10 @@ cleanup: return result; } -/*! \internal \brief Insert frames into the jitter buffer for the lost frame tests */ +/*! + * \internal + * \brief Insert frames into the jitter buffer for the lost frame tests + */ static int test_jb_lost_frame_insertion(struct ast_test *test, struct jitterbuf *jb, enum jb_frame_type frame_type) { int i = 0, ret = 0; @@ -708,7 +729,10 @@ cleanup: return result; } -/*! \internal \brief Insert frames into the jitter buffer for the late frame tests */ +/*! + * \internal + * \brief Insert frames into the jitter buffer for the late frame tests + */ static int test_jb_late_frame_insertion(struct ast_test *test, struct jitterbuf *jb, enum jb_frame_type frame_type) { int i = 0, ret = 0; @@ -891,7 +915,10 @@ cleanup: return result; } -/*! \internal \brief Insert frames into the jitter buffer for the overflow tests */ +/*! + * \internal + * \brief Insert frames into the jitter buffer for the overflow tests + */ static void test_jb_overflow_frame_insertion(struct jitterbuf *jb, enum jb_frame_type frame_type) { int i = 0; @@ -1040,7 +1067,10 @@ cleanup: return result; } -/*! \internal \brief Insert frames into the jitter buffer for the resynch tests */ +/*! + * \internal + * \brief Insert frames into the jitter buffer for the resynch tests + */ static void test_jb_resynch_frame_insertion(struct jitterbuf *jb, enum jb_frame_type frame_type) { int i = 0; diff --git a/tests/test_voicemail_api.c b/tests/test_voicemail_api.c index a0dc2400bd89c681d808278bacf4284fccfddf7b..5329b98b1a9a2cabbb0810710b8f9d9ddbbdf389 100644 --- a/tests/test_voicemail_api.c +++ b/tests/test_voicemail_api.c @@ -44,19 +44,33 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/channel.h" #include "asterisk/app.h" -/*! \internal \brief Permissions to set on the voicemail directories we create - * - taken from app_voicemail */ +/*! + * \internal + * \brief Permissions to set on the voicemail directories we create + * + * \note taken from app_voicemail + */ #define VOICEMAIL_DIR_MODE 0777 -/*! \internal \brief Permissions to set on the voicemail files we create - * - taken from app_voicemail */ +/*! + * \internal + * \brief Permissions to set on the voicemail files we create + * + * \note taken from app_voicemail + */ #define VOICEMAIL_FILE_MODE 0666 -/*! \internal \brief The number of mock snapshot objects we use for tests */ +/*! + * \internal + * \brief The number of mock snapshot objects we use for tests + */ #define TOTAL_SNAPSHOTS 4 -/*! \internal \brief Create and populate the mock message objects and create the - * envelope files on the file system */ +/*! + * \internal + * \brief Create and populate the mock message objects and create the + * envelope files on the file system + */ #define VM_API_TEST_SETUP do { \ if (test_vm_api_test_setup()) { \ VM_API_TEST_CLEANUP; \ @@ -70,21 +84,32 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") } \ } } while (0) -/*! \internal \brief Safely cleanup after a test run. This should be called both when a - * test fails and when it passes */ +/*! + * \internal + * \brief Safely cleanup after a test run. + * + * \note This should be called both when a test fails and when it passes + */ #define VM_API_TEST_CLEANUP test_vm_api_test_teardown() -/*! \internal \brief Safely cleanup a snapshot and a test run. Note that it assumes - * that the mailbox snapshot object is test_mbox_snapshot */ +/*! + * \internal + * \brief Safely cleanup a snapshot and a test run. + * + * \note It assumes that the mailbox snapshot object is test_mbox_snapshot + */ #define VM_API_SNAPSHOT_TEST_CLEANUP \ if (test_mbox_snapshot) { \ test_mbox_snapshot = ast_vm_mailbox_snapshot_destroy(test_mbox_snapshot); \ } \ VM_API_TEST_CLEANUP; \ -/*! \internal \brief Verify the expected result from two string values obtained - * from a mailbox snapshot. Note that it assumes the mailbox snapshot - * object is test_mbox_snapshot +/*! + * \internal + * \brief Verify the expected result from two string values obtained + * from a mailbox snapshot. + * + * \note It assumes the mailbox snapshot object is test_mbox_snapshot */ #define VM_API_STRING_FIELD_VERIFY(expected, actual) do { \ if (strcmp((expected), (actual))) { \ @@ -93,8 +118,12 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) -/*! \internal \brief Verify the expected result from two integer values. Note - * that it assumes the mailbox snapshot object is test_mbox_snapshot */ +/*! + * \internal + * \brief Verify the expected result from two integer values. + * + * \note It assumes the mailbox snapshot object is test_mbox_snapshot + */ #define VM_API_INT_VERIFY(expected, actual) do { \ if ((expected) != (actual)) { \ ast_test_status_update(test, "Test failed for parameter %s: Expected [%d], Actual [%d]\n", #actual, expected, actual); \ @@ -102,9 +131,12 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) -/*! \internal \brief Verify that a mailbox snapshot contains the expected message - * snapshot, in the correct position, with the expected values. Note - * that it assumes the mailbox snapshot object is test_mbox_snapshot +/*! + * \internal + * \brief Verify that a mailbox snapshot contains the expected message + * snapshot, in the correct position, with the expected values. + * + * \note It assumes the mailbox snapshot object is test_mbox_snapshot */ #define VM_API_SNAPSHOT_MSG_VERIFY(expected, actual, expected_folder, expected_index) do { \ struct ast_vm_msg_snapshot *msg; \ @@ -140,8 +172,11 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") } } while (0) -/*! \internal \brief Create a message snapshot, failing the test if the snapshot could not be created. - * This requires having a snapshot named test_mbox_snapshot. +/*! + * \internal + * \brief Create a message snapshot, failing the test if the snapshot could not be created. + * + * \note This requires having a snapshot named test_mbox_snapshot. */ #define VM_API_SNAPSHOT_CREATE(mailbox, context, folder, desc, sort, old_and_inbox) do { \ if (!(test_mbox_snapshot = ast_vm_mailbox_snapshot_create( \ @@ -151,9 +186,12 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) -/*! \internal \brief Create a message snapshot, failing the test if the snapshot could be created. - * This is used to test off nominal conditions. - * This requires having a snapshot named test_mbox_snapshot. +/*! + * \internal + * \brief Create a message snapshot, failing the test if the snapshot could be created. + * + * \note This is used to test off nominal conditions. + * \note This requires having a snapshot named test_mbox_snapshot. */ #define VM_API_SNAPSHOT_OFF_NOMINAL_TEST(mailbox, context, folder, desc, sort, old_and_inbox) do { \ if ((test_mbox_snapshot = ast_vm_mailbox_snapshot_create( \ @@ -164,7 +202,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) -/*! \internal \brief Move a voicemail message, failing the test if the message could not be moved */ +/*! + * \internal + * \brief Move a voicemail message, failing the test if the message could not be moved + */ #define VM_API_MOVE_MESSAGE(mailbox, context, number_of_messages, source, message_numbers_in, dest) do { \ if (ast_vm_msg_move((mailbox), (context), (number_of_messages), (source), (message_numbers_in), (dest))) { \ ast_test_status_update(test, "Failed to move message %s@%s from %s to %s\n", \ @@ -173,7 +214,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) - /*! \internal \brief Attempt to move a voicemail message, failing the test if the message could be moved */ +/*! + * \internal + * \brief Attempt to move a voicemail message, failing the test if the message could be moved + */ #define VM_API_MOVE_MESSAGE_OFF_NOMINAL(mailbox, context, number_of_messages, source, message_numbers_in, dest) do { \ if (!ast_vm_msg_move((mailbox), (context), (number_of_messages), (source), (message_numbers_in), (dest))) { \ ast_test_status_update(test, "Succeeded to move message %s@%s from %s to %s when we really shouldn't\n", \ @@ -182,7 +226,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) -/*! \internal \brief Remove a message, failing the test if the method failed or if the message is still present. */ +/*! + * \internal + * \brief Remove a message, failing the test if the method failed or if the message is still present. + */ #define VM_API_REMOVE_MESSAGE(mailbox, context, number_of_messages, folder, message_numbers_in) do { \ if (ast_vm_msg_remove((mailbox), (context), (number_of_messages), (folder), (message_numbers_in))) { \ ast_test_status_update(test, "Failed to remove message from mailbox %s@%s, folder %s", \ @@ -195,7 +242,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") test_mbox_snapshot = ast_vm_mailbox_snapshot_destroy(test_mbox_snapshot); \ } while (0) -/*! \internal \brief Remove a message, failing the test if the method succeeds */ +/*! + * \internal + * \brief Remove a message, failing the test if the method succeeds + */ #define VM_API_REMOVE_MESSAGE_OFF_NOMINAL(mailbox, context, number_of_messages, folder, message_numbers_in) do { \ if (!ast_vm_msg_remove((mailbox), (context), (number_of_messages), (folder), (message_numbers_in))) { \ ast_test_status_update(test, "Succeeded in removing message from mailbox %s@%s, folder %s, when expected result was failure\n", \ @@ -204,7 +254,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) -/*! \internal \brief Forward a message, failing the test if the message could not be forwarded */ +/*! + * \internal + * \brief Forward a message, failing the test if the message could not be forwarded + */ # define VM_API_FORWARD_MESSAGE(from_mailbox, from_context, from_folder, to_mailbox, to_context, to_folder, number_of_messages, message_numbers_in, delete_old) do { \ if (ast_vm_msg_forward((from_mailbox), (from_context), (from_folder), (to_mailbox), (to_context), (to_folder), (number_of_messages), (message_numbers_in), (delete_old))) { \ ast_test_status_update(test, "Failed to forward message from %s@%s [%s] to %s@%s [%s]\n", \ @@ -214,7 +267,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) - /*! \internal \brief Forward a message, failing the test if the message was successfully forwarded */ +/*! + * \internal + * \brief Forward a message, failing the test if the message was successfully forwarded + */ #define VM_API_FORWARD_MESSAGE_OFF_NOMINAL(from_mailbox, from_context, from_folder, to_mailbox, to_context, to_folder, number_of_messages, message_numbers_in, delete_old) do { \ if (!ast_vm_msg_forward((from_mailbox), (from_context), (from_folder), (to_mailbox), (to_context), (to_folder), (number_of_messages), (message_numbers_in), (delete_old))) { \ ast_test_status_update(test, "Succeeded in forwarding message from %s@%s [%s] to %s@%s [%s] when expected result was fail\n", \ @@ -224,8 +280,13 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) -/*! \internal \brief Playback a message on a channel or callback function. Note that the channel name must be test_channel. - * Fail the test if the message could not be played. */ +/*! + * \internal . + * \brief Playback a message on a channel or callback function . + * . + * \note The channel name must be test_channel. + * \note Fail the test if the message could not be played. + */ #define VM_API_PLAYBACK_MESSAGE(channel, mailbox, context, folder, message, callback_fn) do { \ if (ast_vm_msg_play((channel), (mailbox), (context), (folder), (message), (callback_fn))) { \ ast_test_status_update(test, "Failed nominal playback message test\n"); \ @@ -234,8 +295,13 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") return AST_TEST_FAIL; \ } } while (0) -/*! \internal \brief Playback a message on a channel or callback function. Note that the channel name must be test_channel. - * Fail the test if the message is successfully played */ +/*! + * \internal + * \brief Playback a message on a channel or callback function. + * + * \note The channel name must be test_channel. + * \note Fail the test if the message is successfully played + */ #define VM_API_PLAYBACK_MESSAGE_OFF_NOMINAL(channel, mailbox, context, folder, message, callback_fn) do { \ if (!ast_vm_msg_play((channel), (mailbox), (context), (folder), (message), (callback_fn))) { \ ast_test_status_update(test, "Succeeded in playing back of message when expected result was to fail\n"); \ @@ -245,7 +311,12 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") } } while (0) -/*! \internal \brief Possible names of folders. Taken from app_voicemail */ +/*! + * \internal + * \brief Possible names of folders. + * + * \note Taken from app_voicemail + */ static const char * const mailbox_folders[] = { "INBOX", "Old", @@ -261,13 +332,22 @@ static const char * const mailbox_folders[] = { "Urgent", }; -/*! \internal \brief Message snapshots representing the messages that are used by the various tests */ +/*! + * \internal + * \brief Message snapshots representing the messages that are used by the various tests + */ static struct ast_vm_msg_snapshot *test_snapshots[TOTAL_SNAPSHOTS]; -/*! \internal \brief Tracks whether or not we entered into the message playback callback function */ +/*! + * \internal + * \brief Tracks whether or not we entered into the message playback callback function + */ static int global_entered_playback_callback = 0; -/*! \internal \brief Get a folder index by its name */ +/*! + * \internal + * \brief Get a folder index by its name + */ static int get_folder_by_name(const char *folder) { size_t i; @@ -281,10 +361,14 @@ static int get_folder_by_name(const char *folder) return -1; } -/*! \internal \brief Get a mock snapshot object +/*! + * \internal + * \brief Get a mock snapshot object + * * \param context The mailbox context * \param exten The mailbox extension * \param callerid The caller ID of the person leaving the message + * * \returns an ast_vm_msg_snapshot object on success * \returns NULL on error */ @@ -306,8 +390,12 @@ static struct ast_vm_msg_snapshot *test_vm_api_create_mock_snapshot(const char * return snapshot; } -/*! \internal \brief Make a voicemail mailbox folder based on the values provided in a message snapshot +/*! + * \internal + * \brief Make a voicemail mailbox folder based on the values provided in a message snapshot + * * \param snapshot The snapshot containing the information to create the folder from + * * \returns 0 on success * \returns 1 on failure */ @@ -323,12 +411,17 @@ static int test_vm_api_create_voicemail_folder(const char *folder_path) return 0; } -/*! \internal \brief Create the voicemail files specified by a snapshot +/*! + * \internal + * \brief Create the voicemail files specified by a snapshot + * * \param context The context of the mailbox * \param mailbox The actual mailbox * \param snapshot The message snapshot object containing the relevant envelope data + * * \note This will symbolic link the sound file 'beep.gsm' to act as the 'sound' portion of the voicemail. * Certain actions in app_voicemail will fail if an actual sound file does not exist + * * \returns 0 on success * \returns 1 on any failure */ @@ -418,7 +511,10 @@ static int test_vm_api_create_voicemail_files(const char *context, const char *m return 0; } -/*! \internal \brief Destroy the voicemail on the file system associated with a snapshot +/*! + * \internal + * \brief Destroy the voicemail on the file system associated with a snapshot + * * \param snapshot The snapshot describing the voicemail */ static void test_vm_api_remove_voicemail(struct ast_vm_msg_snapshot *snapshot) @@ -444,10 +540,14 @@ static void test_vm_api_remove_voicemail(struct ast_vm_msg_snapshot *snapshot) return; } -/*! \internal \brief Destroy the voicemails associated with a mailbox snapshot +/*! + * \internal + * \brief Destroy the voicemails associated with a mailbox snapshot + * * \param mailbox The actual mailbox name * \param mailbox_snapshot The mailbox snapshot containing the voicemails to destroy - * \note Its necessary to specify not just the snapshot, but the mailbox itself. The + * + * \note It is necessary to specify not just the snapshot, but the mailbox itself. The * message snapshots contained in the snapshot may have originated from a different mailbox * then the one we're destroying, which means that we can't determine the files to delete * without knowing the actual mailbox they exist in. @@ -465,7 +565,10 @@ static void test_vm_api_destroy_mailbox_voicemails(const char *mailbox, struct a } } -/*! \internal \brief Use snapshots to remove all messages in the mailboxes */ +/*! + * \internal + * \brief Use snapshots to remove all messages in the mailboxes + */ static void test_vm_api_remove_all_messages(void) { struct ast_vm_mailbox_snapshot *mailbox_snapshot; @@ -487,8 +590,11 @@ static void test_vm_api_remove_all_messages(void) } } -/*! \internal \brief Set up the necessary voicemails for a unit test run - * \note +/*! + * \internal + * \brief Set up the necessary voicemails for a unit test run + * + * \details * This creates 4 voicemails, stores them on the file system, and creates snapshot objects * representing them for expected/actual value comparisons in the array test_snapshots. * @@ -608,7 +714,10 @@ static void test_vm_api_test_teardown(void) ast_vm_test_destroy_user("default", "test_vm_api_2345"); } -/*! \internal \brief Update the test snapshots with a new mailbox snapshot +/*! + * \internal + * \brief Update the test snapshots with a new mailbox snapshot + * * \param mailbox_snapshot The new mailbox shapshot to update the test snapshots with */ static void test_vm_api_update_test_snapshots(struct ast_vm_mailbox_snapshot *mailbox_snapshot) @@ -635,10 +744,14 @@ static void test_vm_api_update_test_snapshots(struct ast_vm_mailbox_snapshot *ma } } -/*! \internal \brief A callback function for message playback +/*! + * \internal + * \brief A callback function for message playback + * * \param chan The channel the file would be played back on * \param file The file to play back * \param duration The duration of the file + * * \note This sets global_entered_playback_callback to 1 if the parameters * passed to the callback are minimally valid */ @@ -651,25 +764,37 @@ static void message_playback_callback_fn(struct ast_channel *chan, const char *f } } -/*! \internal \brief Dummy channel write function for mock_channel_tech */ +/*! + * \internal + * \brief Dummy channel write function for mock_channel_tech + */ static int test_vm_api_mock_channel_write(struct ast_channel *chan, struct ast_frame *frame) { return 0; } -/*! \internal \brief Dummy channel read function for mock_channel_tech */ +/*! + * \internal + * \brief Dummy channel read function for mock_channel_tech + */ static struct ast_frame *test_vm_api_mock_channel_read(struct ast_channel *chan) { return &ast_null_frame; } -/*! \internal \brief A dummy channel technology */ +/*! + * \internal + * \brief A dummy channel technology + */ static const struct ast_channel_tech mock_channel_tech = { .write = test_vm_api_mock_channel_write, .read = test_vm_api_mock_channel_read, }; -/*! \internal \brief Create a dummy channel suitable for 'playing back' gsm sound files on +/*! + * \internal + * \brief Create a dummy channel suitable for 'playing back' gsm sound files on + * * \returns a channel on success * \returns NULL on failure */