blob: 707046f41cd7ccef4d6c4f3992717026e0831db3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
/*
* Copyright (c) 2018 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
#include <Swift/Controllers/Chat/Chattables.h>
namespace Swift {
const std::vector<JID>& Chattables::get() const {
return list_;
}
const Chattables::State& Chattables::getState(const JID& jid) const {
auto it = states_.find(jid);
return it != states_.end() ? it->second : unknown_;
}
void Chattables::addJID(const JID& jid, State::Type type) {
if (states_.find(jid) != states_.end()) {
return;
}
State state;
state.type = type;
state.jid = jid;
onBeginAdd(static_cast<int>(list_.size()));
list_.push_back(jid);
states_[jid] = state;
onAdded();
}
void Chattables::setState(const JID& jid, State state) {
auto stateIter = states_.find(jid);
if (stateIter == states_.end()) {
return;
}
stateIter->second = state;
auto listPos = static_cast<int>(std::distance(list_.begin(), std::find(list_.begin(), list_.end(), jid)));
onChanged(jid, listPos);
}
}
|