mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
updated vm
- updated func/fift - additional checks in block validator - docs - tunnel prototype in ADNL
This commit is contained in:
parent
ba76f1404e
commit
54c7a4dcc3
50 changed files with 972 additions and 300 deletions
|
@ -249,6 +249,40 @@ class AdnlMessage {
|
|||
}
|
||||
};
|
||||
|
||||
class OutboundAdnlMessage {
|
||||
public:
|
||||
template <class T>
|
||||
OutboundAdnlMessage(T m, td::uint32 flags) : message_{std::move(m)}, flags_(flags) {
|
||||
}
|
||||
td::uint32 flags() const {
|
||||
return flags_;
|
||||
}
|
||||
void set_flags(td::uint32 f) {
|
||||
flags_ = f;
|
||||
}
|
||||
tl_object_ptr<ton_api::adnl_Message> tl() const {
|
||||
return message_.tl();
|
||||
}
|
||||
td::uint32 size() const {
|
||||
return message_.size();
|
||||
}
|
||||
template <class F>
|
||||
void visit(F &&f) {
|
||||
message_.visit(std::move(f));
|
||||
}
|
||||
template <class F>
|
||||
void visit(F &&f) const {
|
||||
message_.visit(std::move(f));
|
||||
}
|
||||
AdnlMessage release() {
|
||||
return std::move(message_);
|
||||
}
|
||||
|
||||
private:
|
||||
AdnlMessage message_;
|
||||
td::uint32 flags_;
|
||||
};
|
||||
|
||||
class AdnlMessageList {
|
||||
public:
|
||||
AdnlMessageList() {
|
||||
|
@ -291,6 +325,48 @@ class AdnlMessageList {
|
|||
std::vector<AdnlMessage> messages_;
|
||||
};
|
||||
|
||||
class OutboundAdnlMessageList {
|
||||
public:
|
||||
OutboundAdnlMessageList() {
|
||||
}
|
||||
OutboundAdnlMessageList(tl_object_ptr<ton_api::adnl_Message> message, td::uint32 flags) {
|
||||
auto msg = OutboundAdnlMessage{std::move(message), flags};
|
||||
messages_.emplace_back(std::move(msg));
|
||||
}
|
||||
OutboundAdnlMessageList(std::vector<tl_object_ptr<ton_api::adnl_Message>> messages, td::uint32 flags) {
|
||||
for (auto &message : messages) {
|
||||
messages_.push_back(OutboundAdnlMessage{std::move(message), flags});
|
||||
}
|
||||
}
|
||||
void push_back(OutboundAdnlMessage message) {
|
||||
messages_.push_back(std::move(message));
|
||||
}
|
||||
|
||||
td::uint32 size() const {
|
||||
return static_cast<td::uint32>(messages_.size());
|
||||
}
|
||||
tl_object_ptr<ton_api::adnl_Message> one_message() const {
|
||||
CHECK(size() == 1);
|
||||
return messages_[0].tl();
|
||||
}
|
||||
std::vector<tl_object_ptr<ton_api::adnl_Message>> mult_messages() const {
|
||||
std::vector<tl_object_ptr<ton_api::adnl_Message>> vec;
|
||||
for (auto &m : messages_) {
|
||||
vec.emplace_back(m.tl());
|
||||
}
|
||||
return vec;
|
||||
}
|
||||
static std::vector<tl_object_ptr<ton_api::adnl_Message>> empty_vector() {
|
||||
return std::vector<tl_object_ptr<ton_api::adnl_Message>>{};
|
||||
}
|
||||
auto &vector() {
|
||||
return messages_;
|
||||
}
|
||||
|
||||
private:
|
||||
std::vector<OutboundAdnlMessage> messages_;
|
||||
};
|
||||
|
||||
} // namespace adnl
|
||||
|
||||
} // namespace ton
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue