~renatofilho/address-book-service/dummy-mode

« back to all changes in this revision

Viewing changes to lib/contacts-map.cpp

  • Committer: Renato Araujo Oliveira Filho
  • Date: 2014-02-28 22:16:36 UTC
  • mfrom: (97.1.4 address-book-service)
  • Revision ID: renato.filho@canonical.com-20140228221636-flyvtmxwwd4uu483
MergedĀ mainline.

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
 
34
34
ContactEntry::~ContactEntry()
35
35
{
36
 
     delete m_individual;
 
36
    delete m_individual;
37
37
}
38
38
 
39
39
QIndividual *ContactEntry::individual() const
52
52
    clear();
53
53
}
54
54
 
55
 
ContactEntry *ContactsMap::value(FolksIndividual *individual) const
56
 
{
57
 
    return m_individualsToEntry[individual];
58
 
}
59
 
 
60
55
ContactEntry *ContactsMap::value(const QString &id) const
61
56
{
62
57
    return m_idToEntry[id];
64
59
 
65
60
ContactEntry *ContactsMap::take(FolksIndividual *individual)
66
61
{
67
 
    if (m_individualsToEntry.remove(individual)) {
68
 
        return m_idToEntry.take(folks_individual_get_id(individual));
69
 
    }
70
 
    return 0;
 
62
    QString contactId = QString::fromUtf8(folks_individual_get_id(individual));
 
63
    return take(contactId);
 
64
}
 
65
 
 
66
ContactEntry *ContactsMap::take(const QString &id)
 
67
{
 
68
    QMutexLocker locker(&m_mutex);
 
69
    return m_idToEntry.take(id);
71
70
}
72
71
 
73
72
void ContactsMap::remove(const QString &id)
74
73
{
75
 
    ContactEntry *entry = m_idToEntry[id];
 
74
    QMutexLocker locker(&m_mutex);
 
75
    ContactEntry *entry = m_idToEntry.value(id,0);
76
76
    if (entry) {
77
 
        m_individualsToEntry.remove(entry->individual()->individual());
78
77
        m_idToEntry.remove(id);
79
78
        delete entry;
80
79
    }
81
80
}
82
81
 
83
 
bool ContactsMap::contains(FolksIndividual *individual) const
84
 
{
85
 
    return m_individualsToEntry.contains(individual);
86
 
}
87
 
 
88
82
void ContactsMap::insert(ContactEntry *entry)
89
83
{
 
84
    QMutexLocker locker(&m_mutex);
90
85
    FolksIndividual *fIndividual = entry->individual()->individual();
91
 
    m_idToEntry.insert(folks_individual_get_id(fIndividual), entry);
92
 
    m_individualsToEntry.insert(fIndividual, entry);
 
86
    if (fIndividual) {
 
87
        m_idToEntry.insert(folks_individual_get_id(fIndividual), entry);
 
88
    }
93
89
}
94
90
 
95
91
int ContactsMap::size() const
99
95
 
100
96
void ContactsMap::clear()
101
97
{
 
98
    QMutexLocker locker(&m_mutex);
102
99
    QList<ContactEntry*> entries = m_idToEntry.values();
103
100
    m_idToEntry.clear();
104
 
    m_individualsToEntry.clear();
105
 
 
106
101
    qDeleteAll(entries);
107
102
}
108
103
 
 
104
void ContactsMap::lock()
 
105
{
 
106
    m_mutex.lock();
 
107
}
 
108
 
 
109
void ContactsMap::unlock()
 
110
{
 
111
    m_mutex.unlock();
 
112
}
 
113
 
109
114
QList<ContactEntry*> ContactsMap::values() const
110
115
{
111
 
    return m_individualsToEntry.values();
 
116
    return m_idToEntry.values();
112
117
}
113
118
 
114
119
ContactEntry *ContactsMap::valueFromVCard(const QString &vcard) const
125
130
    return 0;
126
131
}
127
132
 
 
133
bool ContactsMap::contains(FolksIndividual *individual) const
 
134
{
 
135
    QString contactId = QString::fromUtf8(folks_individual_get_id(individual));
 
136
    return contains(contactId);
 
137
}
 
138
 
 
139
bool ContactsMap::contains(const QString &id) const
 
140
{
 
141
    return m_idToEntry.contains(id);
 
142
}
 
143
 
 
144
ContactEntry *ContactsMap::value(FolksIndividual *individual) const
 
145
{
 
146
    QString contactId = QString::fromUtf8(folks_individual_get_id(individual));
 
147
    return m_idToEntry.value(contactId, 0);
 
148
}
 
149
 
128
150
} //namespace