|
KiCad PCB EDA Suite
|
Common base class for API handlers that operate on a BOARD via a BOARD_CONTEXT. More...
#include <api_handler_board.h>
Public Member Functions | |
| API_HANDLER_BOARD (std::shared_ptr< BOARD_CONTEXT > aContext, EDA_BASE_FRAME *aFrame=nullptr) | |
| API_RESULT | Handle (ApiRequest &aMsg) |
| Attempt to handle the given API request, if a handler exists in this class for the message. | |
| virtual void | onNetSettingsChanged () |
| Called on all registered handlers after project net settings (netclasses or netclass assignments) have been changed via the API. | |
| void | requestNetSettingsNotification () |
| bool | clearNetSettingsNotification () |
| Returns true if the notification had been requested at the time of the call. | |
| void | setApiServer (KICAD_API_SERVER *aServer) |
| Set by KICAD_API_SERVER::RegisterHandler; null when the handler is not registered. | |
| KICAD_API_SERVER * | apiServer () const |
Protected Types | |
| typedef std::function< HANDLER_RESULT< ApiResponse >(ApiRequest &)> | REQUEST_HANDLER |
| A handler for outer messages (envelopes) that will unpack to inner messages and call a specific handler function. | |
Protected Member Functions | |
| std::unique_ptr< COMMIT > | createCommit () override |
| Override this to create an appropriate COMMIT subclass for the frame in question. | |
| void | deleteItemsInternal (std::map< KIID, ItemDeletionStatus > &aItemsToDelete, const std::string &aClientName) override |
| std::optional< EDA_ITEM * > | getItemFromDocument (const DocumentSpecifier &aDocument, const KIID &aId) override |
| void | pushCurrentCommit (const std::string &aClientName, const wxString &aMessage) override |
| HANDLER_RESULT< types::ItemRequestStatus > | handleCreateUpdateItemsInternal (bool aCreate, const std::string &aClientName, const types::ItemHeader &aHeader, const google::protobuf::RepeatedPtrField< google::protobuf::Any > &aItems, std::function< void(commands::ItemStatus, google::protobuf::Any)> aItemHandler) override |
| BOARD_CONTEXT * | context () const |
| BOARD * | board () const |
| PROJECT & | project () const |
| TOOL_MANAGER * | toolManager () const |
| std::optional< BOARD_ITEM * > | getItemById (const KIID &aId) const |
| virtual BOARD_ITEM_CONTAINER * | getDefaultContainer () |
| std::optional< ApiResponseStatus > | checkForHeadless (const std::string &aCommandName) const |
| GENERATOR_TOOL * | ensureGeneratorTool () const |
| Creates the generator tool if needed (e.g. in headless mode); returns it if available. | |
| void | regenerateGenerators (GENERATOR_TOOL *aTool, BOARD_COMMIT *aCommit, const std::vector< PCB_GENERATOR * > &aGenerators, std::function< void(const KIID &, commands::ItemStatus)> aResultHandler) const |
| std::vector< KICAD_T > | parseRequestedItemTypes (const google::protobuf::RepeatedField< int > &aTypes) |
| HANDLER_RESULT< std::optional< KIID > > | validateItemHeaderDocument (const kiapi::common::types::ItemHeader &aHeader) |
| If the header is valid, returns the item container. | |
| HANDLER_RESULT< bool > | validateDocument (const DocumentSpecifier &aDocument) |
| virtual std::optional< ApiResponseStatus > | checkForBusy () |
| Checks if the editor can accept commands. | |
| HANDLER_RESULT< commands::BeginCommitResponse > | handleBeginCommit (const HANDLER_CONTEXT< commands::BeginCommit > &aCtx) |
| HANDLER_RESULT< commands::EndCommitResponse > | handleEndCommit (const HANDLER_CONTEXT< commands::EndCommit > &aCtx) |
| COMMIT * | getCurrentCommit (const std::string &aClientName) |
| HANDLER_RESULT< commands::CreateItemsResponse > | handleCreateItems (const HANDLER_CONTEXT< commands::CreateItems > &aCtx) |
| HANDLER_RESULT< commands::UpdateItemsResponse > | handleUpdateItems (const HANDLER_CONTEXT< commands::UpdateItems > &aCtx) |
| HANDLER_RESULT< commands::DeleteItemsResponse > | handleDeleteItems (const HANDLER_CONTEXT< commands::DeleteItems > &aCtx) |
| HANDLER_RESULT< commands::HitTestResponse > | handleHitTest (const HANDLER_CONTEXT< commands::HitTest > &aCtx) |
| virtual HANDLER_RESULT< commands::GetDocumentModifiedStateResponse > | handleGetDocumentModifiedState (const HANDLER_CONTEXT< commands::GetDocumentModifiedState > &aCtx) |
| HANDLER_RESULT< types::TitleBlockInfo > | handleGetTitleBlockInfo (const HANDLER_CONTEXT< commands::GetTitleBlockInfo > &aCtx) |
| HANDLER_RESULT< google::protobuf::Empty > | handleSetTitleBlockInfo (const HANDLER_CONTEXT< commands::SetTitleBlockInfo > &aCtx) |
| HANDLER_RESULT< types::PageSettings > | handleGetPageSettings (const HANDLER_CONTEXT< commands::GetPageSettings > &aCtx) |
| HANDLER_RESULT< types::PageSettings > | handleSetPageSettings (const HANDLER_CONTEXT< commands::SetPageSettings > &aCtx) |
| virtual types::DocumentType | thisDocumentType () const =0 |
| Override this to specify which document type this editor handles. | |
| virtual tl::expected< bool, ApiResponseStatus > | validateDocumentInternal (const DocumentSpecifier &aDocument) const =0 |
| virtual const EDA_IU_SCALE & | getIuScale () const |
| Returns the internal-unit scale that the concrete editor uses. | |
| virtual std::optional< TITLE_BLOCK * > | getTitleBlock (const DocumentSpecifier &aDocument) |
| virtual std::optional< PAGE_INFO > | getPageSettings (const DocumentSpecifier &aDocument) |
| virtual bool | setPageSettings (const DocumentSpecifier &aDocument, const PAGE_INFO &aPageInfo) |
| virtual wxString | getDrawingSheetFileName () |
| virtual void | setDrawingSheetFileName (const wxString &aFileName) |
| virtual void | onModified () |
| template<class RequestType, class ResponseType, class HandlerType> | |
| void | registerHandler (HANDLER_RESULT< ResponseType >(HandlerType::*aHandler)(const HANDLER_CONTEXT< RequestType > &)) |
| Registers an API command handler for the given message types. | |
Static Protected Member Functions | |
| static HANDLER_RESULT< std::unique_ptr< BOARD_ITEM > > | createItemForType (KICAD_T aType, BOARD_ITEM_CONTAINER *aContainer) |
Protected Attributes | |
| std::map< std::string, std::pair< KIID, std::unique_ptr< COMMIT > > > | m_commits |
| std::set< std::string > | m_activeClients |
| EDA_BASE_FRAME * | m_frame |
| std::map< std::string, REQUEST_HANDLER > | m_handlers |
| Maps type name (without the URL prefix) to a handler method. | |
| bool | m_notifyNetSettings = false |
| KICAD_API_SERVER * | m_apiServer = nullptr |
Static Protected Attributes | |
| static const wxString | m_defaultCommitMessage = _( "Modification from API" ) |
Private Member Functions | |
| HANDLER_RESULT< commands::RunActionResponse > | handleRunAction (const HANDLER_CONTEXT< commands::RunAction > &aCtx) |
| HANDLER_RESULT< commands::GetItemsResponse > | handleGetItemsById (const HANDLER_CONTEXT< commands::GetItemsById > &aCtx) |
| HANDLER_RESULT< commands::SelectionResponse > | handleGetSelection (const HANDLER_CONTEXT< commands::GetSelection > &aCtx) |
| HANDLER_RESULT< Empty > | handleClearSelection (const HANDLER_CONTEXT< commands::ClearSelection > &aCtx) |
| HANDLER_RESULT< commands::SelectionResponse > | handleAddToSelection (const HANDLER_CONTEXT< commands::AddToSelection > &aCtx) |
| HANDLER_RESULT< commands::SelectionResponse > | handleRemoveFromSelection (const HANDLER_CONTEXT< commands::RemoveFromSelection > &aCtx) |
| HANDLER_RESULT< Empty > | handleFocusOnItems (const HANDLER_CONTEXT< commands::FocusOnItems > &aCtx) |
| HANDLER_RESULT< BoardStackupResponse > | handleGetStackup (const HANDLER_CONTEXT< GetBoardStackup > &aCtx) |
| HANDLER_RESULT< BoardEnabledLayersResponse > | handleGetBoardEnabledLayers (const HANDLER_CONTEXT< GetBoardEnabledLayers > &aCtx) |
| HANDLER_RESULT< GraphicsDefaultsResponse > | handleGetGraphicsDefaults (const HANDLER_CONTEXT< GetGraphicsDefaults > &aCtx) |
| HANDLER_RESULT< commands::GetBoundingBoxResponse > | handleGetBoundingBox (const HANDLER_CONTEXT< commands::GetBoundingBox > &aCtx) |
| HANDLER_RESULT< BoardBoundingBoxResponse > | handleGetBoardBoundingBox (const HANDLER_CONTEXT< GetBoardBoundingBox > &aCtx) |
| HANDLER_RESULT< PadShapeAsPolygonResponse > | handleGetPadShapeAsPolygon (const HANDLER_CONTEXT< GetPadShapeAsPolygon > &aCtx) |
| HANDLER_RESULT< PadstackPresenceResponse > | handleCheckPadstackPresenceOnLayers (const HANDLER_CONTEXT< CheckPadstackPresenceOnLayers > &aCtx) |
| HANDLER_RESULT< commands::ExpandTextVariablesResponse > | handleExpandTextVariables (const HANDLER_CONTEXT< commands::ExpandTextVariables > &aCtx) |
| HANDLER_RESULT< Empty > | handleInteractiveMoveItems (const HANDLER_CONTEXT< InteractiveMoveItems > &aCtx) |
| HANDLER_RESULT< FlipItemsResponse > | handleFlipItems (const HANDLER_CONTEXT< FlipItems > &aCtx) |
| HANDLER_RESULT< commands::SavedDocumentResponse > | handleSaveDocumentToString (const HANDLER_CONTEXT< commands::SaveDocumentToString > &aCtx) |
| HANDLER_RESULT< commands::SavedSelectionResponse > | handleSaveSelectionToString (const HANDLER_CONTEXT< commands::SaveSelectionToString > &aCtx) |
| HANDLER_RESULT< commands::CreateItemsResponse > | handleParseAndCreateItemsFromString (const HANDLER_CONTEXT< commands::ParseAndCreateItemsFromString > &aCtx) |
| HANDLER_RESULT< BoardLayers > | handleGetVisibleLayers (const HANDLER_CONTEXT< GetVisibleLayers > &aCtx) |
| HANDLER_RESULT< Empty > | handleSetVisibleLayers (const HANDLER_CONTEXT< SetVisibleLayers > &aCtx) |
| HANDLER_RESULT< BoardLayerResponse > | handleGetActiveLayer (const HANDLER_CONTEXT< GetActiveLayer > &aCtx) |
| HANDLER_RESULT< Empty > | handleSetActiveLayer (const HANDLER_CONTEXT< SetActiveLayer > &aCtx) |
| template<typename MessageType> | |
| bool | tryUnpack (ApiRequest &aRequest, ApiResponse &aReply, MessageType &aDest) |
Private Attributes | |
| std::shared_ptr< BOARD_CONTEXT > | m_context |
Common base class for API handlers that operate on a BOARD via a BOARD_CONTEXT.
Shared by both the PCB editor and the footprint editor.
Definition at line 54 of file api_handler_board.h.
|
protectedinherited |
A handler for outer messages (envelopes) that will unpack to inner messages and call a specific handler function.
Definition at line 97 of file api_handler.h.
| API_HANDLER_BOARD::API_HANDLER_BOARD | ( | std::shared_ptr< BOARD_CONTEXT > | aContext, |
| EDA_BASE_FRAME * | aFrame = nullptr ) |
Definition at line 61 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::API_HANDLER_EDITOR(), handleAddToSelection(), handleCheckPadstackPresenceOnLayers(), handleClearSelection(), handleExpandTextVariables(), handleFlipItems(), handleFocusOnItems(), handleGetActiveLayer(), handleGetBoardBoundingBox(), handleGetBoardEnabledLayers(), handleGetBoundingBox(), handleGetGraphicsDefaults(), handleGetItemsById(), handleGetPadShapeAsPolygon(), handleGetSelection(), handleGetStackup(), handleGetVisibleLayers(), handleInteractiveMoveItems(), handleParseAndCreateItemsFromString(), handleRemoveFromSelection(), handleRunAction(), handleSaveDocumentToString(), handleSaveSelectionToString(), handleSetActiveLayer(), handleSetVisibleLayers(), m_context, move, and API_HANDLER::registerHandler().
Referenced by API_HANDLER_FOOTPRINT::API_HANDLER_FOOTPRINT(), and API_HANDLER_PCB::API_HANDLER_PCB().
|
inlineinherited |
Definition at line 90 of file api_handler.h.
References m_apiServer.
Referenced by API_HANDLER_PCB::handleSaveDocumentAs(), and API_HANDLER_SCH::handleSaveDocumentAs().
|
inlineprotected |
Definition at line 79 of file api_handler_board.h.
References context(), and BOARD_CONTEXT::GetBoard().
Referenced by deleteItemsInternal(), getDefaultContainer(), API_HANDLER_FOOTPRINT::getDefaultContainer(), getItemById(), API_HANDLER_PCB::handleAddEmbeddedFiles(), API_HANDLER_PCB::handleAddVariant(), API_HANDLER_PCB::handleCopyVariant(), handleCreateUpdateItemsInternal(), API_HANDLER_PCB::handleDeleteVariant(), handleExpandTextVariables(), handleGetBoardBoundingBox(), API_HANDLER_PCB::handleGetBoardDesignRules(), handleGetBoardEnabledLayers(), API_HANDLER_PCB::handleGetBoardLayerByName(), API_HANDLER_PCB::handleGetBoardLayerName(), API_HANDLER_PCB::handleGetBoardOrigin(), API_HANDLER_PCB::handleGetBoardPlotSettings(), API_HANDLER_PCB::handleGetConnectedItems(), API_HANDLER_PCB::handleGetCustomDesignRules(), API_HANDLER_PCB::handleGetEmbeddedFiles(), handleGetGraphicsDefaults(), API_HANDLER_FOOTPRINT::handleGetItems(), API_HANDLER_PCB::handleGetItems(), API_HANDLER_PCB::handleGetItemsByNet(), API_HANDLER_PCB::handleGetItemsByNetClass(), API_HANDLER_PCB::handleGetNetClassForNets(), API_HANDLER_PCB::handleGetNets(), API_HANDLER_FOOTPRINT::handleGetOpenDocuments(), handleGetStackup(), API_HANDLER_PCB::handleGetVariants(), handleGetVisibleLayers(), API_HANDLER_PCB::handlePlaceFootprintFromLibrary(), API_HANDLER_PCB::handleRefillZones(), API_HANDLER_PCB::handleRenameVariant(), API_HANDLER_PCB::handleSaveCopyOfDocument(), API_HANDLER_PCB::handleSaveDocument(), handleSaveDocumentToString(), handleSaveSelectionToString(), handleSetActiveLayer(), API_HANDLER_PCB::handleSetBoardDesignRules(), API_HANDLER_PCB::handleSetBoardEnabledLayers(), API_HANDLER_PCB::handleSetBoardOrigin(), API_HANDLER_PCB::handleSetBoardPlotSettings(), API_HANDLER_PCB::handleSetCurrentVariant(), API_HANDLER_PCB::handleSetCustomDesignRules(), API_HANDLER_PCB::handleSetEmbeddedFiles(), API_HANDLER_PCB::handleSetVariantDescription(), handleSetVisibleLayers(), API_HANDLER_PCB::handleSyncSelection(), API_HANDLER_PCB::onNetSettingsChanged(), regenerateGenerators(), API_HANDLER_FOOTPRINT::validateAndGetFootprint(), and API_HANDLER_FOOTPRINT::validateDocumentInternal().
|
protectedvirtualinherited |
Checks if the editor can accept commands.
Definition at line 218 of file api_handler_editor.cpp.
References m_frame.
Referenced by API_HANDLER_PCB::handleAddEmbeddedFiles(), API_HANDLER_BOARD::handleAddToSelection(), API_HANDLER_SCH::handleAddToSelection(), API_HANDLER_PCB::handleAddVariant(), API_HANDLER_SCH::handleAddVariant(), handleBeginCommit(), API_HANDLER_BOARD::handleClearSelection(), API_HANDLER_SCH::handleClearSelection(), API_HANDLER_PCB::handleCopyVariant(), API_HANDLER_SCH::handleCopyVariant(), handleCreateItems(), handleDeleteItems(), API_HANDLER_PCB::handleDeleteVariant(), API_HANDLER_SCH::handleDeleteVariant(), handleEndCommit(), API_HANDLER_BOARD::handleFlipItems(), API_HANDLER_BOARD::handleFocusOnItems(), API_HANDLER_SCH::handleFocusOnItems(), API_HANDLER_BOARD::handleGetBoardBoundingBox(), API_HANDLER_BOARD::handleGetBoundingBox(), API_HANDLER_PCB::handleGetConnectedItems(), API_HANDLER_FOOTPRINT::handleGetItems(), API_HANDLER_PCB::handleGetItems(), API_HANDLER_SCH::handleGetItems(), API_HANDLER_SYMBOL::handleGetItems(), API_HANDLER_BOARD::handleGetItemsById(), API_HANDLER_SCH::handleGetItemsById(), API_HANDLER_SYMBOL::handleGetItemsById(), API_HANDLER_PCB::handleGetItemsByNet(), API_HANDLER_PCB::handleGetItemsByNetClass(), API_HANDLER_SCH::handleGetSchematicNetlist(), API_HANDLER_PCB::handleGetVariants(), API_HANDLER_SCH::handleGetVariants(), handleHitTest(), API_HANDLER_PCB::handleImportNetlist(), API_HANDLER_PCB::handleInjectDrcError(), API_HANDLER_BOARD::handleInteractiveMoveItems(), API_HANDLER_BOARD::handleParseAndCreateItemsFromString(), API_HANDLER_PCB::handlePlaceFootprintFromLibrary(), API_HANDLER_SCH::handlePlaceSymbolFromLibrary(), API_HANDLER_PCB::handleRefillZones(), API_HANDLER_BOARD::handleRemoveFromSelection(), API_HANDLER_SCH::handleRemoveFromSelection(), API_HANDLER_PCB::handleRenameVariant(), API_HANDLER_SCH::handleRenameVariant(), API_HANDLER_FOOTPRINT::handleRevertDocument(), API_HANDLER_PCB::handleRevertDocument(), API_HANDLER_SCH::handleRevertDocument(), API_HANDLER_SYMBOL::handleRevertDocument(), API_HANDLER_BOARD::handleRunAction(), API_HANDLER_PCB::handleRunBoardJobExport3D(), API_HANDLER_PCB::handleRunBoardJobExportDrill(), API_HANDLER_PCB::handleRunBoardJobExportDxf(), API_HANDLER_PCB::handleRunBoardJobExportGencad(), API_HANDLER_PCB::handleRunBoardJobExportGerbers(), API_HANDLER_PCB::handleRunBoardJobExportIdf(), API_HANDLER_PCB::handleRunBoardJobExportIpc2581(), API_HANDLER_PCB::handleRunBoardJobExportIpcD356(), API_HANDLER_PCB::handleRunBoardJobExportODB(), API_HANDLER_PCB::handleRunBoardJobExportPdf(), API_HANDLER_PCB::handleRunBoardJobExportPng(), API_HANDLER_PCB::handleRunBoardJobExportPosition(), API_HANDLER_PCB::handleRunBoardJobExportPs(), API_HANDLER_PCB::handleRunBoardJobExportRender(), API_HANDLER_PCB::handleRunBoardJobExportStats(), API_HANDLER_PCB::handleRunBoardJobExportSvg(), API_HANDLER_SCH::handleRunSchematicJobExportBOM(), API_HANDLER_SCH::handleRunSchematicJobExportDxf(), API_HANDLER_SCH::handleRunSchematicJobExportNetlist(), API_HANDLER_SCH::handleRunSchematicJobExportPdf(), API_HANDLER_SCH::handleRunSchematicJobExportPng(), API_HANDLER_SCH::handleRunSchematicJobExportPs(), API_HANDLER_SCH::handleRunSchematicJobExportSvg(), API_HANDLER_PCB::handleSaveCopyOfDocument(), API_HANDLER_SCH::handleSaveCopyOfDocument(), API_HANDLER_SYMBOL::handleSaveCopyOfDocument(), API_HANDLER_PCB::handleSaveDocument(), API_HANDLER_SCH::handleSaveDocument(), API_HANDLER_SYMBOL::handleSaveDocument(), API_HANDLER_PCB::handleSaveDocumentAs(), API_HANDLER_SCH::handleSaveDocumentAs(), API_HANDLER_BOARD::handleSetActiveLayer(), API_HANDLER_PCB::handleSetBoardEditorAppearanceSettings(), API_HANDLER_PCB::handleSetBoardOrigin(), API_HANDLER_PCB::handleSetBoardPlotSettings(), API_HANDLER_PCB::handleSetCurrentVariant(), API_HANDLER_SCH::handleSetCurrentVariant(), API_HANDLER_PCB::handleSetEmbeddedFiles(), API_HANDLER_PCB::handleSetVariantDescription(), API_HANDLER_SCH::handleSetVariantDescription(), API_HANDLER_BOARD::handleSetVisibleLayers(), handleUpdateItems(), and API_HANDLER_FOOTPRINT::validateAndGetFootprint().
|
protected |
Definition at line 110 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::m_frame.
Referenced by handleAddToSelection(), handleClearSelection(), handleFocusOnItems(), handleGetActiveLayer(), API_HANDLER_PCB::handleGetBoardEditorAppearanceSettings(), handleGetSelection(), handleGetVisibleLayers(), API_HANDLER_PCB::handleHighlightNets(), handleInteractiveMoveItems(), API_HANDLER_FOOTPRINT::handleOpenLibraryItem(), handleRemoveFromSelection(), API_HANDLER_FOOTPRINT::handleRevertDocument(), handleRunAction(), handleSaveSelectionToString(), handleSetActiveLayer(), API_HANDLER_PCB::handleSetBoardEditorAppearanceSettings(), handleSetVisibleLayers(), and API_HANDLER_PCB::handleSyncSelection().
|
inlineinherited |
Returns true if the notification had been requested at the time of the call.
Definition at line 81 of file api_handler.h.
References m_notifyNetSettings.
|
inlineprotected |
Definition at line 77 of file api_handler_board.h.
References m_context.
Referenced by board(), API_HANDLER_FOOTPRINT::footprintContext(), API_HANDLER_PCB::getPageSettings(), API_HANDLER_PCB::getTitleBlock(), API_HANDLER_PCB::pcbContext(), project(), API_HANDLER_PCB::setPageSettings(), and toolManager().
|
overrideprotectedvirtual |
Override this to create an appropriate COMMIT subclass for the frame in question.
Implements API_HANDLER_EDITOR.
Definition at line 137 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::m_frame, API_HANDLER_EDITOR::thisDocumentType(), and toolManager().
Referenced by API_HANDLER_PCB::handleRefillZones().
|
staticprotected |
Definition at line 159 of file api_handler_board.cpp.
References CreateItemForType(), EDA_ITEM::GetFriendlyName(), PCB_BARCODE_T, PCB_CONSTRAINT_T, PCB_DIM_ALIGNED_T, PCB_DIM_CENTER_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_FIELD_T, PCB_FOOTPRINT_T, PCB_GROUP_T, PCB_PAD_T, PCB_POINT_T, PCB_REFERENCE_IMAGE_T, PCB_SHAPE_T, PCB_TABLE_T, PCB_TEXT_T, PCB_TEXTBOX_T, and PCB_ZONE_T.
Referenced by handleCreateUpdateItemsInternal().
|
overrideprotectedvirtual |
Implements API_HANDLER_EDITOR.
Definition at line 221 of file api_handler_board.cpp.
References _, board(), ensureGeneratorTool(), PCB_ACTIONS::genRemove, API_HANDLER_EDITOR::getCurrentCommit(), IsGeneratedTableCell(), PCB_FIELD::IsMandatory(), API_HANDLER_EDITOR::m_activeClients, COMMIT::Modify(), PCB_FIELD_T, PCB_GENERATOR_T, PCB_TABLECELL_T, pushCurrentCommit(), COMMIT::Remove(), TOOL_MANAGER::RunSynchronousAction(), and toolManager().
|
protected |
Creates the generator tool if needed (e.g. in headless mode); returns it if available.
Definition at line 286 of file api_handler_board.cpp.
References TOOL_MANAGER::FindTool(), GENERATOR_TOOL_NAME, TOOL_MANAGER::GetTool(), TOOL_MANAGER::RegisterTool(), TOOL_MANAGER::ResetTools(), TOOL_BASE::RUN, and toolManager().
Referenced by deleteItemsInternal(), and handleCreateUpdateItemsInternal().
|
protectedinherited |
Definition at line 154 of file api_handler_editor.cpp.
References createCommit(), and m_commits.
Referenced by API_HANDLER_BOARD::deleteItemsInternal(), API_HANDLER_SCH::deleteItemsInternal(), API_HANDLER_SYMBOL::deleteItemsInternal(), API_HANDLER_BOARD::handleCreateUpdateItemsInternal(), API_HANDLER_SCH::handleCreateUpdateItemsInternal(), API_HANDLER_SYMBOL::handleCreateUpdateItemsInternal(), API_HANDLER_BOARD::handleFlipItems(), API_HANDLER_PCB::handleInjectDrcError(), API_HANDLER_BOARD::handleInteractiveMoveItems(), API_HANDLER_PCB::handlePlaceFootprintFromLibrary(), and API_HANDLER_SCH::handlePlaceSymbolFromLibrary().
|
protectedvirtual |
Reimplemented in API_HANDLER_FOOTPRINT.
Definition at line 123 of file api_handler_board.cpp.
References board().
Referenced by handleCreateUpdateItemsInternal().
|
inlineprotectedvirtualinherited |
Reimplemented in API_HANDLER_PCB, and API_HANDLER_SCH.
Definition at line 141 of file api_handler_editor.h.
Referenced by handleGetPageSettings(), and handleSetPageSettings().
|
protected |
Definition at line 148 of file api_handler_board.cpp.
References board(), and BOARD::ResolveItem().
Referenced by getItemFromDocument(), handleAddToSelection(), handleCheckPadstackPresenceOnLayers(), handleCreateUpdateItemsInternal(), handleFlipItems(), handleFocusOnItems(), handleGetBoundingBox(), API_HANDLER_PCB::handleGetConnectedItems(), handleGetItemsById(), handleGetPadShapeAsPolygon(), handleInteractiveMoveItems(), API_HANDLER_PCB::handleRefillZones(), and handleRemoveFromSelection().
|
overrideprotectedvirtual |
Implements API_HANDLER_EDITOR.
Definition at line 333 of file api_handler_board.cpp.
References getItemById(), and API_HANDLER_EDITOR::validateDocument().
|
inlineprotectedvirtualinherited |
Returns the internal-unit scale that the concrete editor uses.
API wire coordinates are always in nanometers, so this scale drives conversion to the editor's native IU. Defaults to pcbIUScale; schematic-like editors must override.
Reimplemented in API_HANDLER_SCH, and API_HANDLER_SYMBOL.
Definition at line 119 of file api_handler_editor.h.
References pcbIUScale.
Referenced by handleHitTest().
|
inlineprotectedvirtualinherited |
Reimplemented in API_HANDLER_PCB, and API_HANDLER_SCH.
Definition at line 137 of file api_handler_editor.h.
Referenced by handleGetPageSettings(), and handleSetPageSettings().
|
inlineprotectedvirtualinherited |
Reimplemented in API_HANDLER_PCB, and API_HANDLER_SCH.
Definition at line 135 of file api_handler_editor.h.
Referenced by handleGetTitleBlockInfo(), and handleSetTitleBlockInfo().
|
inherited |
Attempt to handle the given API request, if a handler exists in this class for the message.
| aMsg | is a request to attempt to handle |
Definition at line 30 of file api_handler.cpp.
References m_handlers.
Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), and BOOST_AUTO_TEST_CASE().
|
private |
Definition at line 839 of file api_handler_board.cpp.
References SELECTION_TOOL::AddItemsToSel(), API_HANDLER_EDITOR::checkForBusy(), checkForHeadless(), getItemById(), PCB_SELECTION_TOOL::GetSelection(), TOOL_MANAGER::GetTool(), API_HANDLER_EDITOR::m_frame, HANDLER_CONTEXT< RequestMessageType >::Request, toolManager(), and API_HANDLER_EDITOR::validateItemHeaderDocument().
Referenced by API_HANDLER_BOARD().
|
protectedinherited |
Definition at line 50 of file api_handler_editor.cpp.
References checkForBusy(), HANDLER_CONTEXT< RequestMessageType >::ClientName, createCommit(), m_activeClients, m_commits, HANDLER_CONTEXT< RequestMessageType >::Request, and validateItemHeaderDocument().
Referenced by API_HANDLER_EDITOR().
|
private |
Definition at line 1156 of file api_handler_board.cpp.
References FromProtoEnum(), getItemById(), pad, PCB_LAYER_ID_COUNT, PCB_PAD_T, PCB_VIA_T, HANDLER_CONTEXT< RequestMessageType >::Request, BASE_SET::set(), ToProtoEnum(), API_HANDLER_EDITOR::validateDocument(), and via.
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 814 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::checkForBusy(), checkForHeadless(), API_HANDLER_EDITOR::m_frame, HANDLER_CONTEXT< RequestMessageType >::Request, TOOL_MANAGER::RunAction(), ACTIONS::selectionClear, toolManager(), and API_HANDLER_EDITOR::validateItemHeaderDocument().
Referenced by API_HANDLER_BOARD().
|
protectedinherited |
Definition at line 235 of file api_handler_editor.cpp.
References checkForBusy(), HANDLER_CONTEXT< RequestMessageType >::ClientName, handleCreateUpdateItemsInternal(), HANDLER_CONTEXT< RequestMessageType >::Request, and result.
Referenced by API_HANDLER_EDITOR().
|
overrideprotectedvirtual |
Implements API_HANDLER_EDITOR.
Definition at line 343 of file api_handler_board.cpp.
References _, COMMIT::Add(), EDA_GROUP::AddItem(), KIID::AsStdString(), board(), COMMIT::Checkpoint(), BOARD_ITEM::CopyFrom(), CreateGeneratorForType(), createItemForType(), SERIALIZABLE::Deserialize(), ensureGeneratorTool(), EDA_GROUP::FinalizeGroupDeserialization(), kiapi::common::GeneratorTypeFromAny(), API_HANDLER_EDITOR::getCurrentCommit(), getDefaultContainer(), getItemById(), BOARD_ITEM::GetParent(), EDA_ITEM::GetParentGroup(), group, API_HANDLER_EDITOR::m_activeClients, COMMIT::Modify(), PCB_DIM_ALIGNED_T, PCB_DIM_CENTER_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_DIMENSION_T, PCB_FOOTPRINT_T, PCB_GENERATOR_T, PCB_GROUP_T, PCB_SHAPE_T, PCB_TABLE_T, PCB_TABLECELL_T, pushCurrentCommit(), RECURSE, regenerateGenerators(), COMMIT::Remove(), BOARD_ITEM::ResetUuid(), BOARD_COMMIT::RevertToCheckpoint(), PCB_TABLECELL::Serialize(), SERIALIZABLE::Serialize(), EDA_ITEM::SetParent(), EDA_ITEM::SetParentGroup(), table, EDA_ITEM::Type(), kiapi::common::TypeNameFromAny(), and API_HANDLER_EDITOR::validateItemHeaderDocument().
|
protectedinherited |
Definition at line 296 of file api_handler_editor.cpp.
References checkForBusy(), HANDLER_CONTEXT< RequestMessageType >::ClientName, deleteItemsInternal(), HANDLER_CONTEXT< RequestMessageType >::Request, result, and validateItemHeaderDocument().
Referenced by API_HANDLER_EDITOR().
|
protectedinherited |
Definition at line 88 of file api_handler_editor.cpp.
References checkForBusy(), HANDLER_CONTEXT< RequestMessageType >::ClientName, m_activeClients, m_commits, pushCurrentCommit(), HANDLER_CONTEXT< RequestMessageType >::Request, and validateItemHeaderDocument().
Referenced by API_HANDLER_EDITOR().
|
private |
Definition at line 1230 of file api_handler_board.cpp.
References board(), ExpandEnvVarSubstitutions(), ExpandTextVars(), INTERNAL, HANDLER_CONTEXT< RequestMessageType >::Request, text, and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 1307 of file api_handler_board.cpp.
References _, API_HANDLER_EDITOR::checkForBusy(), HANDLER_CONTEXT< RequestMessageType >::ClientName, BOARD_ITEM::Flip(), FromProtoEnum(), API_HANDLER_EDITOR::getCurrentCommit(), getItemById(), EDA_ITEM::GetPosition(), API_HANDLER_EDITOR::m_activeClients, COMMIT::Modify(), BOARD_ITEM::Normalize(), PCB_ARC_T, PCB_BARCODE_T, PCB_DIM_ALIGNED_T, PCB_DIM_CENTER_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_FIELD_T, PCB_FOOTPRINT_T, PCB_GENERATOR_T, PCB_GRID_ITEM_T, PCB_GROUP_T, PCB_MARKER_T, PCB_PAD_T, PCB_POINT_T, PCB_REFERENCE_IMAGE_T, PCB_SHAPE_T, PCB_TABLE_T, PCB_TARGET_T, PCB_TEXT_T, PCB_TEXTBOX_T, PCB_TRACE_T, PCB_VIA_T, PCB_ZONE_T, pushCurrentCommit(), RECURSE, HANDLER_CONTEXT< RequestMessageType >::Request, result, SERIALIZABLE::Serialize(), EDA_ITEM::Type(), and API_HANDLER_EDITOR::validateItemHeaderDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 879 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::checkForBusy(), checkForHeadless(), getItemById(), TOOL_MANAGER::GetTool(), kiapi::common::MakeResponseStatus(), HANDLER_CONTEXT< RequestMessageType >::Request, toolManager(), kiapi::common::UnpackDistance(), and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 1539 of file api_handler_board.cpp.
References checkForHeadless(), PCB_BASE_FRAME::GetActiveLayer(), API_HANDLER_EDITOR::m_frame, HANDLER_CONTEXT< RequestMessageType >::Request, ToProtoEnum(), and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 1095 of file api_handler_board.cpp.
References board(), API_HANDLER_EDITOR::checkForBusy(), BOARD::ComputeBoundingBox(), BOARD::GetBoardEdgesBoundingBox(), kiapi::common::MakeResponseStatus(), kiapi::common::PackBox2(), HANDLER_CONTEXT< RequestMessageType >::Request, and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 984 of file api_handler_board.cpp.
References LSET::AllCuMask(), board(), kiapi::board::PackLayerSet(), HANDLER_CONTEXT< RequestMessageType >::Request, Rescue, BASE_SET::reset(), and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 1053 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::checkForBusy(), EDA_ITEM::GetBoundingBox(), getItemById(), kiapi::common::PackBox2(), PCB_FOOTPRINT_T, HANDLER_CONTEXT< RequestMessageType >::Request, EDA_ITEM::Type(), and API_HANDLER_EDITOR::validateItemHeaderDocument().
Referenced by API_HANDLER_BOARD().
|
protectedvirtualinherited |
Reimplemented in API_HANDLER_PCB, API_HANDLER_SCH, and API_HANDLER_SYMBOL.
Definition at line 386 of file api_handler_editor.cpp.
References m_frame, HANDLER_CONTEXT< RequestMessageType >::Request, and validateDocument().
Referenced by API_HANDLER_EDITOR().
|
private |
Definition at line 1013 of file api_handler_board.cpp.
References board(), BOARD::GetDesignSettings(), LAYER_CLASS_COUNT, BOARD_DESIGN_SETTINGS::m_LineThickness, BOARD_DESIGN_SETTINGS::m_TextItalic, BOARD_DESIGN_SETTINGS::m_TextSize, BOARD_DESIGN_SETTINGS::m_TextThickness, BOARD_DESIGN_SETTINGS::m_TextUpright, HANDLER_CONTEXT< RequestMessageType >::Request, text, API_HANDLER_EDITOR::validateDocument(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 726 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::checkForBusy(), getItemById(), HANDLER_CONTEXT< RequestMessageType >::Request, and API_HANDLER_EDITOR::validateItemHeaderDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 1121 of file api_handler_board.cpp.
References SHAPE_POLY_SET::COutline(), ERROR_INSIDE, FromProtoEnum(), getItemById(), kiapi::common::PackPolyLine(), pad, PCB_PAD_T, HANDLER_CONTEXT< RequestMessageType >::Request, and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
protectedinherited |
Definition at line 506 of file api_handler_editor.cpp.
References getDrawingSheetFileName(), getPageSettings(), PAGE_INFO::GetSizeIU(), PAGE_INFO::GetType(), PAGE_INFO::IsCustom(), PAGE_INFO::IsPortrait(), kiapi::common::PackVector2(), pcbIUScale, HANDLER_CONTEXT< RequestMessageType >::Request, ToProtoEnum(), and validateDocument().
Referenced by API_HANDLER_PCB::API_HANDLER_PCB(), and API_HANDLER_SCH::API_HANDLER_SCH().
|
private |
Definition at line 769 of file api_handler_board.cpp.
References checkForHeadless(), filter, PCB_SELECTION_TOOL::GetSelection(), TOOL_MANAGER::GetTool(), parseRequestedItemTypes(), PCB_DIM_ALIGNED_T, PCB_DIM_CENTER_T, PCB_DIM_LEADER_T, PCB_DIM_ORTHOGONAL_T, PCB_DIM_RADIAL_T, PCB_DIMENSION_T, HANDLER_CONTEXT< RequestMessageType >::Request, toolManager(), and API_HANDLER_EDITOR::validateItemHeaderDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 968 of file api_handler_board.cpp.
References board(), kiapi::board::PackBoardStackup(), HANDLER_CONTEXT< RequestMessageType >::Request, and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
protectedinherited |
Definition at line 417 of file api_handler_editor.cpp.
References TITLE_BLOCK::GetComment(), TITLE_BLOCK::GetCompany(), TITLE_BLOCK::GetDate(), TITLE_BLOCK::GetRevision(), TITLE_BLOCK::GetTitle(), getTitleBlock(), HANDLER_CONTEXT< RequestMessageType >::Request, and validateDocument().
Referenced by API_HANDLER_EDITOR().
|
private |
Definition at line 1483 of file api_handler_board.cpp.
References board(), checkForHeadless(), HANDLER_CONTEXT< RequestMessageType >::Request, ToProtoEnum(), and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
protectedinherited |
Definition at line 345 of file api_handler_editor.cpp.
References checkForBusy(), getItemFromDocument(), getIuScale(), HANDLER_CONTEXT< RequestMessageType >::Request, scale, kiapi::common::UnpackVector2(), and validateItemHeaderDocument().
Referenced by API_HANDLER_EDITOR().
|
private |
Definition at line 1262 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::checkForBusy(), checkForHeadless(), HANDLER_CONTEXT< RequestMessageType >::ClientName, API_HANDLER_EDITOR::getCurrentCommit(), getItemById(), PCB_SELECTION_TOOL::GetSelection(), TOOL_MANAGER::GetTool(), PCB_ACTIONS::move, TOOL_MANAGER::PostAPIAction(), HANDLER_CONTEXT< RequestMessageType >::Request, TOOL_MANAGER::RunAction(), ACTIONS::selectionClear, ACTIONS::selectItems, SELECTION::SetReferencePoint(), toolManager(), and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 1467 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::checkForBusy(), HANDLER_CONTEXT< RequestMessageType >::Request, and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 928 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::checkForBusy(), checkForHeadless(), getItemById(), PCB_SELECTION_TOOL::GetSelection(), TOOL_MANAGER::GetTool(), API_HANDLER_EDITOR::m_frame, SELECTION_TOOL::RemoveItemsFromSel(), HANDLER_CONTEXT< RequestMessageType >::Request, toolManager(), and API_HANDLER_EDITOR::validateItemHeaderDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 706 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::checkForBusy(), checkForHeadless(), HANDLER_CONTEXT< RequestMessageType >::Request, and toolManager().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 1417 of file api_handler_board.cpp.
References board(), HANDLER_CONTEXT< RequestMessageType >::Request, CLIPBOARD_IO::SaveBoard(), CLIPBOARD_IO::SetWriter(), and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 1441 of file api_handler_board.cpp.
References board(), checkForHeadless(), PCB_SELECTION_TOOL::GetSelection(), TOOL_MANAGER::GetTool(), CLIPBOARD_IO::SaveSelection(), CLIPBOARD_IO::SetBoard(), CLIPBOARD_IO::SetWriter(), API_HANDLER_EDITOR::thisDocumentType(), and toolManager().
Referenced by API_HANDLER_BOARD().
|
private |
Definition at line 1560 of file api_handler_board.cpp.
References board(), API_HANDLER_EDITOR::checkForBusy(), checkForHeadless(), FromProtoEnum(), API_HANDLER_EDITOR::m_frame, HANDLER_CONTEXT< RequestMessageType >::Request, PCB_BASE_FRAME::SetActiveLayer(), and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
protectedinherited |
Definition at line 540 of file api_handler_editor.cpp.
References FromProtoEnum(), getDrawingSheetFileName(), getPageSettings(), PAGE_INFO::GetSizeIU(), PAGE_INFO::GetType(), PAGE_INFO::IsCustom(), PAGE_INFO::IsPortrait(), onModified(), kiapi::common::PackVector2(), pcbIUScale, HANDLER_CONTEXT< RequestMessageType >::Request, PAGE_INFO::SetCustomHeightMils(), PAGE_INFO::SetCustomWidthMils(), setDrawingSheetFileName(), setPageSettings(), PAGE_INFO::SetType(), ToProtoEnum(), kiapi::common::UnpackVector2(), User, validateDocument(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by API_HANDLER_PCB::API_HANDLER_PCB(), and API_HANDLER_SCH::API_HANDLER_SCH().
|
protectedinherited |
Definition at line 457 of file api_handler_editor.cpp.
References getTitleBlock(), onModified(), HANDLER_CONTEXT< RequestMessageType >::Request, TITLE_BLOCK::SetComment(), TITLE_BLOCK::SetCompany(), TITLE_BLOCK::SetDate(), TITLE_BLOCK::SetRevision(), TITLE_BLOCK::SetTitle(), and validateDocument().
Referenced by API_HANDLER_EDITOR().
|
private |
Definition at line 1503 of file api_handler_board.cpp.
References board(), API_HANDLER_EDITOR::checkForBusy(), checkForHeadless(), LSET::Contains(), FromProtoEnum(), PCB_BASE_EDIT_FRAME::GetAppearancePanel(), PCB_BASE_FRAME::GetCanvas(), BOARD::GetEnabledLayers(), API_HANDLER_EDITOR::m_frame, APPEARANCE_CONTROLS::OnBoardChanged(), HANDLER_CONTEXT< RequestMessageType >::Request, BASE_SET::set(), BOARD::SetVisibleLayers(), PCB_DRAW_PANEL_GAL::SyncLayersVisibility(), and API_HANDLER_EDITOR::validateDocument().
Referenced by API_HANDLER_BOARD().
|
protectedinherited |
Definition at line 269 of file api_handler_editor.cpp.
References checkForBusy(), HANDLER_CONTEXT< RequestMessageType >::ClientName, handleCreateUpdateItemsInternal(), HANDLER_CONTEXT< RequestMessageType >::Request, and result.
Referenced by API_HANDLER_EDITOR().
|
inlineprotectedvirtualinherited |
Reimplemented in API_HANDLER_PCB, API_HANDLER_SCH, and API_HANDLER_SYMBOL.
Definition at line 145 of file api_handler_editor.h.
Referenced by handleSetPageSettings(), handleSetTitleBlockInfo(), and API_HANDLER_BOARD::pushCurrentCommit().
|
inlinevirtualinherited |
Called on all registered handlers after project net settings (netclasses or netclass assignments) have been changed via the API.
Reimplemented in API_HANDLER_PCB, and API_HANDLER_SCH.
Definition at line 76 of file api_handler.h.
|
protected |
Definition at line 688 of file api_handler_board.cpp.
References FromProtoEnum(), and TYPE_NOT_INIT.
Referenced by API_HANDLER_PCB::handleGetConnectedItems(), API_HANDLER_FOOTPRINT::handleGetItems(), API_HANDLER_PCB::handleGetItems(), API_HANDLER_PCB::handleGetItemsByNet(), API_HANDLER_PCB::handleGetItemsByNetClass(), and handleGetSelection().
|
inlineprotected |
Definition at line 81 of file api_handler_board.h.
References context(), and BOARD_CONTEXT::Prj().
Referenced by API_HANDLER_FOOTPRINT::handleGetOpenDocuments(), API_HANDLER_PCB::handleGetOpenDocuments(), API_HANDLER_PCB::handleImportNetlist(), and API_HANDLER_PCB::handleSaveCopyOfDocument().
|
overrideprotectedvirtual |
Reimplemented from API_HANDLER_EDITOR.
Definition at line 129 of file api_handler_board.cpp.
References API_HANDLER_EDITOR::onModified(), and API_HANDLER_EDITOR::pushCurrentCommit().
Referenced by deleteItemsInternal(), handleCreateUpdateItemsInternal(), handleFlipItems(), API_HANDLER_PCB::handleInjectDrcError(), and API_HANDLER_PCB::handlePlaceFootprintFromLibrary().
|
protected |
Definition at line 300 of file api_handler_board.cpp.
References board().
Referenced by handleCreateUpdateItemsInternal().
|
inlineprotectedinherited |
Registers an API command handler for the given message types.
When an API request matching the given type comes in, the handler will be called and its response will be packed into an envelope for sending back to the API client.
If the given message does not unpack into the request type, an envelope is returned with status AS_BAD_REQUEST, which probably indicates corruption in the message.
| RequestType | is a protobuf message type containing a command |
| ResponseType | is a protobuf message type containing a command response |
| HandlerType | is the implied type of the API_HANDLER subclass |
| aHandler | is the handler function for the given request and response types |
Definition at line 114 of file api_handler.h.
References HANDLER_CONTEXT< RequestMessageType >::ClientName, m_handlers, HANDLER_CONTEXT< RequestMessageType >::Request, and tryUnpack().
Referenced by API_HANDLER_BOARD::API_HANDLER_BOARD(), API_HANDLER_COMMON::API_HANDLER_COMMON(), API_HANDLER_EDITOR::API_HANDLER_EDITOR(), API_HANDLER_FOOTPRINT::API_HANDLER_FOOTPRINT(), API_HANDLER_LIBRARIES::API_HANDLER_LIBRARIES(), API_HANDLER_PCB::API_HANDLER_PCB(), API_HANDLER_SCH::API_HANDLER_SCH(), and API_HANDLER_SYMBOL::API_HANDLER_SYMBOL().
|
inlineinherited |
Definition at line 78 of file api_handler.h.
References m_notifyNetSettings.
Referenced by API_HANDLER_COMMON::handleSetNetClassAssignments(), and API_HANDLER_COMMON::handleSetNetClasses().
|
inlineinherited |
Set by KICAD_API_SERVER::RegisterHandler; null when the handler is not registered.
Definition at line 89 of file api_handler.h.
References m_apiServer.
Referenced by KICAD_API_SERVER::DeregisterHandler(), and KICAD_API_SERVER::RegisterHandler().
|
inlineprotectedvirtualinherited |
Reimplemented in API_HANDLER_PCB, and API_HANDLER_SCH.
Definition at line 143 of file api_handler_editor.h.
Referenced by handleSetPageSettings().
|
inlineprotectedvirtualinherited |
Reimplemented in API_HANDLER_PCB, and API_HANDLER_SCH.
Definition at line 139 of file api_handler_editor.h.
Referenced by handleSetPageSettings().
|
protectedpure virtualinherited |
Override this to specify which document type this editor handles.
Implemented in API_HANDLER_FOOTPRINT, API_HANDLER_PCB, API_HANDLER_SCH, and API_HANDLER_SYMBOL.
Referenced by API_HANDLER_BOARD::createCommit(), API_HANDLER_BOARD::handleSaveSelectionToString(), and validateItemHeaderDocument().
|
inlineprotected |
Definition at line 83 of file api_handler_board.h.
References context(), and BOARD_CONTEXT::GetToolManager().
Referenced by createCommit(), deleteItemsInternal(), ensureGeneratorTool(), handleAddToSelection(), handleClearSelection(), handleFocusOnItems(), handleGetSelection(), handleInteractiveMoveItems(), API_HANDLER_PCB::handleRefillZones(), handleRemoveFromSelection(), handleRunAction(), handleSaveSelectionToString(), API_HANDLER_PCB::handleSetBoardEnabledLayers(), and API_HANDLER_PCB::onNetSettingsChanged().
|
inlineprivateinherited |
Definition at line 161 of file api_handler.h.
Referenced by registerHandler().
|
protectedinherited |
Definition at line 180 of file api_handler_editor.cpp.
References validateDocumentInternal().
Referenced by API_HANDLER_BOARD::getItemFromDocument(), API_HANDLER_SCH::getItemFromDocument(), API_HANDLER_SYMBOL::getItemFromDocument(), API_HANDLER_PCB::handleAddEmbeddedFiles(), API_HANDLER_PCB::handleAddVariant(), API_HANDLER_SCH::handleAddVariant(), API_HANDLER_BOARD::handleCheckPadstackPresenceOnLayers(), API_HANDLER_PCB::handleCopyVariant(), API_HANDLER_SCH::handleCopyVariant(), API_HANDLER_PCB::handleDeleteVariant(), API_HANDLER_SCH::handleDeleteVariant(), API_HANDLER_BOARD::handleExpandTextVariables(), API_HANDLER_SCH::handleExpandTextVariables(), API_HANDLER_BOARD::handleFocusOnItems(), API_HANDLER_SCH::handleFocusOnItems(), API_HANDLER_BOARD::handleGetActiveLayer(), API_HANDLER_BOARD::handleGetBoardBoundingBox(), API_HANDLER_PCB::handleGetBoardDesignRules(), API_HANDLER_BOARD::handleGetBoardEnabledLayers(), API_HANDLER_PCB::handleGetBoardLayerByName(), API_HANDLER_PCB::handleGetBoardLayerName(), API_HANDLER_PCB::handleGetBoardOrigin(), API_HANDLER_PCB::handleGetBoardPlotSettings(), API_HANDLER_PCB::handleGetCurrentVariant(), API_HANDLER_SCH::handleGetCurrentVariant(), API_HANDLER_PCB::handleGetCustomDesignRules(), handleGetDocumentModifiedState(), API_HANDLER_PCB::handleGetDocumentModifiedState(), API_HANDLER_SCH::handleGetDocumentModifiedState(), API_HANDLER_SYMBOL::handleGetDocumentModifiedState(), API_HANDLER_PCB::handleGetEmbeddedFiles(), API_HANDLER_BOARD::handleGetGraphicsDefaults(), API_HANDLER_PCB::handleGetNets(), API_HANDLER_BOARD::handleGetPadShapeAsPolygon(), handleGetPageSettings(), API_HANDLER_SCH::handleGetSchematicHierarchy(), API_HANDLER_SCH::handleGetSchematicNetlist(), API_HANDLER_BOARD::handleGetStackup(), handleGetTitleBlockInfo(), API_HANDLER_PCB::handleGetVariants(), API_HANDLER_SCH::handleGetVariants(), API_HANDLER_BOARD::handleGetVisibleLayers(), API_HANDLER_PCB::handleImportNetlist(), API_HANDLER_PCB::handleInjectDrcError(), API_HANDLER_BOARD::handleInteractiveMoveItems(), API_HANDLER_BOARD::handleParseAndCreateItemsFromString(), API_HANDLER_PCB::handleRefillZones(), API_HANDLER_PCB::handleRenameVariant(), API_HANDLER_SCH::handleRenameVariant(), API_HANDLER_FOOTPRINT::handleRevertDocument(), API_HANDLER_PCB::handleRevertDocument(), API_HANDLER_SCH::handleRevertDocument(), API_HANDLER_SYMBOL::handleRevertDocument(), API_HANDLER_PCB::handleRunBoardJobExport3D(), API_HANDLER_PCB::handleRunBoardJobExportDrill(), API_HANDLER_PCB::handleRunBoardJobExportDxf(), API_HANDLER_PCB::handleRunBoardJobExportGencad(), API_HANDLER_PCB::handleRunBoardJobExportGerbers(), API_HANDLER_PCB::handleRunBoardJobExportIdf(), API_HANDLER_PCB::handleRunBoardJobExportIpc2581(), API_HANDLER_PCB::handleRunBoardJobExportIpcD356(), API_HANDLER_PCB::handleRunBoardJobExportODB(), API_HANDLER_PCB::handleRunBoardJobExportPdf(), API_HANDLER_PCB::handleRunBoardJobExportPng(), API_HANDLER_PCB::handleRunBoardJobExportPosition(), API_HANDLER_PCB::handleRunBoardJobExportPs(), API_HANDLER_PCB::handleRunBoardJobExportRender(), API_HANDLER_PCB::handleRunBoardJobExportStats(), API_HANDLER_PCB::handleRunBoardJobExportSvg(), API_HANDLER_SCH::handleRunSchematicJobExportBOM(), API_HANDLER_SCH::handleRunSchematicJobExportDxf(), API_HANDLER_SCH::handleRunSchematicJobExportNetlist(), API_HANDLER_SCH::handleRunSchematicJobExportPdf(), API_HANDLER_SCH::handleRunSchematicJobExportPng(), API_HANDLER_SCH::handleRunSchematicJobExportPs(), API_HANDLER_SCH::handleRunSchematicJobExportSvg(), API_HANDLER_PCB::handleSaveCopyOfDocument(), API_HANDLER_SCH::handleSaveCopyOfDocument(), API_HANDLER_SYMBOL::handleSaveCopyOfDocument(), API_HANDLER_PCB::handleSaveDocument(), API_HANDLER_SCH::handleSaveDocument(), API_HANDLER_SYMBOL::handleSaveDocument(), API_HANDLER_PCB::handleSaveDocumentAs(), API_HANDLER_SCH::handleSaveDocumentAs(), API_HANDLER_BOARD::handleSaveDocumentToString(), API_HANDLER_SCH::handleSaveDocumentToString(), API_HANDLER_BOARD::handleSetActiveLayer(), API_HANDLER_PCB::handleSetBoardDesignRules(), API_HANDLER_PCB::handleSetBoardEnabledLayers(), API_HANDLER_PCB::handleSetBoardOrigin(), API_HANDLER_PCB::handleSetBoardPlotSettings(), API_HANDLER_PCB::handleSetCurrentVariant(), API_HANDLER_SCH::handleSetCurrentVariant(), API_HANDLER_PCB::handleSetCustomDesignRules(), API_HANDLER_PCB::handleSetEmbeddedFiles(), handleSetPageSettings(), handleSetTitleBlockInfo(), API_HANDLER_PCB::handleSetVariantDescription(), API_HANDLER_SCH::handleSetVariantDescription(), API_HANDLER_BOARD::handleSetVisibleLayers(), API_HANDLER_FOOTPRINT::validateAndGetFootprint(), and validateItemHeaderDocument().
|
protectedpure virtualinherited |
Implemented in API_HANDLER_FOOTPRINT, API_HANDLER_PCB, API_HANDLER_SCH, and API_HANDLER_SYMBOL.
Referenced by validateDocument(), and validateItemHeaderDocument().
|
protectedinherited |
If the header is valid, returns the item container.
Definition at line 189 of file api_handler_editor.cpp.
References result, thisDocumentType(), validateDocument(), and validateDocumentInternal().
Referenced by API_HANDLER_BOARD::handleAddToSelection(), API_HANDLER_SCH::handleAddToSelection(), handleBeginCommit(), API_HANDLER_BOARD::handleClearSelection(), API_HANDLER_SCH::handleClearSelection(), API_HANDLER_BOARD::handleCreateUpdateItemsInternal(), API_HANDLER_SCH::handleCreateUpdateItemsInternal(), API_HANDLER_SYMBOL::handleCreateUpdateItemsInternal(), handleDeleteItems(), handleEndCommit(), API_HANDLER_BOARD::handleFlipItems(), API_HANDLER_BOARD::handleGetBoundingBox(), API_HANDLER_PCB::handleGetConnectedItems(), API_HANDLER_FOOTPRINT::handleGetItems(), API_HANDLER_PCB::handleGetItems(), API_HANDLER_SCH::handleGetItems(), API_HANDLER_SYMBOL::handleGetItems(), API_HANDLER_BOARD::handleGetItemsById(), API_HANDLER_SCH::handleGetItemsById(), API_HANDLER_SYMBOL::handleGetItemsById(), API_HANDLER_PCB::handleGetItemsByNet(), API_HANDLER_PCB::handleGetItemsByNetClass(), API_HANDLER_BOARD::handleGetSelection(), API_HANDLER_SCH::handleGetSelection(), handleHitTest(), API_HANDLER_PCB::handlePlaceFootprintFromLibrary(), API_HANDLER_SCH::handlePlaceSymbolFromLibrary(), API_HANDLER_BOARD::handleRemoveFromSelection(), and API_HANDLER_SCH::handleRemoveFromSelection().
|
protectedinherited |
Definition at line 150 of file api_handler_editor.h.
Referenced by API_HANDLER_BOARD::deleteItemsInternal(), API_HANDLER_SCH::deleteItemsInternal(), API_HANDLER_SYMBOL::deleteItemsInternal(), handleBeginCommit(), API_HANDLER_BOARD::handleCreateUpdateItemsInternal(), API_HANDLER_SCH::handleCreateUpdateItemsInternal(), API_HANDLER_SYMBOL::handleCreateUpdateItemsInternal(), handleEndCommit(), API_HANDLER_BOARD::handleFlipItems(), API_HANDLER_PCB::handleInjectDrcError(), API_HANDLER_PCB::handlePlaceFootprintFromLibrary(), API_HANDLER_SCH::handlePlaceSymbolFromLibrary(), and pushCurrentCommit().
|
protectedinherited |
Definition at line 154 of file api_handler.h.
Referenced by apiServer(), and setApiServer().
|
protectedinherited |
Definition at line 148 of file api_handler_editor.h.
Referenced by getCurrentCommit(), handleBeginCommit(), handleEndCommit(), API_HANDLER_PCB::handleRevertDocument(), API_HANDLER_SCH::handleRevertDocument(), and pushCurrentCommit().
|
private |
Definition at line 176 of file api_handler_board.h.
Referenced by API_HANDLER_BOARD(), and context().
|
staticprotectedinherited |
Definition at line 156 of file api_handler.h.
Referenced by API_HANDLER_EDITOR::pushCurrentCommit().
|
protectedinherited |
Definition at line 152 of file api_handler_editor.h.
Referenced by API_HANDLER_EDITOR(), checkForBusy(), API_HANDLER_BOARD::checkForHeadless(), API_HANDLER_SCH::checkForHeadless(), API_HANDLER_BOARD::createCommit(), API_HANDLER_SCH::createCommit(), API_HANDLER_SYMBOL::createCommit(), API_HANDLER_SYMBOL::deleteItemsInternal(), API_HANDLER_FOOTPRINT::frame(), API_HANDLER_PCB::frame(), API_HANDLER_SCH::frame(), API_HANDLER_SYMBOL::frame(), API_HANDLER_BOARD::handleAddToSelection(), API_HANDLER_SCH::handleAddVariant(), API_HANDLER_BOARD::handleClearSelection(), API_HANDLER_SCH::handleCopyVariant(), API_HANDLER_SCH::handleCreateUpdateItemsInternal(), API_HANDLER_SYMBOL::handleCreateUpdateItemsInternal(), API_HANDLER_SCH::handleDeleteVariant(), API_HANDLER_BOARD::handleGetActiveLayer(), handleGetDocumentModifiedState(), API_HANDLER_SCH::handleGetSchematicNetlist(), API_HANDLER_BOARD::handleRemoveFromSelection(), API_HANDLER_SCH::handleRenameVariant(), API_HANDLER_BOARD::handleSetActiveLayer(), API_HANDLER_SCH::handleSetCurrentVariant(), API_HANDLER_SCH::handleSetVariantDescription(), API_HANDLER_BOARD::handleSetVisibleLayers(), API_HANDLER_SCH::onModified(), API_HANDLER_SCH::onNetSettingsChanged(), and API_HANDLER_SCH::setDrawingSheetFileName().
|
protectedinherited |
Maps type name (without the URL prefix) to a handler method.
Definition at line 150 of file api_handler.h.
Referenced by Handle(), and registerHandler().
|
protectedinherited |
Definition at line 152 of file api_handler.h.
Referenced by clearNetSettingsNotification(), and requestNetSettingsNotification().