X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning-c-bindings%2Finclude%2Flightningpp.hpp;h=78193157c19c652b4fbf36fdacb9fa79509091f0;hb=808db585782d1669b1f6767d5fa407f91fde77e8;hp=bd499ce6ed6c2237b69159099d8ba4c5d70b1f36;hpb=6dd9c2e97c6b56b8a2c456663ea85ff1c46b7462;p=rust-lightning diff --git a/lightning-c-bindings/include/lightningpp.hpp b/lightning-c-bindings/include/lightningpp.hpp index bd499ce6..78193157 100644 --- a/lightning-c-bindings/include/lightningpp.hpp +++ b/lightning-c-bindings/include/lightningpp.hpp @@ -702,6 +702,21 @@ public: const LDKAccess* operator &() const { return &self; } const LDKAccess* operator ->() const { return &self; } }; +class Listen { +private: + LDKListen self; +public: + Listen(const Listen&) = delete; + Listen(Listen&& o) : self(o.self) { memset(&o, 0, sizeof(Listen)); } + Listen(LDKListen&& m_self) : self(m_self) { memset(&m_self, 0, sizeof(LDKListen)); } + operator LDKListen() && { LDKListen res = self; memset(&self, 0, sizeof(LDKListen)); return res; } + ~Listen() { Listen_free(self); } + Listen& operator=(Listen&& o) { Listen_free(self); self = o.self; memset(&o, 0, sizeof(Listen)); return *this; } + LDKListen* operator &() { return &self; } + LDKListen* operator ->() { return &self; } + const LDKListen* operator &() const { return &self; } + const LDKListen* operator ->() const { return &self; } +}; class Watch { private: LDKWatch self;