|
|
@ -64,7 +64,7 @@ public: |
|
|
|
Topic const& topic() const { return m_topic; } |
|
|
|
bytes const& data() const { return m_data; } |
|
|
|
|
|
|
|
Message open(Secret const& _s = Secret()) const; |
|
|
|
Message open(Secret const& _s = Secret(), unsigned _topicIndex = (unsigned)-1) const; |
|
|
|
|
|
|
|
unsigned workProved() const; |
|
|
|
void proveWork(unsigned _ms); |
|
|
@ -91,7 +91,7 @@ class Message |
|
|
|
{ |
|
|
|
public: |
|
|
|
Message() {} |
|
|
|
Message(Envelope const& _e, Secret const& _s = Secret()); |
|
|
|
Message(Envelope const& _e, Secret const& _s = Secret(), unsigned _topicIndex = (unsigned)-1); |
|
|
|
Message(bytes const& _payload): m_payload(_payload) {} |
|
|
|
Message(bytesConstRef _payload): m_payload(_payload.toBytes()) {} |
|
|
|
Message(bytes&& _payload) { std::swap(_payload, m_payload); } |
|
|
@ -108,11 +108,11 @@ public: |
|
|
|
operator bool() const { return !!m_payload.size() || m_from || m_to; } |
|
|
|
|
|
|
|
/// Turn this message into a ditributable Envelope.
|
|
|
|
Envelope seal(Secret _from, Topic const& _topic, unsigned _workToProve = 50, unsigned _ttl = 50) const; |
|
|
|
Envelope seal(Secret _from, FullTopic const& _topic, unsigned _workToProve = 50, unsigned _ttl = 50) const; |
|
|
|
// Overloads for skipping _from or specifying _to.
|
|
|
|
Envelope seal(Topic const& _topic, unsigned _ttl = 50, unsigned _workToProve = 50) const { return seal(Secret(), _topic, _workToProve, _ttl); } |
|
|
|
Envelope sealTo(Public _to, Topic const& _topic, unsigned _workToProve = 50, unsigned _ttl = 50) { m_to = _to; return seal(Secret(), _topic, _workToProve, _ttl); } |
|
|
|
Envelope sealTo(Secret _from, Public _to, Topic const& _topic, unsigned _workToProve = 50, unsigned _ttl = 50) { m_to = _to; return seal(_from, _topic, _workToProve, _ttl); } |
|
|
|
Envelope seal(FullTopic const& _topic, unsigned _ttl = 50, unsigned _workToProve = 50) const { return seal(Secret(), _topic, _workToProve, _ttl); } |
|
|
|
Envelope sealTo(Public _to, FullTopic const& _topic, unsigned _workToProve = 50, unsigned _ttl = 50) { m_to = _to; return seal(Secret(), _topic, _workToProve, _ttl); } |
|
|
|
Envelope sealTo(Secret _from, Public _to, FullTopic const& _topic, unsigned _workToProve = 50, unsigned _ttl = 50) { m_to = _to; return seal(_from, _topic, _workToProve, _ttl); } |
|
|
|
|
|
|
|
private: |
|
|
|
bool populate(bytes const& _data); |
|
|
|