mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
Accelerator, part 1 (#1119)
This commit contains some parts of https://github.com/ton-blockchain/ton/tree/accelerator This is auxiliary code that mostly does not change node behavior. 1) Semiprivate overlays and other improvements in overlays code 2) Rename actual_min_split -> monitor_min_split, fix building shard overlays 3) Loading block candidates by block id from DB, fix accept_block after validator restart 4) Cells: ProofStorageStat and changes in CellUsageTree 5) Remove some unused code, other minor changes
This commit is contained in:
parent
9a10f79fba
commit
908415d00b
66 changed files with 2221 additions and 638 deletions
|
@ -148,6 +148,39 @@ td::Result<tl_object_ptr<std::enable_if_t<!std::is_constructible<T>::value, T>>>
|
|||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
td::Result<tl_object_ptr<std::enable_if_t<std::is_constructible<T>::value, T>>> fetch_tl_prefix(td::Slice &data,
|
||||
bool boxed) {
|
||||
td::TlParser p(data);
|
||||
tl_object_ptr<T> R;
|
||||
if (boxed) {
|
||||
R = TlFetchBoxed<TlFetchObject<T>, T::ID>::parse(p);
|
||||
} else {
|
||||
R = move_tl_object_as<T>(T::fetch(p));
|
||||
}
|
||||
if (p.get_status().is_ok()) {
|
||||
data.remove_prefix(data.size() - p.get_left_len());
|
||||
return std::move(R);
|
||||
} else {
|
||||
return p.get_status();
|
||||
}
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
td::Result<tl_object_ptr<std::enable_if_t<!std::is_constructible<T>::value, T>>> fetch_tl_prefix(td::Slice &data,
|
||||
bool boxed) {
|
||||
CHECK(boxed);
|
||||
td::TlParser p(data);
|
||||
tl_object_ptr<T> R;
|
||||
R = move_tl_object_as<T>(T::fetch(p));
|
||||
if (p.get_status().is_ok()) {
|
||||
data.remove_prefix(data.size() - p.get_left_len());
|
||||
return std::move(R);
|
||||
} else {
|
||||
return p.get_status();
|
||||
}
|
||||
}
|
||||
|
||||
template <class T>
|
||||
[[deprecated]] tl_object_ptr<T> clone_tl_object(const tl_object_ptr<T> &obj) {
|
||||
auto B = serialize_tl_object(obj, true);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue