[svn-commits] rizzo: trunk r89522 - in /trunk: apps/ include/ include/asterisk/ pbx/ res/ael/

SVN commits to the Digium repositories svn-commits at lists.digium.com
Wed Nov 21 21:50:05 CST 2007


Author: rizzo
Date: Wed Nov 21 21:50:04 2007
New Revision: 89522

URL: http://svn.digium.com/view/asterisk?view=rev&rev=89522
Log:
shuffle a little bit the content of header files to reduce dependencies.
In this commit:
- move the ast_register/unregister_app functions to module.h
  to avoid the need to include pbx.h for the simpler apps;
- move the ast_group structure to channel.h to remove the
  dependency of app.h on linkedlists.h

Note, this is a long process that I am doing in small steps.

The main difficulty is that now for each subsystem we
have a single header (e.g. channel.h) included by the subsystem
provider (usually one file, e.g. channel.c) and by its clients
(dozens of them, e.g. we have some 70+ apps and 30+ functions).

This requires the clients to include all the extra headers
required by the provider (eg. lock.h, linkedlists.h, definitions
of substructures...) even though many of the clients would be
just happy with opaque struct declarations and function prototypes.

The long term plan is to eventually rectify this structure
so that the compilation can become faster, and also APIs
are more stable.


Modified:
    trunk/apps/app_cdr.c
    trunk/apps/app_dumpchan.c
    trunk/apps/app_echo.c
    trunk/apps/app_milliwatt.c
    trunk/apps/app_mixmonitor.c
    trunk/apps/app_read.c
    trunk/apps/app_readexten.c
    trunk/apps/app_record.c
    trunk/apps/app_senddtmf.c
    trunk/apps/app_stack.c
    trunk/apps/app_system.c
    trunk/apps/app_transfer.c
    trunk/apps/app_url.c
    trunk/apps/app_verbose.c
    trunk/apps/app_while.c
    trunk/include/asterisk.h
    trunk/include/asterisk/app.h
    trunk/include/asterisk/channel.h
    trunk/include/asterisk/module.h
    trunk/include/asterisk/pbx.h
    trunk/pbx/pbx_config.c
    trunk/res/ael/pval.c

Modified: trunk/apps/app_cdr.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_cdr.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_cdr.c (original)
+++ trunk/apps/app_cdr.c Wed Nov 21 21:50:04 2007
@@ -31,7 +31,6 @@
 
 #include "asterisk/channel.h"
 #include "asterisk/module.h"
-#include "asterisk/pbx.h"
 
 static char *nocdr_descrip = 
 "  NoCDR(): This application will tell Asterisk not to maintain a CDR for the\n"

Modified: trunk/apps/app_dumpchan.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_dumpchan.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_dumpchan.c (original)
+++ trunk/apps/app_dumpchan.c Wed Nov 21 21:50:04 2007
@@ -32,12 +32,9 @@
 
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
-#include "asterisk/file.h"
-#include "asterisk/channel.h"
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
-#include "asterisk/utils.h"
-#include "asterisk/lock.h"
+#include "asterisk/channel.h"
 
 static char *app = "DumpChan";
 static char *synopsis = "Dump Info About The Calling Channel";

Modified: trunk/apps/app_echo.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_echo.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_echo.c (original)
+++ trunk/apps/app_echo.c Wed Nov 21 21:50:04 2007
@@ -32,6 +32,7 @@
 #include "asterisk/file.h"
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
+#include "asterisk/channel.h"
 
 static char *app = "Echo";
 

Modified: trunk/apps/app_milliwatt.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_milliwatt.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_milliwatt.c (original)
+++ trunk/apps/app_milliwatt.c Wed Nov 21 21:50:04 2007
@@ -31,6 +31,7 @@
 
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
+#include "asterisk/channel.h"
 
 static char *app = "Milliwatt";
 

Modified: trunk/apps/app_mixmonitor.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_mixmonitor.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_mixmonitor.c (original)
+++ trunk/apps/app_mixmonitor.c Wed Nov 21 21:50:04 2007
@@ -44,6 +44,7 @@
 #include "asterisk/module.h"
 #include "asterisk/cli.h"
 #include "asterisk/app.h"
+#include "asterisk/channel.h"
 
 #define get_volfactor(x) x ? ((x > 0) ? (1 << x) : ((1 << abs(x)) * -1)) : 0
 

Modified: trunk/apps/app_read.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_read.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_read.c (original)
+++ trunk/apps/app_read.c Wed Nov 21 21:50:04 2007
@@ -31,6 +31,7 @@
 
 #include "asterisk/file.h"
 #include "asterisk/pbx.h"
+#include "asterisk/channel.h"
 #include "asterisk/app.h"
 #include "asterisk/module.h"
 #include "asterisk/indications.h"

Modified: trunk/apps/app_readexten.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_readexten.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_readexten.c (original)
+++ trunk/apps/app_readexten.c Wed Nov 21 21:50:04 2007
@@ -34,6 +34,7 @@
 #include "asterisk/app.h"
 #include "asterisk/module.h"
 #include "asterisk/indications.h"
+#include "asterisk/channel.h"
 
 enum {
 	OPT_SKIP = (1 << 0),

Modified: trunk/apps/app_record.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_record.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_record.c (original)
+++ trunk/apps/app_record.c Wed Nov 21 21:50:04 2007
@@ -33,6 +33,7 @@
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
 #include "asterisk/app.h"
+#include "asterisk/channel.h"
 #include "asterisk/dsp.h"	/* use dsp routines for silence detection */
 
 

Modified: trunk/apps/app_senddtmf.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_senddtmf.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_senddtmf.c (original)
+++ trunk/apps/app_senddtmf.c Wed Nov 21 21:50:04 2007
@@ -33,6 +33,7 @@
 #include "asterisk/module.h"
 #include "asterisk/app.h"
 #include "asterisk/manager.h"
+#include "asterisk/channel.h"
 
 static char *app = "SendDTMF";
 

Modified: trunk/apps/app_stack.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_stack.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_stack.c (original)
+++ trunk/apps/app_stack.c Wed Nov 21 21:50:04 2007
@@ -33,6 +33,7 @@
 #include "asterisk/module.h"
 #include "asterisk/app.h"
 #include "asterisk/manager.h"
+#include "asterisk/channel.h"
 
 static const char *app_gosub = "Gosub";
 static const char *app_gosubif = "GosubIf";

Modified: trunk/apps/app_system.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_system.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_system.c (original)
+++ trunk/apps/app_system.c Wed Nov 21 21:50:04 2007
@@ -32,6 +32,7 @@
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
 #include "asterisk/app.h"
+#include "asterisk/channel.h"	/* autoservice */
 
 static char *app = "System";
 

Modified: trunk/apps/app_transfer.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_transfer.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_transfer.c (original)
+++ trunk/apps/app_transfer.c Wed Nov 21 21:50:04 2007
@@ -31,12 +31,10 @@
 
 ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 
-#include "asterisk/lock.h"
-#include "asterisk/file.h"
-#include "asterisk/channel.h"
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
 #include "asterisk/app.h"
+#include "asterisk/channel.h"
 
 
 static const char *app = "Transfer";

Modified: trunk/apps/app_url.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_url.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_url.c (original)
+++ trunk/apps/app_url.c Wed Nov 21 21:50:04 2007
@@ -32,6 +32,7 @@
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
 #include "asterisk/app.h"
+#include "asterisk/channel.h"
 
 static char *app = "SendURL";
 

Modified: trunk/apps/app_verbose.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_verbose.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_verbose.c (original)
+++ trunk/apps/app_verbose.c Wed Nov 21 21:50:04 2007
@@ -31,6 +31,7 @@
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
 #include "asterisk/app.h"
+#include "asterisk/channel.h"
 
 static char *app_verbose = "Verbose";
 static char *verbose_synopsis = "Send arbitrary text to verbose output";

Modified: trunk/apps/app_while.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_while.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/apps/app_while.c (original)
+++ trunk/apps/app_while.c Wed Nov 21 21:50:04 2007
@@ -31,6 +31,7 @@
 
 #include "asterisk/pbx.h"
 #include "asterisk/module.h"
+#include "asterisk/channel.h"
 
 static char *start_app = "While";
 static char *start_desc = 

Modified: trunk/include/asterisk.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk.h?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/include/asterisk.h (original)
+++ trunk/include/asterisk.h Wed Nov 21 21:50:04 2007
@@ -171,5 +171,7 @@
 struct ast_channel;
 struct ast_frame;
 struct ast_module;
+struct ast_variable;
+struct ast_str;
 
 #endif /* _ASTERISK_H */

Modified: trunk/include/asterisk/app.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk/app.h?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/include/asterisk/app.h (original)
+++ trunk/include/asterisk/app.h Wed Nov 21 21:50:04 2007
@@ -22,6 +22,8 @@
 
 #ifndef _ASTERISK_APP_H
 #define _ASTERISK_APP_H
+
+struct ast_flags64;
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
@@ -227,12 +229,7 @@
 /*! Read a file into asterisk*/
 char *ast_read_textfile(const char *file);
 
-struct ast_group_info {
-	struct ast_channel *chan;
-	char *category;
-	char *group;
-	AST_LIST_ENTRY(ast_group_info) list;
-};
+struct ast_group_info;
 
 /*! Split a group string into group and category, returning a default category if none is provided. */
 int ast_app_group_split_group(const char *data, char *group, int group_max, char *category, int category_max);

Modified: trunk/include/asterisk/channel.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk/channel.h?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/include/asterisk/channel.h (original)
+++ trunk/include/asterisk/channel.h Wed Nov 21 21:50:04 2007
@@ -1442,6 +1442,15 @@
  */
 const char *ast_channel_reason2str(int reason);
 
+/*! \brief channel group info
+ */
+struct ast_group_info {
+        struct ast_channel *chan;
+        char *category;
+        char *group;
+        AST_LIST_ENTRY(ast_group_info) list;   
+};
+
 
 #if defined(__cplusplus) || defined(c_plusplus)
 }

