QtIotaBlock 0.4.1
Library with block types on IOTA
qinputs.hpp
1 #pragma once
2 
3 #include "block/carray.hpp"
4 #include <QByteArray>
5 #include <QDataStream>
6 #include <QJsonObject>
7 #include <QJsonValue>
8 namespace qiota
9 {
10 namespace qblocks
11 {
12 class Input
13 {
14  public:
15  enum types : quint8
16  {
17  UTXO_typ = 0
18  };
19  Input(types typ);
20  template <class from_type> static std::shared_ptr<const Input> from_(from_type &val);
21 
22  static std::shared_ptr<const Input> UTXO(const Transaction_ID &transaction_id_m,
23  const quint16 &transaction_output_index_m);
24  virtual void serialize(QDataStream &out) const;
25  virtual QJsonObject get_Json(void) const;
26 
27  types type(void) const
28  {
29  return type_m;
30  }
31 
32  private:
33  const types type_m;
34 };
35 
36 /*
37  * @brief Describes an input which references an unspent transaction output to consume.
38  *
39  */
40 class UTXO_Input : public Input
41 {
42  public:
43  UTXO_Input(const Transaction_ID &transaction_id_m, const quint16 &transaction_output_index_m);
44  UTXO_Input(const QJsonValue &val);
46  void serialize(QDataStream &out) const;
47  QJsonObject get_Json(void) const;
48 
49  private:
50  quint16 transaction_output_index_;
51  Transaction_ID transaction_id_;
52 };
53 
54 }; // namespace qblocks
55 
56 }; // namespace qiota
Definition: qinputs.hpp:13
static std::shared_ptr< const Input > from_(from_type &val)
Definition: qinputs.cpp:13
virtual void serialize(QDataStream &out) const
Definition: qinputs.cpp:6
static std::shared_ptr< const Input > UTXO(const Transaction_ID &transaction_id_m, const quint16 &transaction_output_index_m)
Definition: qinputs.cpp:31
Input(types typ)
Definition: qinputs.cpp:11
types
Definition: qinputs.hpp:16
@ UTXO_typ
Definition: qinputs.hpp:17
types type(void) const
Definition: qinputs.hpp:27
virtual QJsonObject get_Json(void) const
Definition: qinputs.cpp:7
Definition: qinputs.hpp:41
UTXO_Input(const Transaction_ID &transaction_id_m, const quint16 &transaction_output_index_m)
Definition: qinputs.cpp:37
void serialize(QDataStream &out) const
Definition: qinputs.cpp:47
QJsonObject get_Json(void) const
Definition: qinputs.cpp:53
Byte Array that takes care of storing the objects in serialized form.
Definition: carray.hpp:30
Definition: carray.hpp:22