mirror of
https://github.com/telegramdesktop/tdesktop
synced 2025-09-03 16:05:57 +00:00
Added ability to cache currency balance by peer.
This commit is contained in:
@@ -74,6 +74,11 @@ uint64 Credits::balance(PeerId peerId) const {
|
|||||||
return (it != _cachedPeerBalances.end()) ? it->second : 0;
|
return (it != _cachedPeerBalances.end()) ? it->second : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64 Credits::balanceCurrency(PeerId peerId) const {
|
||||||
|
const auto it = _cachedPeerCurrencyBalances.find(peerId);
|
||||||
|
return (it != _cachedPeerCurrencyBalances.end()) ? it->second : 0;
|
||||||
|
}
|
||||||
|
|
||||||
rpl::producer<uint64> Credits::balanceValue() const {
|
rpl::producer<uint64> Credits::balanceValue() const {
|
||||||
return _nonLockedBalance.value();
|
return _nonLockedBalance.value();
|
||||||
}
|
}
|
||||||
@@ -128,4 +133,8 @@ void Credits::apply(PeerId peerId, uint64 balance) {
|
|||||||
_cachedPeerBalances[peerId] = balance;
|
_cachedPeerBalances[peerId] = balance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Credits::applyCurrency(PeerId peerId, uint64 balance) {
|
||||||
|
_cachedPeerCurrencyBalances[peerId] = balance;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Data
|
} // namespace Data
|
||||||
|
@@ -35,6 +35,9 @@ public:
|
|||||||
[[nodiscard]] rpl::producer<float64> rateValue(
|
[[nodiscard]] rpl::producer<float64> rateValue(
|
||||||
not_null<PeerData*> ownedBotOrChannel);
|
not_null<PeerData*> ownedBotOrChannel);
|
||||||
|
|
||||||
|
void applyCurrency(PeerId peerId, uint64 balance);
|
||||||
|
[[nodiscard]] uint64 balanceCurrency(PeerId peerId) const;
|
||||||
|
|
||||||
void lock(int count);
|
void lock(int count);
|
||||||
void unlock(int count);
|
void unlock(int count);
|
||||||
void withdrawLocked(int count);
|
void withdrawLocked(int count);
|
||||||
@@ -50,6 +53,7 @@ private:
|
|||||||
std::unique_ptr<Api::CreditsStatus> _loader;
|
std::unique_ptr<Api::CreditsStatus> _loader;
|
||||||
|
|
||||||
base::flat_map<PeerId, uint64> _cachedPeerBalances;
|
base::flat_map<PeerId, uint64> _cachedPeerBalances;
|
||||||
|
base::flat_map<PeerId, uint64> _cachedPeerCurrencyBalances;
|
||||||
|
|
||||||
uint64 _balance = 0;
|
uint64 _balance = 0;
|
||||||
uint64 _locked = 0;
|
uint64 _locked = 0;
|
||||||
|
Reference in New Issue
Block a user