Modified: trunk/include/asterisk/module.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk/module.h?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/include/asterisk/module.h (original)
+++ trunk/include/asterisk/module.h Wed Nov 21 21:50:04 2007
@@ -370,6 +370,59 @@
 		       )
 #endif
 
+/*! 
+ * \brief Register an application.
+ *
+ * \param app Short name of the application
+ * \param execute a function callback to execute the application. It should return
+ *                non-zero if the channel needs to be hung up.
+ * \param synopsis a short description (one line synopsis) of the application
+ * \param description long description with all of the details about the use of 
+ *                    the application
+ * 
+ * This registers an application with Asterisk's internal application list. 
+ * \note The individual applications themselves are responsible for registering and unregistering
+ *       and unregistering their own CLI commands.
+ * 
+ * \retval 0 success 
+ * \retval -1 failure.
+ */
+#define ast_register_application(app, execute, synopsis, description) ast_register_application2(app, execute, synopsis, description, ast_module_info->self)
+
+/*!
+ * \brief Register an application.
+ *
+ * \param app Short name of the application
+ * \param execute a function callback to execute the application. It should return
+ *                non-zero if the channel needs to be hung up.
+ * \param synopsis a short description (one line synopsis) of the application
+ * \param description long description with all of the details about the use of
+ *                    the application
+ * \param mod module this application belongs to
+ *
+ * This registers an application with Asterisk's internal application list.
+ * \note The individual applications themselves are responsible for registering and unregistering
+ *       and unregistering their own CLI commands.
+ *
+ * \retval 0 success
+ * \retval -1 failure.
+ */
+int ast_register_application2(const char *app, int (*execute)(struct ast_channel *, void *),
+				     const char *synopsis, const char *description, void *mod);
+
+/*! 
+ * \brief Unregister an application
+ * 
+ * \param app name of the application (does not have to be the same string as the one that was registered)
+ * 
+ * This unregisters an application from Asterisk's internal application list.
+ * 
+ * \retval 0 success 
+ * \retval -1 failure
+ */
+int ast_unregister_application(const char *app);
+
+
 #if defined(__cplusplus) || defined(c_plusplus)
 }
 #endif

