From f9695dc0578484a58cca7bec71810cf7440983d8 Mon Sep 17 00:00:00 2001
From: Corey Farrell <git@cfware.com>
Date: Thu, 30 Mar 2017 19:28:18 -0400
Subject: [PATCH] Forward declare 'struct ast_json' in asterisk.h

The ast_json structure is used in many Asterisk headers and is often the
only part of json.h used.  This adds a forward declaration to asterisk.h
and removes the include of json.h from many headers.  The declaration
has been left in endpoints.h and stasis.h to avoid problems with source
files that use ast_json functions without directly including json.h.

ari.h continues to include json.h as it uses enum
ast_json_encoding_format.

Change-Id: Id766aabce6bed56626d27e8d29f559b5e687b769
---
 include/asterisk.h                  | 1 +
 include/asterisk/channel.h          | 1 -
 include/asterisk/stasis_app.h       | 1 -
 include/asterisk/stasis_channels.h  | 1 -
 include/asterisk/stasis_endpoints.h | 1 -
 include/asterisk/stasis_system.h    | 1 -
 6 files changed, 1 insertion(+), 5 deletions(-)

diff --git a/include/asterisk.h b/include/asterisk.h
index 862fa1fe5f..dc530dfd41 100644
--- a/include/asterisk.h
+++ b/include/asterisk.h
@@ -196,6 +196,7 @@ struct ast_module;
 struct ast_variable;
 struct ast_str;
 struct ast_sched_context;
+struct ast_json;
 
 /* Some handy macros for turning a preprocessor token into (effectively) a quoted string */
 #define __stringify_1(x)	#x
diff --git a/include/asterisk/channel.h b/include/asterisk/channel.h
index 391e58ccf9..32c9c7f67f 100644
--- a/include/asterisk/channel.h
+++ b/include/asterisk/channel.h
@@ -178,7 +178,6 @@ extern "C" {
 #include "asterisk/ccss.h"
 #include "asterisk/framehook.h"
 #include "asterisk/stasis.h"
-#include "asterisk/json.h"
 #include "asterisk/endpoints.h"
 
 #define DATASTORE_INHERIT_FOREVER	INT_MAX
diff --git a/include/asterisk/stasis_app.h b/include/asterisk/stasis_app.h
index e131833a97..ca5c25111c 100644
--- a/include/asterisk/stasis_app.h
+++ b/include/asterisk/stasis_app.h
@@ -51,7 +51,6 @@
  */
 
 #include "asterisk/channel.h"
-#include "asterisk/json.h"
 
 /*! @{ */
 
diff --git a/include/asterisk/stasis_channels.h b/include/asterisk/stasis_channels.h
index deb79b0d06..4843617db0 100644
--- a/include/asterisk/stasis_channels.h
+++ b/include/asterisk/stasis_channels.h
@@ -22,7 +22,6 @@
 
 #include "asterisk/stringfields.h"
 #include "asterisk/stasis.h"
-#include "asterisk/json.h"
 #include "asterisk/channel.h"
 
 /*! \addtogroup StasisTopicsAndMessages
diff --git a/include/asterisk/stasis_endpoints.h b/include/asterisk/stasis_endpoints.h
index 539f270cf2..2fbe5f4b70 100644
--- a/include/asterisk/stasis_endpoints.h
+++ b/include/asterisk/stasis_endpoints.h
@@ -28,7 +28,6 @@
  */
 
 #include "asterisk/endpoints.h"
-#include "asterisk/json.h"
 #include "asterisk/stasis.h"
 #include "asterisk/stasis_cache_pattern.h"
 #include "asterisk/stringfields.h"
diff --git a/include/asterisk/stasis_system.h b/include/asterisk/stasis_system.h
index 274c02e49c..55959063c7 100644
--- a/include/asterisk/stasis_system.h
+++ b/include/asterisk/stasis_system.h
@@ -19,7 +19,6 @@
 #ifndef _ASTERISK_STASIS_SYSTEM_H
 #define _ASTERISK_STASIS_SYSTEM_H
 
-#include "asterisk/json.h"
 #include "asterisk/stasis.h"
 
 /*!
-- 
GitLab