/workspaces/astro/sol3-sdk/cpp/sol3/core/message_view.h Source File

Space-ng SDK: /workspaces/astro/sol3-sdk/cpp/sol3/core/message_view.h Source File
Space-ng SDK
message_view.h
Go to the documentation of this file.
1 // Copyright (c) Space-ng, inc. All rights reserved.
2 #pragma once
5 
6 namespace sol3::core {
7 
8 template <typename TMessageSpec>
14 class MessageView : public AnyMessageView {
15  static_assert(
17  "TMessageSpec must be sol3::core::MessageSpec<...>");
18 
19  public:
20  using TableType = typename TMessageSpec::TableType;
21  using NativeTableType = typename TableType::NativeTableType;
22 
24  MessageView() = default;
25 
26  MessageView(AnyMessageView const& view) : AnyMessageView(view) {}
27 
28  TableType const& payload() const {
29  return AnyMessageView::payload<TableType>();
30  }
31  friend void toJson(
32  MessageView<TMessageSpec> const& view,
33  std::string& out_json,
35  toJson(static_cast<AnyMessageView const&>(view), out_json, format);
36  }
37  friend std::string toJson(
38  MessageView<TMessageSpec> const& view,
40  return toJson(static_cast<AnyMessageView const&>(view), format);
41  }
42 
43  friend std::string format_as(MessageView<TMessageSpec> const& view) {
44  return toJson(view);
45  }
46 };
47 
48 } // namespace sol3::core
Definition: any_message_view.h:24
Definition: message_view.h:14
typename TMessageSpec::TableType TableType
Definition: message_view.h:20
friend void toJson(MessageView< TMessageSpec > const &view, std::string &out_json, JsonFormat format=JsonFormat::SINGLE_LINE)
Definition: message_view.h:31
friend std::string format_as(MessageView< TMessageSpec > const &view)
Definition: message_view.h:43
friend std::string toJson(MessageView< TMessageSpec > const &view, JsonFormat format=JsonFormat::SINGLE_LINE)
Definition: message_view.h:37
typename TableType::NativeTableType NativeTableType
Definition: message_view.h:21
TableType const & payload() const
Definition: message_view.h:28
MessageView()=default
Default-constructed, empty view.
MessageView(AnyMessageView const &view)
Definition: message_view.h:26
Definition: any_message_input.h:15
JsonFormat
Definition: fb_json.h:14
Definition: message_spec.h:44