Modified: trunk/include/asterisk/pbx.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk/pbx.h?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/include/asterisk/pbx.h (original)
+++ trunk/include/asterisk/pbx.h Wed Nov 21 21:50:04 2007
@@ -24,8 +24,7 @@
 #define _ASTERISK_PBX_H
 
 #include "asterisk/sched.h"
-#include "asterisk/channel.h"
-#include "asterisk/linkedlists.h"
+#include "asterisk/chanvars.h"
 
 #if defined(__cplusplus) || defined(c_plusplus)
 extern "C" {
@@ -301,58 +300,6 @@
 
 
 /*! 
- * \brief Register an application.
- *
- * \param app Short name of the application
- * \param execute a function callback to execute the application. It should return
- *                non-zero if the channel needs to be hung up.
- * \param synopsis a short description (one line synopsis) of the application
- * \param description long description with all of the details about the use of 
- *                    the application
- * 
- * This registers an application with Asterisk's internal application list. 
- * \note The individual applications themselves are responsible for registering and unregistering
- *       and unregistering their own CLI commands.
- * 
- * \retval 0 success 
- * \retval -1 failure.
- */
-#define ast_register_application(app, execute, synopsis, description) ast_register_application2(app, execute, synopsis, description, ast_module_info->self)
-
-/*!
- * \brief Register an application.
- *
- * \param app Short name of the application
- * \param execute a function callback to execute the application. It should return
- *                non-zero if the channel needs to be hung up.
- * \param synopsis a short description (one line synopsis) of the application
- * \param description long description with all of the details about the use of
- *                    the application
- * \param mod module this application belongs to
- *
- * This registers an application with Asterisk's internal application list.
- * \note The individual applications themselves are responsible for registering and unregistering
- *       and unregistering their own CLI commands.
- *
- * \retval 0 success
- * \retval -1 failure.
- */
-int ast_register_application2(const char *app, int (*execute)(struct ast_channel *, void *),
-				     const char *synopsis, const char *description, void *mod);
-
-/*! 
- * \brief Unregister an application
- * 
- * \param app name of the application (does not have to be the same string as the one that was registered)
- * 
- * This unregisters an application from Asterisk's internal application list.
- * 
- * \retval 0 success 
- * \retval -1 failure
- */
-int ast_unregister_application(const char *app);
-
-/*! 
  * \brief Uses hint and devicestate callback to get the state of an extension
  *
  * \param c this is not important

Modified: trunk/pbx/pbx_config.c
URL: http://svn.digium.com/view/asterisk/trunk/pbx/pbx_config.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/pbx/pbx_config.c (original)
+++ trunk/pbx/pbx_config.c Wed Nov 21 21:50:04 2007
@@ -35,6 +35,7 @@
 #include "asterisk/module.h"
 #include "asterisk/logger.h"
 #include "asterisk/cli.h"
+#include "asterisk/channel.h"	/* AST_MAX_EXTENSION */
 #include "asterisk/callerid.h"
 
 static char *config = "extensions.conf";

Modified: trunk/res/ael/pval.c
URL: http://svn.digium.com/view/asterisk/trunk/res/ael/pval.c?view=diff&rev=89522&r1=89521&r2=89522
==============================================================================
--- trunk/res/ael/pval.c (original)
+++ trunk/res/ael/pval.c Wed Nov 21 21:50:04 2007
@@ -43,6 +43,7 @@
 #include "asterisk/logger.h"
 #include "asterisk/cli.h"
 #include "asterisk/app.h"
+#include "asterisk/channel.h"
 #include "asterisk/callerid.h"
 #include "asterisk/pval.h"
 #include "asterisk/ael_structs.h"




More information about the svn-commits mailing list