From 523fcc039fa56042d87c1a16b64378bcce2d4b6e Mon Sep 17 00:00:00 2001 From: Jon Evans Date: Thu, 28 Nov 2024 11:27:48 -0500 Subject: [PATCH] API: Move trace macro to utils --- common/CMakeLists.txt | 2 +- common/api/api_plugin.cpp | 1 + common/api/api_plugin_manager.cpp | 3 +-- common/api/api_server.cpp | 2 +- common/api/api_utils.cpp | 37 ++++++++++++++++++------------- eeschema/sch_edit_frame.cpp | 1 + include/api/api_plugin_manager.h | 9 -------- include/api/api_utils.h | 35 ++++++++++++++++++----------- pcbnew/footprint.cpp | 4 ++++ pcbnew/pcb_edit_frame.cpp | 1 + 10 files changed, 54 insertions(+), 41 deletions(-) diff --git a/common/CMakeLists.txt b/common/CMakeLists.txt index 5cca00ac7d..c5a041c63a 100644 --- a/common/CMakeLists.txt +++ b/common/CMakeLists.txt @@ -201,6 +201,7 @@ if( KICAD_IPC_API ) api/api_plugin.cpp api/api_plugin_manager.cpp api/api_server.cpp + api/api_utils.cpp ../scripting/python_manager.cpp ) @@ -666,7 +667,6 @@ set( COMMON_SRCS http_lib/http_lib_settings.cpp api/api_enums.cpp - api/api_utils.cpp ) if( KICAD_IPC_API ) diff --git a/common/api/api_plugin.cpp b/common/api/api_plugin.cpp index 6b4853acba..d7e5bf30b8 100644 --- a/common/api/api_plugin.cpp +++ b/common/api/api_plugin.cpp @@ -27,6 +27,7 @@ #include #include +#include #include diff --git a/common/api/api_plugin_manager.cpp b/common/api/api_plugin_manager.cpp index 9d3647e88b..2ad2caf506 100644 --- a/common/api/api_plugin_manager.cpp +++ b/common/api/api_plugin_manager.cpp @@ -25,14 +25,13 @@ #include #include +#include #include #include #include #include #include -const wxChar* const traceApi = wxT( "KICAD_API" ); - wxDEFINE_EVENT( EDA_EVT_PLUGIN_MANAGER_JOB_FINISHED, wxCommandEvent ); wxDEFINE_EVENT( EDA_EVT_PLUGIN_AVAILABILITY_CHANGED, wxCommandEvent ); diff --git a/common/api/api_server.cpp b/common/api/api_server.cpp index 09f9316d58..ef4df29ca2 100644 --- a/common/api/api_server.cpp +++ b/common/api/api_server.cpp @@ -26,7 +26,7 @@ #include #include -#include // traceApi +#include // traceApi #include #include #include diff --git a/common/api/api_utils.cpp b/common/api/api_utils.cpp index 05e54fa62d..9ce17a65a0 100644 --- a/common/api/api_utils.cpp +++ b/common/api/api_utils.cpp @@ -21,11 +21,15 @@ #include #include #include +#include + +const wxChar* const traceApi = wxT( "KICAD_API" ); + namespace kiapi::common { -std::optional TypeNameFromAny( const google::protobuf::Any& aMessage ) +KICOMMON_API std::optional TypeNameFromAny( const google::protobuf::Any& aMessage ) { static const std::map s_types = { { "type.googleapis.com/kiapi.board.types.Track", PCB_TRACE_T }, @@ -48,17 +52,20 @@ std::optional TypeNameFromAny( const google::protobuf::Any& aMessage ) if( it != s_types.end() ) return it->second; + wxLogTrace( traceApi, wxString::Format( wxS( "Any message type %s is not known" ), + aMessage.type_url() ) ); + return std::nullopt; } -LIB_ID LibIdFromProto( const types::LibraryIdentifier& aId ) +KICOMMON_API LIB_ID LibIdFromProto( const types::LibraryIdentifier& aId ) { return LIB_ID( aId.library_nickname(), aId.entry_name() ); } -types::LibraryIdentifier LibIdToProto( const LIB_ID& aId ) +KICOMMON_API types::LibraryIdentifier LibIdToProto( const LIB_ID& aId ) { types::LibraryIdentifier msg; msg.set_library_nickname( aId.GetLibNickname() ); @@ -67,20 +74,20 @@ types::LibraryIdentifier LibIdToProto( const LIB_ID& aId ) } -void PackVector2( types::Vector2& aOutput, const VECTOR2I& aInput ) +KICOMMON_API void PackVector2( types::Vector2& aOutput, const VECTOR2I& aInput ) { aOutput.set_x_nm( aInput.x ); aOutput.set_y_nm( aInput.y ); } -VECTOR2I UnpackVector2( const types::Vector2& aInput ) +KICOMMON_API VECTOR2I UnpackVector2( const types::Vector2& aInput ) { return VECTOR2I( aInput.x_nm(), aInput.y_nm() ); } -void PackVector3D( types::Vector3D& aOutput, const VECTOR3D& aInput ) +KICOMMON_API void PackVector3D( types::Vector3D& aOutput, const VECTOR3D& aInput ) { aOutput.set_x_nm( aInput.x ); aOutput.set_y_nm( aInput.y ); @@ -88,33 +95,33 @@ void PackVector3D( types::Vector3D& aOutput, const VECTOR3D& aInput ) } -VECTOR3D UnpackVector3D( const types::Vector3D& aInput ) +KICOMMON_API VECTOR3D UnpackVector3D( const types::Vector3D& aInput ) { return VECTOR3D( aInput.x_nm(), aInput.y_nm(), aInput.z_nm() ); } -void PackBox2( types::Box2& aOutput, const BOX2I& aInput ) +KICOMMON_API void PackBox2( types::Box2& aOutput, const BOX2I& aInput ) { PackVector2( *aOutput.mutable_position(), aInput.GetOrigin() ); PackVector2( *aOutput.mutable_size(), aInput.GetSize() ); } -BOX2I UnpackBox2( const types::Box2& aInput ) +KICOMMON_API BOX2I UnpackBox2( const types::Box2& aInput ) { return BOX2I( UnpackVector2( aInput.position() ), UnpackVector2( aInput.size() ) ); } -void PackPolyLine( kiapi::common::types::PolyLine& aOutput, const SHAPE_LINE_CHAIN& aSlc ) +KICOMMON_API void PackPolyLine( types::PolyLine& aOutput, const SHAPE_LINE_CHAIN& aSlc ) { for( int vertex = 0; vertex < aSlc.PointCount(); vertex = aSlc.NextShape( vertex ) ) { if( vertex < 0 ) break; - kiapi::common::types::PolyLineNode* node = aOutput.mutable_nodes()->Add(); + types::PolyLineNode* node = aOutput.mutable_nodes()->Add(); if( aSlc.IsPtOnArc( vertex ) ) { @@ -137,11 +144,11 @@ void PackPolyLine( kiapi::common::types::PolyLine& aOutput, const SHAPE_LINE_CHA } -SHAPE_LINE_CHAIN UnpackPolyLine( const kiapi::common::types::PolyLine& aInput ) +KICOMMON_API SHAPE_LINE_CHAIN UnpackPolyLine( const types::PolyLine& aInput ) { SHAPE_LINE_CHAIN slc; - for( const kiapi::common::types::PolyLineNode& node : aInput.nodes() ) + for( const types::PolyLineNode& node : aInput.nodes() ) { if( node.has_point() ) { @@ -162,7 +169,7 @@ SHAPE_LINE_CHAIN UnpackPolyLine( const kiapi::common::types::PolyLine& aInput ) } -void PackPolySet( types::PolySet& aOutput, const SHAPE_POLY_SET& aInput ) +KICOMMON_API void PackPolySet( types::PolySet& aOutput, const SHAPE_POLY_SET& aInput ) { for( int idx = 0; idx < aInput.OutlineCount(); ++idx ) { @@ -186,7 +193,7 @@ void PackPolySet( types::PolySet& aOutput, const SHAPE_POLY_SET& aInput ) } -SHAPE_POLY_SET UnpackPolySet( const types::PolySet& aInput ) +KICOMMON_API SHAPE_POLY_SET UnpackPolySet( const types::PolySet& aInput ) { SHAPE_POLY_SET sps; diff --git a/eeschema/sch_edit_frame.cpp b/eeschema/sch_edit_frame.cpp index 9bf446bde2..2102644620 100644 --- a/eeschema/sch_edit_frame.cpp +++ b/eeschema/sch_edit_frame.cpp @@ -106,6 +106,7 @@ #ifdef KICAD_IPC_API #include +#include #endif diff --git a/include/api/api_plugin_manager.h b/include/api/api_plugin_manager.h index 1194f1b294..053e577e2f 100644 --- a/include/api/api_plugin_manager.h +++ b/include/api/api_plugin_manager.h @@ -27,15 +27,6 @@ #include #include -/** - * Flag to enable debug output related to the API plugin system - * - * Use "KICAD_API" to enable. - * - * @ingroup trace_env_vars - */ -extern const KICOMMON_API wxChar* const traceApi; - /// Internal event used for handling async tasks wxDECLARE_EVENT( EDA_EVT_PLUGIN_MANAGER_JOB_FINISHED, wxCommandEvent ); diff --git a/include/api/api_utils.h b/include/api/api_utils.h index 7a64a1a1ab..8cd4897113 100644 --- a/include/api/api_utils.h +++ b/include/api/api_utils.h @@ -34,34 +34,43 @@ class SHAPE_LINE_CHAIN; +/** + * Flag to enable debug output related to the IPC API and its plugin system + * + * Use "KICAD_API" to enable. + * + * @ingroup trace_env_vars + */ +extern const KICOMMON_API wxChar* const traceApi; + namespace kiapi::common { -std::optional TypeNameFromAny( const google::protobuf::Any& aMessage ); +KICOMMON_API std::optional TypeNameFromAny( const google::protobuf::Any& aMessage ); -LIB_ID LibIdFromProto( const types::LibraryIdentifier& aId ); +KICOMMON_API LIB_ID LibIdFromProto( const types::LibraryIdentifier& aId ); -types::LibraryIdentifier LibIdToProto( const LIB_ID& aId ); +KICOMMON_API types::LibraryIdentifier LibIdToProto( const LIB_ID& aId ); -void PackVector2( types::Vector2& aOutput, const VECTOR2I& aInput ); +KICOMMON_API void PackVector2( types::Vector2& aOutput, const VECTOR2I& aInput ); -VECTOR2I UnpackVector2( const types::Vector2& aInput ); +KICOMMON_API VECTOR2I UnpackVector2( const types::Vector2& aInput ); -void PackVector3D( types::Vector3D& aOutput, const VECTOR3D& aInput ); +KICOMMON_API void PackVector3D( types::Vector3D& aOutput, const VECTOR3D& aInput ); -VECTOR3D UnpackVector3D( const types::Vector3D& aInput ); +KICOMMON_API VECTOR3D UnpackVector3D( const types::Vector3D& aInput ); -void PackBox2( types::Box2& aOutput, const BOX2I& aInput ); +KICOMMON_API void PackBox2( types::Box2& aOutput, const BOX2I& aInput ); -BOX2I UnpackBox2( const types::Box2& aInput ); +KICOMMON_API BOX2I UnpackBox2( const types::Box2& aInput ); -void PackPolyLine( kiapi::common::types::PolyLine& aOutput, const SHAPE_LINE_CHAIN& aSlc ); +KICOMMON_API void PackPolyLine( types::PolyLine& aOutput, const SHAPE_LINE_CHAIN& aSlc ); -SHAPE_LINE_CHAIN UnpackPolyLine( const kiapi::common::types::PolyLine& aInput ); +KICOMMON_API SHAPE_LINE_CHAIN UnpackPolyLine( const types::PolyLine& aInput ); -void PackPolySet( kiapi::common::types::PolySet& aOutput, const SHAPE_POLY_SET& aInput ); +KICOMMON_API void PackPolySet( types::PolySet& aOutput, const SHAPE_POLY_SET& aInput ); -SHAPE_POLY_SET UnpackPolySet( const kiapi::common::types::PolySet& aInput ); +KICOMMON_API SHAPE_POLY_SET UnpackPolySet( const types::PolySet& aInput ); } // namespace kiapi::common diff --git a/pcbnew/footprint.cpp b/pcbnew/footprint.cpp index f487535d3d..d8b38827d3 100644 --- a/pcbnew/footprint.cpp +++ b/pcbnew/footprint.cpp @@ -63,6 +63,7 @@ #include #include #include +#include FOOTPRINT::FOOTPRINT( BOARD* parent ) : @@ -533,6 +534,9 @@ bool FOOTPRINT::Deserialize( const google::protobuf::Any &aContainer ) } else { + wxLogTrace( traceApi, wxString::Format( wxS( "Attempting to unpack unknown type %s " + "from footprint message, skipping" ), + itemMsg.type_url() ) ); continue; } } diff --git a/pcbnew/pcb_edit_frame.cpp b/pcbnew/pcb_edit_frame.cpp index 08cfab019e..ff1e498bf7 100644 --- a/pcbnew/pcb_edit_frame.cpp +++ b/pcbnew/pcb_edit_frame.cpp @@ -121,6 +121,7 @@ #include #include #include +#include #endif #include