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 along
18 * with this program. If not, see <http://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
41 using CLOSE_DOCUMENT_HANDLER = std::function<HANDLER_RESULT<Empty>(
42 const commands::CloseDocument& )>;
43
45
46 ~API_HANDLER_COMMON() override {}
47
49 {
50 m_openDocumentHandler = std::move( aHandler );
51 }
52
54 {
55 m_closeDocumentHandler = std::move( aHandler );
56 }
57
58private:
61
64
67
70
72
75
78
81
84
87
90
93
96
97private:
100};
101
102#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)
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)
std::function< HANDLER_RESULT< commands::OpenDocumentResponse >( const commands::OpenDocument &)> OPEN_DOCUMENT_HANDLER
HANDLER_RESULT< commands::PathResponse > handleGetKiCadBinaryPath(const HANDLER_CONTEXT< commands::GetKiCadBinaryPath > &aCtx)
HANDLER_RESULT< commands::NetClassesResponse > handleGetNetClasses(const HANDLER_CONTEXT< commands::GetNetClasses > &aCtx)
CLOSE_DOCUMENT_HANDLER m_closeDocumentHandler
OPEN_DOCUMENT_HANDLER m_openDocumentHandler
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< project::TextVariables > handleGetTextVariables(const HANDLER_CONTEXT< commands::GetTextVariables > &aCtx)