8#define RESIPROCATE_SUBSYSTEM Subsystem::DUM
40 unsigned int removeLingerSecs)
44 for(ContactList::iterator i = contacts.begin(); i != contacts.end(); )
47 i = contacts.erase(i);
52 contacts.remove_if(rei);
57 mRemoveLingerSecs(removeLingerSecs)
63 for( database_map_t::const_iterator it =
mDatabase.begin();
102 (*it)->onAorModified(aor, contacts);
115 (*it)->onInitialSyncAor(connectionId, aor, contacts);
144 database_map_t::iterator it =
mDatabase.find(aor);
149 *(it->second) = contacts;
166 database_map_t::iterator i;
179 for(ContactList::iterator it = contacts.begin(); it != contacts.end(); it++)
183 it->mLastUpdated = now;
204 for( database_map_t::const_iterator it =
mDatabase.begin();
207 container.push_back(it->first);
220 bool registered =
false;
223 database_map_t::iterator i =
mDatabase.find(aor);
224 if (i !=
mDatabase.end() && i->second != 0)
230 for(ContactList::iterator it = contacts.begin(); it != contacts.end(); it++)
232 if(it->mRegExpires > now)
237 *maxExpires =
resipMax(*maxExpires, it->mRegExpires);
283 database_map_t::iterator i =
mDatabase.find(aor);
307 database_map_t::iterator i;
309 if (i ==
mDatabase.end() || i->second == 0)
316 contactList = i->second;
322 ContactList::iterator j;
325 for (j = contactList->begin(); j != contactList->end(); j++)
346 contactList->push_back(rec);
361 database_map_t::iterator i;
363 if (i ==
mDatabase.end() || i->second == 0)
367 contactList = i->second;
370 ContactList::iterator j;
373 for (j = contactList->begin(); j != contactList->end(); j++)
386 contactList->erase(j);
387 if (contactList->empty())
406 database_map_t::iterator i =
mDatabase.find(aor);
407 if (i ==
mDatabase.end() || i->second == 0)
418 for(ContactList::iterator it = contacts.begin(); it != contacts.end(); it++)
420 if(it->mRegExpires > now)
422 container.push_back(*it);
428 container = *(i->second);
436 database_map_t::iterator i =
mDatabase.find(aor);
437 if (i ==
mDatabase.end() || i->second == 0)
448 container = contacts;
void contactsRemoveIfRequired(ContactList &contacts, uint64_t &now, unsigned int removeLingerSecs)
#define resip_assert(x)
This file needs to work for both C and C++ code.
RemoveIfRequired(uint64_t &now, unsigned int removeLingerSecs)
bool operator()(const ContactInstanceRecord &rec)
unsigned int mRemoveLingerSecs
bool mustRemove(const ContactInstanceRecord &rec)
virtual void removeContact(const Uri &aor, const ContactInstanceRecord &rec)
std::set< Uri > mLockedRecords
virtual void removeAor(const Uri &aor)
virtual update_status_t updateContact(const resip::Uri &aor, const ContactInstanceRecord &rec)
virtual void addHandler(InMemorySyncRegDbHandler *handler)
virtual void unlockRecord(const Uri &aor)
unsigned int mRemoveLingerSecs
virtual ~InMemorySyncRegDb()
virtual bool aorIsRegistered(const Uri &aor)
virtual void getContactsFull(const Uri &aor, ContactList &container)
void invokeOnInitialSyncAor(unsigned int connectionId, const resip::Uri &aor, const ContactList &contacts)
InMemorySyncRegDb(unsigned int removeLingerSecs=0)
virtual void initialSync(unsigned int connectionId)
virtual void addAor(const Uri &aor, const ContactList &contacts)
virtual void getAors(UriList &container)
return all the AOR in the DB
virtual void getContacts(const Uri &aor, ContactList &container)
virtual void lockRecord(const Uri &aor)
Mutex mLockedRecordsMutex
void invokeOnAorModified(bool sync, const resip::Uri &aor, const ContactList &contacts)
virtual void removeHandler(InMemorySyncRegDbHandler *handler)
Condition mRecordUnlocked
static uint64_t getTimeSecs()
Returns the current clock time in seconds.
Represents the "SIP-URI" and "SIPS-URI" elements in the RFC 3261 grammar.
dcm! – add UnusedChecking(_enum) below;
std::unique_lock< Mutex > Lock
A convenience class to lock a Lockable (such as a Mutex) on object creation, and unlock on destructio...
unsigned long long uint64_t
const _Tp & resipMax(const _Tp &__a, const _Tp &__b)
std::list< ContactInstanceRecord > ContactList
unsigned __int64 uint64_t