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

Function DeserializePeerId

Telegram/SourceFiles/data/data_peer_id.cpp:31–52  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

29}
30
31PeerId DeserializePeerId(quint64 serialized) {
32 const auto flag = (UserId::kReservedBit << 48);
33 const auto legacy = !(serialized & (UserId::kReservedBit << 48));
34 if (!legacy) {
35 return PeerId(serialized & (~flag));
36 }
37 constexpr auto PeerIdMask = uint64(0xFFFFFFFFULL);
38 constexpr auto PeerIdTypeMask = uint64(0xF00000000ULL);
39 constexpr auto PeerIdUserShift = uint64(0x000000000ULL);
40 constexpr auto PeerIdChatShift = uint64(0x100000000ULL);
41 constexpr auto PeerIdChannelShift = uint64(0x200000000ULL);
42 constexpr auto PeerIdFakeShift = uint64(0xF00000000ULL);
43 return ((serialized & PeerIdTypeMask) == PeerIdUserShift)
44 ? peerFromUser(UserId(serialized & PeerIdMask))
45 : ((serialized & PeerIdTypeMask) == PeerIdChatShift)
46 ? peerFromChat(ChatId(serialized & PeerIdMask))
47 : ((serialized & PeerIdTypeMask) == PeerIdChannelShift)
48 ? peerFromChannel(ChannelId(serialized & PeerIdMask))
49 : ((serialized & PeerIdTypeMask) == PeerIdFakeShift)
50 ? PeerId(FakeChatId(serialized & PeerIdMask))
51 : PeerId(0);
52}
53
54quint64 SerializePeerId(PeerId id) {
55 Expects(!(id.value & (UserId::kReservedBit << 48)));

Callers 13

readMethod · 0.85
setFromSerializedMethod · 0.85
readMapWithMethod · 0.85
readDraftCursorsMethod · 0.85
readDraftsWithCursorsMethod · 0.85
readTrustedPeersMethod · 0.85
readPeerFunction · 0.85
peekUserPhoneFunction · 0.85
ReadSettingFunction · 0.85
addFromSerializedMethod · 0.85

Calls 6

PeerIdClass · 0.85
peerFromUserFunction · 0.85
peerFromChatFunction · 0.85
ChatIdFunction · 0.85
peerFromChannelFunction · 0.85
UserIdClass · 0.70

Tested by

no test coverage detected