KiCad PCB EDA Suite
|
#include <api_handler_common.h>
Public Member Functions | |
API_HANDLER_COMMON () | |
~API_HANDLER_COMMON () override | |
API_RESULT | Handle (ApiRequest &aMsg) |
Attempt to handle the given API request, if a handler exists in this class for the message. | |
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 | |
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. | |
Protected Attributes | |
std::map< std::string, REQUEST_HANDLER > | m_handlers |
Maps type name (without the URL prefix) to a handler method. | |
Static Protected Attributes | |
static const wxString | m_defaultCommitMessage = _( "Modification from API" ) |
Private Member Functions | |
HANDLER_RESULT< commands::GetVersionResponse > | handleGetVersion (const HANDLER_CONTEXT< commands::GetVersion > &aCtx) |
HANDLER_RESULT< commands::NetClassesResponse > | handleGetNetClasses (const HANDLER_CONTEXT< commands::GetNetClasses > &aCtx) |
HANDLER_RESULT< Empty > | handlePing (const HANDLER_CONTEXT< commands::Ping > &aCtx) |
HANDLER_RESULT< types::Box2 > | handleGetTextExtents (const HANDLER_CONTEXT< commands::GetTextExtents > &aCtx) |
HANDLER_RESULT< commands::GetTextAsShapesResponse > | handleGetTextAsShapes (const HANDLER_CONTEXT< commands::GetTextAsShapes > &aCtx) |
HANDLER_RESULT< commands::ExpandTextVariablesResponse > | handleExpandTextVariables (const HANDLER_CONTEXT< commands::ExpandTextVariables > &aCtx) |
template<typename MessageType > | |
bool | tryUnpack (ApiRequest &aRequest, ApiResponse &aReply, MessageType &aDest) |
Definition at line 33 of file api_handler_common.h.
|
protectedinherited |
A handler for outer messages (envelopes) that will unpack to inner messages and call a specific handler function.
Definition at line 76 of file api_handler.h.
API_HANDLER_COMMON::API_HANDLER_COMMON | ( | ) |
Definition at line 41 of file api_handler_common.cpp.
References handleExpandTextVariables(), handleGetNetClasses(), handleGetTextAsShapes(), handleGetTextExtents(), handleGetVersion(), and handlePing().
|
inlineoverride |
Definition at line 38 of file api_handler_common.h.
|
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 API_HANDLER::m_handlers.
|
private |
Definition at line 204 of file api_handler_common.cpp.
References ExpandTextVars(), PGM_BASE::GetSettingsManager(), Pgm(), SETTINGS_MANAGER::Prj(), project, and HANDLER_CONTEXT< RequestMessageType >::Request.
Referenced by API_HANDLER_COMMON().
|
private |
Definition at line 71 of file api_handler_common.cpp.
References PROJECT::GetProjectFile(), PGM_BASE::GetSettingsManager(), PROJECT_FILE::m_NetSettings, name, Pgm(), and SETTINGS_MANAGER::Prj().
Referenced by API_HANDLER_COMMON().
|
private |
Definition at line 126 of file api_handler_common.cpp.
References kiapi::common::PackVector2(), pcbIUScale, HANDLER_CONTEXT< RequestMessageType >::Request, EDA_SHAPE::Serialize(), text, kiapi::common::UnpackVector2(), VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by API_HANDLER_COMMON().
|
private |
Definition at line 94 of file api_handler_common.cpp.
References BOX2< Vec >::GetBoundingBoxRotated(), BOX2< Vec >::GetPosition(), BOX2< Vec >::GetSize(), EDA_ANGLE::IsZero(), pcbIUScale, HANDLER_CONTEXT< RequestMessageType >::Request, text, VECTOR2< T >::x, and VECTOR2< T >::y.
Referenced by API_HANDLER_COMMON().
|
private |
Definition at line 55 of file api_handler_common.cpp.
References GetBuildVersion(), and GetMajorMinorPatchTuple().
Referenced by API_HANDLER_COMMON().
|
private |
Definition at line 88 of file api_handler_common.cpp.
Referenced by API_HANDLER_COMMON().
|
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 93 of file api_handler.h.
References HANDLER_CONTEXT< RequestMessageType >::ClientName, and HANDLER_CONTEXT< RequestMessageType >::Request.
|
inlineprivateinherited |
Definition at line 136 of file api_handler.h.
|
staticprotectedinherited |
Definition at line 131 of file api_handler.h.
Referenced by API_HANDLER_EDITOR::pushCurrentCommit().
|
protectedinherited |
Maps type name (without the URL prefix) to a handler method.
Definition at line 129 of file api_handler.h.
Referenced by API_HANDLER::Handle().