Fcitx
addoninstance.cpp
1 /*
2  * SPDX-FileCopyrightText: 2016-2016 CSSlayer <wengxt@gmail.com>
3  *
4  * SPDX-License-Identifier: LGPL-2.1-or-later
5  *
6  */
7 
8 #include "addoninstance.h"
9 #include <memory>
10 #include <stdexcept>
11 #include <string>
12 #include "fcitx-utils/macros.h"
13 #include "addoninfo.h"
14 #include "addoninstance_p.h"
15 
16 namespace fcitx {
17 
18 AddonInstance::AddonInstance()
19  : d_ptr(std::make_unique<AddonInstancePrivate>()) {}
20 AddonInstance::~AddonInstance() = default;
21 
22 void AddonInstance::registerCallback(const std::string &name,
23  AddonFunctionAdaptorBase *adaptor) {
24  FCITX_D();
25  d->callbackMap_[name] = adaptor;
26 }
27 
28 const AddonInfo *AddonInstance::addonInfo() const {
29  FCITX_D();
30  return d->addonInfo_;
31 }
32 
33 AddonFunctionAdaptorBase *AddonInstance::findCall(const std::string &name) {
34  FCITX_D();
35  auto iter = d->callbackMap_.find(name);
36  if (iter == d->callbackMap_.end()) {
37  throw std::runtime_error(name.c_str());
38  }
39  return iter->second;
40 }
41 
42 void AddonInstance::setCanRestart(bool canRestart) {
43  FCITX_D();
44  d->canRestart_ = canRestart;
45 }
46 
48  FCITX_D();
49  return d->canRestart_;
50 }
51 
52 } // namespace fcitx
Definition: action.cpp:17
Definition: matchrule.h:78
void setCanRestart(bool canRestart)
Set if this addon can safely restart.
Addon For fcitx.
bool canRestart() const
Check if this addon can safely restart.