QtIotaBlock 0.4.1
Library with block types on IOTA
qpayloads.hpp
1 #pragma once
2 
3 #include "block/carray.hpp"
4 #include "block/qunlocks.hpp"
5 #include <QByteArray>
6 #include <QDataStream>
7 #include <QJsonArray>
8 #include <QJsonObject>
9 #include <QJsonValue>
10 namespace qiota
11 {
12 namespace qblocks
13 {
14 class Essence;
15 class Payload
16 {
17  public:
18  enum types : quint32
19  {
21  Transaction_typ = 6
22  };
23  Payload(types type_);
24  template <class from_type> static std::shared_ptr<const Payload> from_(from_type &val);
25 
26  static std::shared_ptr<const Payload> Tagged_Data(const tagF &tag_m, const dataF &data_m);
28  const pvector<const Unlock> &unlocks_m);
29 
30  virtual void serialize(QDataStream &out) const;
31  virtual QJsonObject get_Json(void) const;
32  virtual c_array get_id(void) const
33  {
34  return c_array(32, 0);
35  };
36  types type(void) const
37  {
38  return type_m;
39  }
40 
41  private:
42  const types type_m;
43 };
44 
46 {
47  public:
48  Tagged_Data_Payload(const tagF &tag_m, const dataF &data_m);
49  Tagged_Data_Payload(const QJsonValue &val);
51  void serialize(QDataStream &out) const;
52 
53  QJsonObject get_Json(void) const;
54 
55  private:
56  tagF tag_;
57  dataF data_;
58 };
59 
61 {
62  public:
64  Transaction_Payload(const QJsonValue &val);
66 
67  void serialize(QDataStream &out) const;
68 
69  QJsonObject get_Json(void) const;
70  c_array get_id(void) const;
71 
72  private:
74  pvector<const Unlock> unlocks_;
75 };
76 }; // namespace qblocks
77 }; // namespace qiota
Definition: qpayloads.hpp:16
virtual c_array get_id(void) const
Definition: qpayloads.hpp:32
types
Definition: qpayloads.hpp:19
@ Transaction_typ
Definition: qpayloads.hpp:21
@ Tagged_Data_typ
Definition: qpayloads.hpp:20
Payload(types type_)
Definition: qpayloads.cpp:13
virtual QJsonObject get_Json(void) const
Definition: qpayloads.cpp:9
static std::shared_ptr< const Payload > from_(from_type &val)
Definition: qpayloads.cpp:14
virtual void serialize(QDataStream &out) const
Definition: qpayloads.cpp:8
static std::shared_ptr< const Payload > Tagged_Data(const tagF &tag_m, const dataF &data_m)
Definition: qpayloads.cpp:33
types type(void) const
Definition: qpayloads.hpp:36
static std::shared_ptr< const Payload > Transaction(const std::shared_ptr< const Essence > &essence_m, const pvector< const Unlock > &unlocks_m)
Definition: qpayloads.cpp:62
Definition: qpayloads.hpp:46
Tagged_Data_Payload(const tagF &tag_m, const dataF &data_m)
Definition: qpayloads.cpp:38
QJsonObject get_Json(void) const
Definition: qpayloads.cpp:53
void serialize(QDataStream &out) const
Definition: qpayloads.cpp:47
Definition: qpayloads.hpp:61
QJsonObject get_Json(void) const
Definition: qpayloads.cpp:93
c_array get_id(void) const
Definition: qpayloads.cpp:106
Transaction_Payload(const std::shared_ptr< const Essence > &essence_m, const pvector< const Unlock > &unlocks_m)
Definition: qpayloads.cpp:68
void serialize(QDataStream &out) const
Definition: qpayloads.cpp:85
Byte Array that takes care of storing the objects in serialized form.
Definition: carray.hpp:30
Definition: carray.hpp:22