KiCad PCB EDA Suite
Loading...
Searching...
No Matches
api_handler_common.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2023 Jon Evans <[email protected]>
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software: you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation, either version 3 of the License, or (at your
10 * option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
19 */
20
21#ifndef KICAD_API_HANDLER_COMMON_H
22#define KICAD_API_HANDLER_COMMON_H
23
24#include <functional>
25
26#include <google/protobuf/empty.pb.h>
27
28#include <api/api_handler.h>
29#include <api/common/commands/base_commands.pb.h>
30#include <api/common/commands/project_commands.pb.h>
31
32using namespace kiapi::common;
33using google::protobuf::Empty;
34
36{
37public:
38 using OPEN_DOCUMENT_HANDLER = std::function<HANDLER_RESULT<commands::OpenDocumentResponse>(
39 const commands::OpenDocument& )>;
40 using CREATE_DOCUMENT_HANDLER = std::function<HANDLER_RESULT<commands::OpenDocumentResponse>(
41 const commands::CreateDocument& )>;
42 using CLOSE_DOCUMENT_HANDLER = std::function<HANDLER_RESULT<Empty>(
43 const commands::CloseDocument& )>;
44 using CLOSE_ALL_DOCUMENTS_HANDLER = std::function<HANDLER_RESULT<Empty>(
45 const commands::CloseAllDocuments& )>;
46
47
49
50 ~API_HANDLER_COMMON() override {}
51
53 {
54 m_openDocumentHandler = std::move( aHandler );
55 }
56
58 {
59 m_closeDocumentHandler = std::move( aHandler );
60 }
61
63 {
64 m_closeAllDocumentsHandler = std::move( aHandler );
65 }
66
68 {
69 m_createDocumentHandler = std::move( aHandler );
70 }
71
72private:
75
78
81
84
87
89
92
95
98
101
104
107
110
113
116
119
120private:
125};
126
127#endif //KICAD_API_HANDLER_COMMON_H
tl::expected< T, ApiResponseStatus > HANDLER_RESULT
Definition api_handler.h:45
HANDLER_RESULT< Empty > handlePing(const HANDLER_CONTEXT< commands::Ping > &aCtx)
HANDLER_RESULT< types::Box2 > handleGetTextExtents(const HANDLER_CONTEXT< commands::GetTextExtents > &aCtx)
CLOSE_ALL_DOCUMENTS_HANDLER m_closeAllDocumentsHandler
HANDLER_RESULT< commands::GetTextAsShapesResponse > handleGetTextAsShapes(const HANDLER_CONTEXT< commands::GetTextAsShapes > &aCtx)
HANDLER_RESULT< commands::GetVersionResponse > handleGetVersion(const HANDLER_CONTEXT< commands::GetVersion > &aCtx)
void SetOpenDocumentHandler(OPEN_DOCUMENT_HANDLER aHandler)
CREATE_DOCUMENT_HANDLER m_createDocumentHandler
HANDLER_RESULT< Empty > handleCloseAllDocuments(const HANDLER_CONTEXT< commands::CloseAllDocuments > &aCtx)
std::function< HANDLER_RESULT< Empty >( const commands::CloseAllDocuments &)> CLOSE_ALL_DOCUMENTS_HANDLER
std::function< HANDLER_RESULT< commands::OpenDocumentResponse >( const commands::OpenDocument &)> OPEN_DOCUMENT_HANDLER
HANDLER_RESULT< commands::OpenDocumentResponse > handleCreateDocument(const HANDLER_CONTEXT< commands::CreateDocument > &aCtx)
HANDLER_RESULT< commands::PathResponse > handleGetKiCadBinaryPath(const HANDLER_CONTEXT< commands::GetKiCadBinaryPath > &aCtx)
HANDLER_RESULT< commands::NetClassesResponse > handleGetNetClasses(const HANDLER_CONTEXT< commands::GetNetClasses > &aCtx)
void SetCloseAllDocumentsHandler(CLOSE_ALL_DOCUMENTS_HANDLER aHandler)
CLOSE_DOCUMENT_HANDLER m_closeDocumentHandler
std::function< HANDLER_RESULT< commands::OpenDocumentResponse >( const commands::CreateDocument &)> CREATE_DOCUMENT_HANDLER
OPEN_DOCUMENT_HANDLER m_openDocumentHandler
void SetCreateDocumentHandler(CREATE_DOCUMENT_HANDLER aHandler)
void SetCloseDocumentHandler(CLOSE_DOCUMENT_HANDLER aHandler)
HANDLER_RESULT< Empty > handleCloseDocument(const HANDLER_CONTEXT< commands::CloseDocument > &aCtx)
HANDLER_RESULT< Empty > handleSetNetClasses(const HANDLER_CONTEXT< commands::SetNetClasses > &aCtx)
std::function< HANDLER_RESULT< Empty >( const commands::CloseDocument &)> CLOSE_DOCUMENT_HANDLER
HANDLER_RESULT< commands::StringResponse > handleGetPluginSettingsPath(const HANDLER_CONTEXT< commands::GetPluginSettingsPath > &aCtx)
HANDLER_RESULT< commands::OpenDocumentResponse > handleOpenDocument(const HANDLER_CONTEXT< commands::OpenDocument > &aCtx)
HANDLER_RESULT< commands::ExpandTextVariablesResponse > handleExpandTextVariables(const HANDLER_CONTEXT< commands::ExpandTextVariables > &aCtx)
HANDLER_RESULT< Empty > handleSetTextVariables(const HANDLER_CONTEXT< commands::SetTextVariables > &aCtx)
HANDLER_RESULT< commands::GetPathsResponse > handleGetPaths(const HANDLER_CONTEXT< commands::GetPaths > &aCtx)
HANDLER_RESULT< project::TextVariables > handleGetTextVariables(const HANDLER_CONTEXT< commands::GetTextVariables > &aCtx)