MidlePayQml 0.0.4
MiddlePay QML module
qunlocks.hpp
1 #pragma once
2 
3 #include <QByteArray>
4 #include <QDataStream>
5 #include <QJsonValue>
6 #include"block/carray.hpp"
7 #include"block/qsignatures.hpp"
8 namespace qiota{
9 namespace qblocks{
10 class Unlock
11 {
12 public:
14 
15 
16  Unlock(types typ );
17  template<typename from_type> static std::shared_ptr<const Unlock> from_(from_type& val);
18 
19 
21  static std::shared_ptr<const Unlock> Reference(const quint16& reference_m);
22  static std::shared_ptr<const Unlock> Alias(const quint16& alias_reference_unlock_index_m);
23  static std::shared_ptr<const Unlock> NFT(const quint16& nft_reference_unlock_index_m);
24 
25  virtual void serialize(QDataStream &out)const;
26  virtual QJsonObject get_Json(void) const;
27 
28  types type(void)const{return type_m;}
29 
30 private:
31  const types type_m;
32 
33 };
34 
35 class Signature_Unlock: public Unlock
36 {
37 public:
41  void serialize(QDataStream &out)const;
42  QJsonObject get_Json(void) const;
43 
44 private:
46 
47 };
48 
49 class Reference_Unlock: public Unlock
50 {
51 public:
52  Reference_Unlock(const quint16& reference_m);
55  void serialize(QDataStream &out)const;
56  QJsonObject get_Json(void) const;
57 
58 
59 private:
60  quint16 reference_;
61 
62 };
63 
64 class Alias_Unlock: public Unlock
65 {
66 public:
67  Alias_Unlock(const quint16& alias_reference_unlock_index_m);
68  Alias_Unlock(const QJsonValue& val);
70  void serialize(QDataStream &out)const;
71  QJsonObject get_Json(void) const;
72 
73 
74 private:
75  quint16 alias_reference_unlock_index_;
76 
77 };
78 
79 class NFT_Unlock: public Unlock
80 {
81 public:
82  NFT_Unlock(const quint16& nft_reference_unlock_index_m);
83  NFT_Unlock(const QJsonValue& val);
85  void serialize(QDataStream &out)const;
86  QJsonObject get_Json(void) const;
87 
88 private:
89  quint16 nft_reference_unlock_index_;
90 
91 };
92 };
93 };
Definition: qunlocks.hpp:65
Alias_Unlock(QDataStream &in)
Alias_Unlock(const quint16 &alias_reference_unlock_index_m)
void serialize(QDataStream &out) const
QJsonObject get_Json(void) const
Alias_Unlock(const QJsonValue &val)
Definition: qunlocks.hpp:80
NFT_Unlock(QDataStream &in)
void serialize(QDataStream &out) const
NFT_Unlock(const quint16 &nft_reference_unlock_index_m)
NFT_Unlock(const QJsonValue &val)
QJsonObject get_Json(void) const
Definition: qunlocks.hpp:50
Reference_Unlock(const QJsonValue &val)
QJsonObject get_Json(void) const
void serialize(QDataStream &out) const
Reference_Unlock(const quint16 &reference_m)
Definition: qunlocks.hpp:36
QJsonObject get_Json(void) const
void serialize(QDataStream &out) const
Signature_Unlock(const std::shared_ptr< const class Signature > &signature_m)
Signature_Unlock(const QJsonValue &val)
Definition: qunlocks.hpp:11
types
Definition: qunlocks.hpp:13
@ Alias_typ
Definition: qunlocks.hpp:13
@ Reference_typ
Definition: qunlocks.hpp:13
@ Signature_typ
Definition: qunlocks.hpp:13
@ NFT_typ
Definition: qunlocks.hpp:13
static std::shared_ptr< const Unlock > Alias(const quint16 &alias_reference_unlock_index_m)
static std::shared_ptr< const Unlock > Reference(const quint16 &reference_m)
static std::shared_ptr< const Unlock > from_(from_type &val)
virtual QJsonObject get_Json(void) const
static std::shared_ptr< const Unlock > NFT(const quint16 &nft_reference_unlock_index_m)
types type(void) const
Definition: qunlocks.hpp:28
static std::shared_ptr< const Unlock > Signature(const std::shared_ptr< const class Signature > &signature_m)
virtual void serialize(QDataStream &out) const
Definition: qbigint.hpp:7