xbmc
IJSONRPCAnnouncer.h
1 /*
2  * Copyright (C) 2012-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "interfaces/IAnnouncer.h"
12 #include "utils/JSONVariantWriter.h"
13 #include "utils/Variant.h"
14 
15 namespace JSONRPC
16 {
18  {
19  public:
20  ~IJSONRPCAnnouncer() override = default;
21 
22  protected:
23  static std::string AnnouncementToJSONRPC(ANNOUNCEMENT::AnnouncementFlag flag,
24  const std::string& sender,
25  const std::string& method,
26  const CVariant& data,
27  bool compactOutput)
28  {
29  CVariant root;
30  root["jsonrpc"] = "2.0";
31 
32  std::string namespaceMethod = ANNOUNCEMENT::AnnouncementFlagToString(flag);
33  namespaceMethod += ".";
34  namespaceMethod += method;
35  root["method"] = namespaceMethod;
36 
37  root["params"]["data"] = data;
38  root["params"]["sender"] = sender;
39 
40  std::string str;
41  CJSONVariantWriter::Write(root, str, compactOutput);
42 
43  return str;
44  }
45  };
46 }
Definition: IAnnouncer.h:70
Definition: AddonsOperations.h:23
Definition: Variant.h:31
Definition: IJSONRPCAnnouncer.h:17