The ClientAccountList can now keep an account owning locally stored contacts. Fixed comments.
git-svn-id: http://voip.null.ro/svn/yate@3277 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
parent
26b9bead07
commit
ab9274e550
|
@ -3567,10 +3567,24 @@ void ClientAccount::appendContact(ClientContact* contact)
|
||||||
/**
|
/**
|
||||||
* ClientAccountList
|
* ClientAccountList
|
||||||
*/
|
*/
|
||||||
|
// Destructor
|
||||||
|
ClientAccountList::~ClientAccountList()
|
||||||
|
{
|
||||||
|
TelEngine::destruct(m_localContacts);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if a contact is locally stored
|
||||||
|
bool ClientAccountList::isLocalContact(ClientContact* c) const
|
||||||
|
{
|
||||||
|
return m_localContacts && c && c->account() == m_localContacts;
|
||||||
|
}
|
||||||
|
|
||||||
// Find an account
|
// Find an account
|
||||||
ClientAccount* ClientAccountList::findAccount(const String& id, bool ref)
|
ClientAccount* ClientAccountList::findAccount(const String& id, bool ref)
|
||||||
{
|
{
|
||||||
Lock lock(this);
|
Lock lock(this);
|
||||||
|
if (m_localContacts && m_localContacts->toString() == id)
|
||||||
|
return (!ref || m_localContacts->ref()) ? m_localContacts : 0;
|
||||||
ObjList* obj = m_accounts.find(id);
|
ObjList* obj = m_accounts.find(id);
|
||||||
if (!obj)
|
if (!obj)
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -3617,6 +3631,7 @@ void ClientAccountList::removeAccount(const String& id)
|
||||||
obj->remove();
|
obj->remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClientContact
|
* ClientContact
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -414,7 +414,7 @@ bool ClientLogic::debug(const String& name, bool active, Window* wnd)
|
||||||
/**
|
/**
|
||||||
* DefaultLogic
|
* DefaultLogic
|
||||||
*/
|
*/
|
||||||
// constructor
|
// Constructor
|
||||||
DefaultLogic::DefaultLogic(const char* name, int prio)
|
DefaultLogic::DefaultLogic(const char* name, int prio)
|
||||||
: ClientLogic(name,prio), m_accShowAdvanced(false)
|
: ClientLogic(name,prio), m_accShowAdvanced(false)
|
||||||
{
|
{
|
||||||
|
@ -1211,7 +1211,7 @@ bool DefaultLogic::updateContact(const NamedList& params, bool save, bool update
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Called when the user wants to save account data
|
// Called when the user wants to save contact data
|
||||||
bool DefaultLogic::acceptContact(NamedList* params, Window* wnd)
|
bool DefaultLogic::acceptContact(NamedList* params, Window* wnd)
|
||||||
{
|
{
|
||||||
if (!Client::self())
|
if (!Client::self())
|
||||||
|
|
31
yatecbase.h
31
yatecbase.h
|
@ -2940,12 +2940,19 @@ class YATE_API ClientAccountList : public String, public Mutex
|
||||||
public:
|
public:
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
* @param name List's name used for debug purposes
|
* @param name List's name used for debug purposes
|
||||||
|
* @param localContacts Optional account owning locally stored contacts
|
||||||
*/
|
*/
|
||||||
inline ClientAccountList(const char* name)
|
inline ClientAccountList(const char* name, ClientAccount* localContacts = 0)
|
||||||
: String(name), Mutex(true,"ClientAccountList")
|
: String(name), Mutex(true,"ClientAccountList"),
|
||||||
|
m_localContacts(localContacts)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Destructor
|
||||||
|
*/
|
||||||
|
~ClientAccountList();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the accounts list
|
* Get the accounts list
|
||||||
* @return The accounts list
|
* @return The accounts list
|
||||||
|
@ -2953,6 +2960,20 @@ public:
|
||||||
inline ObjList& accounts()
|
inline ObjList& accounts()
|
||||||
{ return m_accounts; }
|
{ return m_accounts; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the account owning locally stored contacts
|
||||||
|
* @return ClientAccount pointer or 0
|
||||||
|
*/
|
||||||
|
inline ClientAccount* localContacts() const
|
||||||
|
{ return m_localContacts; }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if a contact is locally stored
|
||||||
|
* @param c The contact to check
|
||||||
|
* @return True if the contact owner is the account owning locally stored contacts
|
||||||
|
*/
|
||||||
|
bool isLocalContact(ClientContact* c) const;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find an account
|
* Find an account
|
||||||
* @param id The account's id
|
* @param id The account's id
|
||||||
|
@ -2993,6 +3014,10 @@ public:
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ObjList m_accounts;
|
ObjList m_accounts;
|
||||||
|
|
||||||
|
private:
|
||||||
|
ClientAccountList() {} // Avoid using the default constructor
|
||||||
|
ClientAccount* m_localContacts; // Account owning locally stored contacts
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue