From dd5612fbee4933ce2f18e8bfc85d0f04b68b53de Mon Sep 17 00:00:00 2001 From: PJ Reiniger Date: Fri, 22 Sep 2023 16:01:27 -0400 Subject: [PATCH] [json] Add forward definition header (#5676) --- apriltag/src/main/native/include/frc/apriltag/AprilTag.h | 5 +---- .../native/include/frc/apriltag/AprilTagFieldLayout.h | 5 +---- cscore/src/main/native/cpp/PropertyContainer.h | 2 +- cscore/src/main/native/cpp/SinkImpl.h | 5 +---- cscore/src/main/native/cpp/SourceImpl.h | 5 +---- cscore/src/main/native/include/cscore_cpp.h | 5 +---- glass/src/lib/native/include/glass/Storage.h | 5 +---- ntcore/src/generate/include/networktables/Topic.h.jinja | 3 ++- ntcore/src/main/native/cpp/net/NetworkInterface.h | 6 ++---- ntcore/src/main/native/cpp/net/WireDecoder.h | 3 ++- ntcore/src/main/native/cpp/net/WireEncoder.h | 3 ++- ntcore/src/main/native/include/networktables/Topic.h | 6 ++---- ntcore/src/main/native/include/networktables/UnitTopic.h | 6 ++---- ntcore/src/main/native/include/ntcore_cpp.h | 3 ++- .../halsim_ws_client/src/main/native/include/HALSimWS.h | 5 +---- .../src/main/native/include/HALSimWSClientConnection.h | 5 +---- .../main/native/include/HALSimBaseWebSocketConnection.h | 2 +- .../src/main/native/include/WSHalProviders.h | 2 +- .../src/main/native/include/HALSimHttpConnection.h | 5 +---- .../halsim_ws_server/src/main/native/include/HALSimWeb.h | 5 +---- simulation/halsim_xrp/src/main/native/cpp/XRP.cpp | 1 + .../halsim_xrp/src/main/native/include/HALSimXRP.h | 5 +---- simulation/halsim_xrp/src/main/native/include/XRP.h | 2 +- wpimath/src/main/native/include/frc/geometry/Pose2d.h | 5 +---- wpimath/src/main/native/include/frc/geometry/Pose3d.h | 5 +---- .../src/main/native/include/frc/geometry/Quaternion.h | 5 +---- .../src/main/native/include/frc/geometry/Rotation2d.h | 5 +---- .../src/main/native/include/frc/geometry/Rotation3d.h | 5 +---- .../src/main/native/include/frc/geometry/Translation2d.h | 5 +---- .../src/main/native/include/frc/geometry/Translation3d.h | 5 +---- .../src/main/native/include/frc/trajectory/Trajectory.h | 5 +---- .../main/native/thirdparty/json/include/wpi/json_fwd.h | 9 +++++++++ 32 files changed, 47 insertions(+), 96 deletions(-) create mode 100644 wpiutil/src/main/native/thirdparty/json/include/wpi/json_fwd.h diff --git a/apriltag/src/main/native/include/frc/apriltag/AprilTag.h b/apriltag/src/main/native/include/frc/apriltag/AprilTag.h index fc5723185c..ba2453020f 100644 --- a/apriltag/src/main/native/include/frc/apriltag/AprilTag.h +++ b/apriltag/src/main/native/include/frc/apriltag/AprilTag.h @@ -5,13 +5,10 @@ #pragma once #include +#include #include "frc/geometry/Pose3d.h" -namespace wpi { -class json; -} // namespace wpi - namespace frc { struct WPILIB_DLLEXPORT AprilTag { diff --git a/apriltag/src/main/native/include/frc/apriltag/AprilTagFieldLayout.h b/apriltag/src/main/native/include/frc/apriltag/AprilTagFieldLayout.h index 83082c88ff..dce9bedc07 100644 --- a/apriltag/src/main/native/include/frc/apriltag/AprilTagFieldLayout.h +++ b/apriltag/src/main/native/include/frc/apriltag/AprilTagFieldLayout.h @@ -11,14 +11,11 @@ #include #include +#include #include "frc/apriltag/AprilTag.h" #include "frc/geometry/Pose3d.h" -namespace wpi { -class json; -} // namespace wpi - namespace frc { /** * Class for representing a layout of AprilTags on a field and reading them from diff --git a/cscore/src/main/native/cpp/PropertyContainer.h b/cscore/src/main/native/cpp/PropertyContainer.h index 1f4ffc34bc..99d030bfc6 100644 --- a/cscore/src/main/native/cpp/PropertyContainer.h +++ b/cscore/src/main/native/cpp/PropertyContainer.h @@ -14,6 +14,7 @@ #include #include +#include #include #include "PropertyImpl.h" @@ -23,7 +24,6 @@ namespace wpi { class Logger; template class SmallVectorImpl; -class json; } // namespace wpi namespace cs { diff --git a/cscore/src/main/native/cpp/SinkImpl.h b/cscore/src/main/native/cpp/SinkImpl.h index aa37d61230..fae1967199 100644 --- a/cscore/src/main/native/cpp/SinkImpl.h +++ b/cscore/src/main/native/cpp/SinkImpl.h @@ -10,14 +10,11 @@ #include #include +#include #include #include "SourceImpl.h" -namespace wpi { -class json; -} // namespace wpi - namespace cs { class Frame; diff --git a/cscore/src/main/native/cpp/SourceImpl.h b/cscore/src/main/native/cpp/SourceImpl.h index 5df9ad0608..840fb5d7ed 100644 --- a/cscore/src/main/native/cpp/SourceImpl.h +++ b/cscore/src/main/native/cpp/SourceImpl.h @@ -14,6 +14,7 @@ #include #include +#include #include #include "Frame.h" @@ -22,10 +23,6 @@ #include "PropertyContainer.h" #include "cscore_cpp.h" -namespace wpi { -class json; -} // namespace wpi - namespace cs { class Notifier; diff --git a/cscore/src/main/native/include/cscore_cpp.h b/cscore/src/main/native/include/cscore_cpp.h index 95f3b92697..72c37f8b07 100644 --- a/cscore/src/main/native/include/cscore_cpp.h +++ b/cscore/src/main/native/include/cscore_cpp.h @@ -14,6 +14,7 @@ #include #include +#include #include "cscore_c.h" @@ -23,10 +24,6 @@ #pragma warning(disable : 26495) #endif -namespace wpi { -class json; -} // namespace wpi - /** CameraServer (cscore) namespace */ namespace cs { diff --git a/glass/src/lib/native/include/glass/Storage.h b/glass/src/lib/native/include/glass/Storage.h index 7ebfa6d9b2..bdb2b3d083 100644 --- a/glass/src/lib/native/include/glass/Storage.h +++ b/glass/src/lib/native/include/glass/Storage.h @@ -16,10 +16,7 @@ #include #include - -namespace wpi { -class json; -} // namespace wpi +#include namespace glass { diff --git a/ntcore/src/generate/include/networktables/Topic.h.jinja b/ntcore/src/generate/include/networktables/Topic.h.jinja index 84e80ec59b..ec2a915ee6 100644 --- a/ntcore/src/generate/include/networktables/Topic.h.jinja +++ b/ntcore/src/generate/include/networktables/Topic.h.jinja @@ -11,12 +11,13 @@ #include #include +#include + #include "networktables/Topic.h" namespace wpi { template class SmallVectorImpl; -class json; } // namespace wpi namespace nt { diff --git a/ntcore/src/main/native/cpp/net/NetworkInterface.h b/ntcore/src/main/native/cpp/net/NetworkInterface.h index 3b2e7dd812..4c9be543ce 100644 --- a/ntcore/src/main/native/cpp/net/NetworkInterface.h +++ b/ntcore/src/main/native/cpp/net/NetworkInterface.h @@ -8,11 +8,9 @@ #include #include -#include "ntcore_cpp.h" +#include -namespace wpi { -class json; -} // namespace wpi +#include "ntcore_cpp.h" namespace nt { class PubSubOptionsImpl; diff --git a/ntcore/src/main/native/cpp/net/WireDecoder.h b/ntcore/src/main/native/cpp/net/WireDecoder.h index 128dff2fb8..baee7241d0 100644 --- a/ntcore/src/main/native/cpp/net/WireDecoder.h +++ b/ntcore/src/main/native/cpp/net/WireDecoder.h @@ -11,9 +11,10 @@ #include #include +#include + namespace wpi { class Logger; -class json; } // namespace wpi namespace nt { diff --git a/ntcore/src/main/native/cpp/net/WireEncoder.h b/ntcore/src/main/native/cpp/net/WireEncoder.h index d0a04cb0b9..00d8e123c6 100644 --- a/ntcore/src/main/native/cpp/net/WireEncoder.h +++ b/ntcore/src/main/native/cpp/net/WireEncoder.h @@ -9,8 +9,9 @@ #include #include +#include + namespace wpi { -class json; class raw_ostream; } // namespace wpi diff --git a/ntcore/src/main/native/include/networktables/Topic.h b/ntcore/src/main/native/include/networktables/Topic.h index c33ce1795a..d623fbdc34 100644 --- a/ntcore/src/main/native/include/networktables/Topic.h +++ b/ntcore/src/main/native/include/networktables/Topic.h @@ -11,14 +11,12 @@ #include #include +#include + #include "networktables/NetworkTableType.h" #include "ntcore_c.h" #include "ntcore_cpp.h" -namespace wpi { -class json; -} // namespace wpi - namespace nt { class GenericEntry; diff --git a/ntcore/src/main/native/include/networktables/UnitTopic.h b/ntcore/src/main/native/include/networktables/UnitTopic.h index febc2d1919..eb6ad6dcad 100644 --- a/ntcore/src/main/native/include/networktables/UnitTopic.h +++ b/ntcore/src/main/native/include/networktables/UnitTopic.h @@ -10,13 +10,11 @@ #include #include +#include + #include "networktables/Topic.h" #include "ntcore_cpp.h" -namespace wpi { -class json; -} // namespace wpi - namespace nt { template diff --git a/ntcore/src/main/native/include/ntcore_cpp.h b/ntcore/src/main/native/include/ntcore_cpp.h index 5cb77a6916..7676b53416 100644 --- a/ntcore/src/main/native/include/ntcore_cpp.h +++ b/ntcore/src/main/native/include/ntcore_cpp.h @@ -17,6 +17,8 @@ #include #include +#include + #include "networktables/NetworkTableValue.h" #include "ntcore_c.h" #include "ntcore_cpp_types.h" @@ -24,7 +26,6 @@ namespace wpi { template class SmallVectorImpl; -class json; } // namespace wpi namespace wpi::log { diff --git a/simulation/halsim_ws_client/src/main/native/include/HALSimWS.h b/simulation/halsim_ws_client/src/main/native/include/HALSimWS.h index 9be891967f..1fde1d74f8 100644 --- a/simulation/halsim_ws_client/src/main/native/include/HALSimWS.h +++ b/simulation/halsim_ws_client/src/main/native/include/HALSimWS.h @@ -12,15 +12,12 @@ #include #include #include +#include #include #include #include #include -namespace wpi { -class json; -} // namespace wpi - namespace wpilibws { class HALSimWSClientConnection; diff --git a/simulation/halsim_ws_client/src/main/native/include/HALSimWSClientConnection.h b/simulation/halsim_ws_client/src/main/native/include/HALSimWSClientConnection.h index b712e70897..005813f8d7 100644 --- a/simulation/halsim_ws_client/src/main/native/include/HALSimWSClientConnection.h +++ b/simulation/halsim_ws_client/src/main/native/include/HALSimWSClientConnection.h @@ -8,6 +8,7 @@ #include #include +#include #include #include #include @@ -15,10 +16,6 @@ #include "HALSimWS.h" -namespace wpi { -class json; -} // namespace wpi - namespace wpilibws { class HALSimWS; diff --git a/simulation/halsim_ws_core/src/main/native/include/HALSimBaseWebSocketConnection.h b/simulation/halsim_ws_core/src/main/native/include/HALSimBaseWebSocketConnection.h index bcf29c224c..5a699c8786 100644 --- a/simulation/halsim_ws_core/src/main/native/include/HALSimBaseWebSocketConnection.h +++ b/simulation/halsim_ws_core/src/main/native/include/HALSimBaseWebSocketConnection.h @@ -6,7 +6,7 @@ #include -#include +#include namespace wpilibws { diff --git a/simulation/halsim_ws_core/src/main/native/include/WSHalProviders.h b/simulation/halsim_ws_core/src/main/native/include/WSHalProviders.h index e1bc1f85ac..849edebc08 100644 --- a/simulation/halsim_ws_core/src/main/native/include/WSHalProviders.h +++ b/simulation/halsim_ws_core/src/main/native/include/WSHalProviders.h @@ -10,7 +10,7 @@ #include #include -#include +#include #include #include "WSBaseProvider.h" diff --git a/simulation/halsim_ws_server/src/main/native/include/HALSimHttpConnection.h b/simulation/halsim_ws_server/src/main/native/include/HALSimHttpConnection.h index 91cfb61dfc..7073256de6 100644 --- a/simulation/halsim_ws_server/src/main/native/include/HALSimHttpConnection.h +++ b/simulation/halsim_ws_server/src/main/native/include/HALSimHttpConnection.h @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -17,10 +18,6 @@ #include "HALSimWeb.h" -namespace wpi { -class json; -} // namespace wpi - namespace wpilibws { class HALSimHttpConnection diff --git a/simulation/halsim_ws_server/src/main/native/include/HALSimWeb.h b/simulation/halsim_ws_server/src/main/native/include/HALSimWeb.h index 6f0efaf632..fbafc7d60a 100644 --- a/simulation/halsim_ws_server/src/main/native/include/HALSimWeb.h +++ b/simulation/halsim_ws_server/src/main/native/include/HALSimWeb.h @@ -13,14 +13,11 @@ #include #include #include +#include #include #include #include -namespace wpi { -class json; -} // namespace wpi - namespace wpilibws { class HALSimWeb : public std::enable_shared_from_this { diff --git a/simulation/halsim_xrp/src/main/native/cpp/XRP.cpp b/simulation/halsim_xrp/src/main/native/cpp/XRP.cpp index a0e61c2e20..ae78469e42 100644 --- a/simulation/halsim_xrp/src/main/native/cpp/XRP.cpp +++ b/simulation/halsim_xrp/src/main/native/cpp/XRP.cpp @@ -7,6 +7,7 @@ #include #include #include +#include using namespace wpilibxrp; diff --git a/simulation/halsim_xrp/src/main/native/include/HALSimXRP.h b/simulation/halsim_xrp/src/main/native/include/HALSimXRP.h index df2114f411..b703be25f2 100644 --- a/simulation/halsim_xrp/src/main/native/include/HALSimXRP.h +++ b/simulation/halsim_xrp/src/main/native/include/HALSimXRP.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -20,10 +21,6 @@ #include "XRP.h" -namespace wpi { -class json; -} // namespace wpi - namespace wpilibxrp { // This masquerades as a "WebSocket" so that we can reuse the diff --git a/simulation/halsim_xrp/src/main/native/include/XRP.h b/simulation/halsim_xrp/src/main/native/include/XRP.h index c9a0377859..2eaf2b0aa6 100644 --- a/simulation/halsim_xrp/src/main/native/include/XRP.h +++ b/simulation/halsim_xrp/src/main/native/include/XRP.h @@ -9,7 +9,7 @@ #include #include -#include +#include #include #define XRP_TAG_MOTOR 0x12 diff --git a/wpimath/src/main/native/include/frc/geometry/Pose2d.h b/wpimath/src/main/native/include/frc/geometry/Pose2d.h index b890a9b47e..304149d209 100644 --- a/wpimath/src/main/native/include/frc/geometry/Pose2d.h +++ b/wpimath/src/main/native/include/frc/geometry/Pose2d.h @@ -8,15 +8,12 @@ #include #include +#include #include "frc/geometry/Transform2d.h" #include "frc/geometry/Translation2d.h" #include "frc/geometry/Twist2d.h" -namespace wpi { -class json; -} // namespace wpi - namespace frc { /** diff --git a/wpimath/src/main/native/include/frc/geometry/Pose3d.h b/wpimath/src/main/native/include/frc/geometry/Pose3d.h index 78fd3e886a..7369563631 100644 --- a/wpimath/src/main/native/include/frc/geometry/Pose3d.h +++ b/wpimath/src/main/native/include/frc/geometry/Pose3d.h @@ -5,16 +5,13 @@ #pragma once #include +#include #include "frc/geometry/Pose2d.h" #include "frc/geometry/Transform3d.h" #include "frc/geometry/Translation3d.h" #include "frc/geometry/Twist3d.h" -namespace wpi { -class json; -} // namespace wpi - namespace frc { /** diff --git a/wpimath/src/main/native/include/frc/geometry/Quaternion.h b/wpimath/src/main/native/include/frc/geometry/Quaternion.h index a41e5b80bf..13ecbab705 100644 --- a/wpimath/src/main/native/include/frc/geometry/Quaternion.h +++ b/wpimath/src/main/native/include/frc/geometry/Quaternion.h @@ -6,10 +6,7 @@ #include #include - -namespace wpi { -class json; -} // namespace wpi +#include namespace frc { diff --git a/wpimath/src/main/native/include/frc/geometry/Rotation2d.h b/wpimath/src/main/native/include/frc/geometry/Rotation2d.h index 17201189cd..39416c615a 100644 --- a/wpimath/src/main/native/include/frc/geometry/Rotation2d.h +++ b/wpimath/src/main/native/include/frc/geometry/Rotation2d.h @@ -5,13 +5,10 @@ #pragma once #include +#include #include "units/angle.h" -namespace wpi { -class json; -} // namespace wpi - namespace frc { /** diff --git a/wpimath/src/main/native/include/frc/geometry/Rotation3d.h b/wpimath/src/main/native/include/frc/geometry/Rotation3d.h index 887f01a970..607fd56a25 100644 --- a/wpimath/src/main/native/include/frc/geometry/Rotation3d.h +++ b/wpimath/src/main/native/include/frc/geometry/Rotation3d.h @@ -6,15 +6,12 @@ #include #include +#include #include "frc/geometry/Quaternion.h" #include "frc/geometry/Rotation2d.h" #include "units/angle.h" -namespace wpi { -class json; -} // namespace wpi - namespace frc { /** diff --git a/wpimath/src/main/native/include/frc/geometry/Translation2d.h b/wpimath/src/main/native/include/frc/geometry/Translation2d.h index 9d64be455a..851e7c7275 100644 --- a/wpimath/src/main/native/include/frc/geometry/Translation2d.h +++ b/wpimath/src/main/native/include/frc/geometry/Translation2d.h @@ -8,14 +8,11 @@ #include #include +#include #include "frc/geometry/Rotation2d.h" #include "units/length.h" -namespace wpi { -class json; -} // namespace wpi - namespace frc { /** diff --git a/wpimath/src/main/native/include/frc/geometry/Translation3d.h b/wpimath/src/main/native/include/frc/geometry/Translation3d.h index 455c37ccc5..fb126af23a 100644 --- a/wpimath/src/main/native/include/frc/geometry/Translation3d.h +++ b/wpimath/src/main/native/include/frc/geometry/Translation3d.h @@ -5,15 +5,12 @@ #pragma once #include +#include #include "frc/geometry/Rotation3d.h" #include "frc/geometry/Translation2d.h" #include "units/length.h" -namespace wpi { -class json; -} // namespace wpi - namespace frc { /** diff --git a/wpimath/src/main/native/include/frc/trajectory/Trajectory.h b/wpimath/src/main/native/include/frc/trajectory/Trajectory.h index 58264a2d63..ca97593a1a 100644 --- a/wpimath/src/main/native/include/frc/trajectory/Trajectory.h +++ b/wpimath/src/main/native/include/frc/trajectory/Trajectory.h @@ -7,6 +7,7 @@ #include #include +#include #include "frc/geometry/Pose2d.h" #include "frc/geometry/Transform2d.h" @@ -15,10 +16,6 @@ #include "units/time.h" #include "units/velocity.h" -namespace wpi { -class json; -} // namespace wpi - namespace frc { /** * Represents a time-parameterized trajectory. The trajectory contains of diff --git a/wpiutil/src/main/native/thirdparty/json/include/wpi/json_fwd.h b/wpiutil/src/main/native/thirdparty/json/include/wpi/json_fwd.h new file mode 100644 index 0000000000..22347d7549 --- /dev/null +++ b/wpiutil/src/main/native/thirdparty/json/include/wpi/json_fwd.h @@ -0,0 +1,9 @@ +// Copyright (c) FIRST and other WPILib contributors. +// Open Source Software; you can modify and/or share it under the terms of +// the WPILib BSD license file in the root directory of this project. + +#pragma once + +namespace wpi { +class json; +} // namespace wpi