mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
tonNode.getOutMsgQueueProof query in public shard overlays (#1413)
* tonNode.getOutMsgQueueProof query in public shard overlays * Allow responding to getOutMsgQueueProof requests one at a time only
This commit is contained in:
parent
9ae88d87e3
commit
7bc50e63d7
37 changed files with 729 additions and 51 deletions
|
@ -31,16 +31,19 @@ class TokenManager : public td::actor::Actor {
|
|||
public:
|
||||
TokenManager() {
|
||||
}
|
||||
explicit TokenManager(td::uint32 max_tokens)
|
||||
: free_tokens_(max_tokens), free_priority_tokens_(max_tokens), max_priority_tokens_(max_tokens) {
|
||||
}
|
||||
void alarm() override;
|
||||
|
||||
void get_download_token(size_t download_size, td::uint32 priority, td::Timestamp timeout,
|
||||
td::Promise<std::unique_ptr<DownloadToken>> promise);
|
||||
void download_token_cleared(size_t download_size, td::uint32 priority);
|
||||
void get_token(size_t size, td::uint32 priority, td::Timestamp timeout,
|
||||
td::Promise<std::unique_ptr<ActionToken>> promise);
|
||||
void token_cleared(size_t size, td::uint32 priority);
|
||||
|
||||
private:
|
||||
std::unique_ptr<DownloadToken> gen_token(size_t download_size, td::uint32 priority);
|
||||
std::unique_ptr<ActionToken> gen_token(size_t size, td::uint32 priority);
|
||||
struct PendingPromiseKey {
|
||||
size_t download_size;
|
||||
size_t size;
|
||||
td::uint32 priority;
|
||||
td::uint64 seqno;
|
||||
|
||||
|
@ -50,7 +53,7 @@ class TokenManager : public td::actor::Actor {
|
|||
};
|
||||
struct PendingPromise {
|
||||
td::Timestamp timeout;
|
||||
td::Promise<std::unique_ptr<DownloadToken>> promise;
|
||||
td::Promise<std::unique_ptr<ActionToken>> promise;
|
||||
};
|
||||
td::uint64 seqno_ = 0;
|
||||
std::map<PendingPromiseKey, PendingPromise> pending_;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue