Remove forward declarations in environment.h
These forward declaration complicates applying include cleaner tool
Bug: webrtc:42226242
Change-Id: Iffa3f9a8a38d774bd4565078552892c58845d4f8
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/381404
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Reviewed-by: Harald Alvestrand <hta@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#44172}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index 1af8603..6825012 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -366,7 +366,7 @@
"crypto:options",
"metronome",
"neteq:neteq_api",
- "rtc_event_log",
+ "rtc_event_log:rtc_event_log_factory_interface",
"task_queue",
"transport:bandwidth_estimation_settings",
"transport:bitrate_settings",
diff --git a/api/environment/BUILD.gn b/api/environment/BUILD.gn
index 4db7c46..1a21672 100644
--- a/api/environment/BUILD.gn
+++ b/api/environment/BUILD.gn
@@ -12,9 +12,13 @@
visibility = [ "*" ]
sources = [ "environment.h" ]
deps = [
+ "..:field_trials_view",
"..:refcountedbase",
"..:scoped_refptr",
"../../rtc_base/system:rtc_export",
+ "../../system_wrappers",
+ "../rtc_event_log",
+ "../task_queue",
"//third_party/abseil-cpp/absl/base:nullability",
]
}
diff --git a/api/environment/DEPS b/api/environment/DEPS
new file mode 100644
index 0000000..7050f40
--- /dev/null
+++ b/api/environment/DEPS
@@ -0,0 +1,3 @@
+include_rules = [
+ "+system_wrappers/include/clock.h",
+]
diff --git a/api/environment/environment.h b/api/environment/environment.h
index d86b7ae..20547b9 100644
--- a/api/environment/environment.h
+++ b/api/environment/environment.h
@@ -22,20 +22,15 @@
#include <utility>
#include "absl/base/nullability.h"
+#include "api/field_trials_view.h"
#include "api/ref_counted_base.h"
+#include "api/rtc_event_log/rtc_event_log.h"
#include "api/scoped_refptr.h"
+#include "api/task_queue/task_queue_factory.h"
#include "rtc_base/system/rtc_export.h"
+#include "system_wrappers/include/clock.h"
namespace webrtc {
-
-// These classes are forward declared to keep Environment dependencies
-// lightweight. Users who need any of the types below should include their
-// header explicitely.
-class Clock;
-class TaskQueueFactory;
-class FieldTrialsView;
-class RtcEventLog;
-
// Contains references to WebRTC utilities. Object of this class should be
// passed as a construction parameter and saved by value in each class that
// needs it. Most classes shouldn't create a new instance of the `Environment`,
diff --git a/api/environment/environment_factory.h b/api/environment/environment_factory.h
index 66e5137..9a06ca7 100644
--- a/api/environment/environment_factory.h
+++ b/api/environment/environment_factory.h
@@ -16,20 +16,15 @@
#include "absl/base/nullability.h"
#include "api/environment/environment.h"
+#include "api/field_trials_view.h"
#include "api/ref_counted_base.h"
+#include "api/rtc_event_log/rtc_event_log.h"
#include "api/scoped_refptr.h"
+#include "api/task_queue/task_queue_factory.h"
#include "rtc_base/system/rtc_export.h"
+#include "system_wrappers/include/clock.h"
namespace webrtc {
-
-// These classes are forward declared to reduce amount of headers exposed
-// through api header.
-// IWYU pragma: begin_keep
-class Clock;
-class TaskQueueFactory;
-class FieldTrialsView;
-class RtcEventLog;
-// IWYU pragma: end_keep
// Constructs `Environment`.
// Individual utilities are provided using one of the `Set` functions.
// `Set` functions do nothing when nullptr value is passed.
diff --git a/api/rtc_event_log/BUILD.gn b/api/rtc_event_log/BUILD.gn
index 7f241de..fcf5e7e 100644
--- a/api/rtc_event_log/BUILD.gn
+++ b/api/rtc_event_log/BUILD.gn
@@ -15,15 +15,20 @@
"rtc_event.h",
"rtc_event_log.cc",
"rtc_event_log.h",
- "rtc_event_log_factory_interface.h",
]
deps = [
"..:libjingle_logging_api",
- "../../rtc_base:checks",
"../../rtc_base:timeutils",
+ ]
+}
+
+rtc_source_set("rtc_event_log_factory_interface") {
+ visibility = [ "*" ]
+ sources = [ "rtc_event_log_factory_interface.h" ]
+ deps = [
+ ":rtc_event_log",
"../environment",
- "../task_queue",
"//third_party/abseil-cpp/absl/base:nullability",
]
}
@@ -37,6 +42,7 @@
deps = [
":rtc_event_log",
+ ":rtc_event_log_factory_interface",
"..:field_trials_view",
"../../rtc_base/system:rtc_export",
"../environment",
diff --git a/api/test/pclf/BUILD.gn b/api/test/pclf/BUILD.gn
index 83e7ebf..39748a8 100644
--- a/api/test/pclf/BUILD.gn
+++ b/api/test/pclf/BUILD.gn
@@ -55,7 +55,7 @@
"../../audio:audio_processing",
"../../audio_codecs:audio_codecs_api",
"../../neteq:neteq_api",
- "../../rtc_event_log",
+ "../../rtc_event_log:rtc_event_log_factory_interface",
"../../transport:bitrate_settings",
"../../transport:network_control",
"../../units:time_delta",
@@ -91,7 +91,7 @@
"../../audio:audio_processing",
"../../audio_codecs:audio_codecs_api",
"../../neteq:neteq_api",
- "../../rtc_event_log",
+ "../../rtc_event_log:rtc_event_log_factory_interface",
"../../transport:bitrate_settings",
"../../transport:network_control",
"../../video_codecs:video_codecs_api",
diff --git a/logging/BUILD.gn b/logging/BUILD.gn
index d91a446..c87d3b2 100644
--- a/logging/BUILD.gn
+++ b/logging/BUILD.gn
@@ -472,6 +472,7 @@
"../api:libjingle_logging_api",
"../api/environment",
"../api/rtc_event_log",
+ "../api/rtc_event_log:rtc_event_log_factory_interface",
"../rtc_base:macromagic",
"../rtc_base/synchronization:mutex",
"//third_party/abseil-cpp/absl/base:nullability",
diff --git a/pc/BUILD.gn b/pc/BUILD.gn
index b96a895..dd4ec75 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -1561,7 +1561,7 @@
"../api/environment:environment_factory",
"../api/metronome",
"../api/neteq:neteq_api",
- "../api/rtc_event_log:rtc_event_log",
+ "../api/rtc_event_log:rtc_event_log_factory_interface",
"../api/transport:bitrate_settings",
"../api/transport:network_control",
"../api/transport:sctp_transport_factory_interface",