MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / ResolveTopPinnedId

Function ResolveTopPinnedId

Telegram/SourceFiles/data/data_peer.cpp:2208–2246  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2206}
2207
2208FullMsgId ResolveTopPinnedId(
2209 not_null<PeerData*> peer,
2210 MsgId topicRootId,
2211 PeerId monoforumPeerId,
2212 PeerData *migrated) {
2213 const auto slice = peer->session().storage().snapshot(
2214 Storage::SharedMediaQuery(
2215 Storage::SharedMediaKey(
2216 peer->id,
2217 topicRootId,
2218 monoforumPeerId,
2219 Storage::SharedMediaType::Pinned,
2220 ServerMaxMsgId - 1),
2221 1,
2222 1));
2223 const auto old = (!topicRootId && !monoforumPeerId && migrated)
2224 ? migrated->session().storage().snapshot(
2225 Storage::SharedMediaQuery(
2226 Storage::SharedMediaKey(
2227 migrated->id,
2228 MsgId(0), // topicRootId
2229 PeerId(0), // monoforumPeerId
2230 Storage::SharedMediaType::Pinned,
2231 ServerMaxMsgId - 1),
2232 1,
2233 1))
2234 : Storage::SharedMediaResult{
2235 .count = 0,
2236 .skippedBefore = 0,
2237 .skippedAfter = 0,
2238 };
2239 if (!slice.messageIds.empty()) {
2240 return FullMsgId(peer->id, slice.messageIds.back());
2241 } else if (!migrated || slice.count != 0 || old.messageIds.empty()) {
2242 return FullMsgId();
2243 } else {
2244 return FullMsgId(migrated->id, old.messageIds.back());
2245 }
2246}
2247
2248FullMsgId ResolveMinPinnedId(
2249 not_null<PeerData*> peer,

Callers 6

HidePinnedBarFunction · 0.85
IsOldForPinFunction · 0.85
switchPinnedHiddenMethod · 0.85
checkPinnedBarStateMethod · 0.85
checkPinnedBarStateMethod · 0.85

Calls 8

PeerIdClass · 0.85
MsgIdClass · 0.70
FullMsgIdClass · 0.70
SharedMediaQueryClass · 0.50
SharedMediaKeyClass · 0.50
snapshotMethod · 0.45
sessionMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected