Yate
|
An account. More...
#include <yatecbase.h>
Public Member Functions | |
ClientAccount (const char *proto, const char *user, const char *host, bool startup, ClientContact *contact=0) | |
ClientAccount (const NamedList ¶ms, ClientContact *contact=0) | |
const NamedList & | params () const |
ObjList & | contacts () |
ObjList & | mucs () |
ClientContact * | contact () const |
void | setContact (ClientContact *contact) |
const String & | protocol () const |
bool | hasChat () const |
bool | hasPresence () const |
bool | startup () const |
void | startup (bool ok) |
virtual const String & | toString () const |
ClientResource * | resource (bool ref) |
ClientResource & | resource () const |
void | setResource (ClientResource *res) |
bool | save (bool ok=true, bool savePwd=true) |
virtual ClientContact * | findContact (const String &id, bool ref=false) |
virtual ClientContact * | findContact (const String *name=0, const String *uri=0, const String *skipId=0, bool ref=false) |
virtual ClientContact * | findContact (const String &id, const String &resid, bool ref=false) |
virtual ClientContact * | findContactByUri (const String &uri, bool ref=false) |
virtual MucRoom * | findRoom (const String &id, bool ref=false) |
virtual MucRoom * | findRoomByUri (const String &uri, bool ref=false) |
virtual ClientContact * | findAnyContact (const String &id, bool ref=false) |
virtual ClientContact * | appendContact (const String &id, const char *name, const char *uri=0) |
virtual ClientContact * | appendContact (const NamedList ¶ms) |
virtual ClientContact * | removeContact (const String &id, bool delObj=true) |
virtual void | clearRooms (bool saved, bool temp) |
virtual Message * | userlogin (bool login, const char *msg="user.login") |
virtual Message * | userData (bool update, const String &data, const char *msg="user.data") |
virtual void | fillItemParams (NamedList &list) |
const String & | dataDir () const |
virtual bool | setupDataDir (String *errStr=0, bool saveAcc=true) |
virtual bool | loadDataDirCfg (Configuration *cfg=0, const char *file="account.conf") |
virtual void | loadContacts (Configuration *cfg=0) |
virtual bool | clearDataDir (String *errStr=0) |
Public Attributes | |
NamedList | m_params |
Configuration | m_cfg |
Protected Member Functions | |
virtual void | destroyed () |
virtual void | appendContact (ClientContact *contact, bool muc=false) |
Protected Attributes | |
ObjList | m_contacts |
ObjList | m_mucs |
Friends | |
class | ClientContact |
class | MucRoom |
An account.
This class holds an account
ClientAccount | ( | const char * | proto, |
const char * | user, | ||
const char * | host, | ||
bool | startup, | ||
ClientContact * | contact = 0 |
||
) | [explicit] |
Constructor
proto | The account's protocol |
user | The account's username |
host | The account's host |
startup | True if the account should login at startup |
contact | Optional account's own contact |
ClientAccount | ( | const NamedList & | params, |
ClientContact * | contact = 0 |
||
) | [explicit] |
Constructor. Build an account from a list of parameters
params | The list of parameters used to build this account. The list's name will be used as account id |
contact | Optional account's own contact |
virtual ClientContact* appendContact | ( | const String & | id, |
const char * | name, | ||
const char * | uri = 0 |
||
) | [virtual] |
Build a contact and append it to the list
id | The contact's id |
name | The contact's name |
uri | Optional contact URI |
virtual ClientContact* appendContact | ( | const NamedList & | params | ) | [virtual] |
Build a contact and append it to the list
params | Contact parameters |
virtual bool clearDataDir | ( | String * | errStr = 0 | ) | [virtual] |
Clear account data directory
errStr | Optional string to be filled with error string |
virtual void clearRooms | ( | bool | saved, |
bool | temp | ||
) | [virtual] |
Clear MUC rooms. This method is thread safe
saved | True to clear saved rooms |
temp | True to clear temporary rooms |
ClientContact* contact | ( | ) | const [inline] |
Retrieve account own contact
Get this account's contacts. The caller should lock the account while browsing the list
virtual void destroyed | ( | ) | [protected, virtual] |
Pre-destruction notification, called just before the object is deleted. Unlike in the destructor it is safe to call virtual methods here. Reimplementing this method allows to perform any object cleanups.
Reimplemented from RefObject.
virtual void fillItemParams | ( | NamedList & | list | ) | [virtual] |
Fill a list used to update a account's list item
list | Parameter list to fill |
virtual ClientContact* findAnyContact | ( | const String & | id, |
bool | ref = false |
||
) | [virtual] |
Find any contact (regular or MUC room) by its id
id | The id of the desired contact |
ref | True to obtain a referenced pointer |
virtual ClientContact* findContact | ( | const String & | id, |
bool | ref = false |
||
) | [virtual] |
Find a contact by its id
id | The id of the desired contact |
ref | True to obtain a referenced pointer |
virtual ClientContact* findContact | ( | const String * | name = 0 , |
const String * | uri = 0 , |
||
const String * | skipId = 0 , |
||
bool | ref = false |
||
) | [virtual] |
Find a contact by name and/or uri. Account own contact is ignored
name | Optional name to check (may be a pointer to an empty string) |
uri | Optional uri to check (may be a pointer to an empty string) |
skipId | Optional contact to skip |
ref | True to obtain a referenced pointer |
virtual ClientContact* findContact | ( | const String & | id, |
const String & | resid, | ||
bool | ref = false |
||
) | [virtual] |
Find a contact having a given id and resource
id | The id of the desired contact |
resid | The id of the desired resource |
ref | True to obtain a referenced pointer |
virtual ClientContact* findContactByUri | ( | const String & | uri, |
bool | ref = false |
||
) | [virtual] |
Find a contact by its URI (build an id from account and uri)
uri | The contact's uri |
ref | True to get a referenced pointer |
Find a MUC room by its id
id | Room id |
ref | True to obtain a referenced pointer |
virtual MucRoom* findRoomByUri | ( | const String & | uri, |
bool | ref = false |
||
) | [virtual] |
Find a MUC room by its uri
uri | Room uri |
ref | True to obtain a referenced pointer |
bool hasChat | ( | ) | const [inline] |
Check if the account's protocol has chat support
References TelEngine::YSTRING().
bool hasPresence | ( | ) | const [inline] |
Check if the account's protocol has presence support
References TelEngine::YSTRING().
virtual void loadContacts | ( | Configuration * | cfg = 0 | ) | [virtual] |
Load contacts from configuration file
cfg | Optional configuration file to load. Load from account's conf file if 0 |
virtual bool loadDataDirCfg | ( | Configuration * | cfg = 0 , |
const char * | file = "account.conf" |
||
) | [virtual] |
Load configuration file from data directory
cfg | Optional configuration file to load. Load account's conf file if 0 |
file | File name. Defaults to 'account.conf' |
Get this account's muc rooms. The caller should lock the account while browsing the list
Get this account's parameters
virtual ClientContact* removeContact | ( | const String & | id, |
bool | delObj = true |
||
) | [virtual] |
Remove a contact from list. Reset contact's owner
id | The contact's id |
delObj | True to delete the object if found |
ClientResource* resource | ( | bool | ref | ) |
Get this account's resource
ClientResource& resource | ( | ) | const [inline] |
Get this account's resource
bool save | ( | bool | ok = true , |
bool | savePwd = true |
||
) |
Save or remove this account to/from client accounts file. Parameters starting with "internal." are not saved
ok | True to save, false to remove |
savePwd | True to save the password |
void setContact | ( | ClientContact * | contact | ) |
Set or reset account own contact
contact | New account contact (may be NULL to reset it) |
void setResource | ( | ClientResource * | res | ) |
Set this account's resource
res | The new account's resource (ignored if 0) |
virtual bool setupDataDir | ( | String * | errStr = 0 , |
bool | saveAcc = true |
||
) | [virtual] |
Set account directory in application data directory. Make sure it exists. Move all files from the old one if changed
errStr | Optional string to be filled with error string |
saveAcc | Save data directory parameter in client accounts |
bool startup | ( | ) | const [inline] |
Check if the account should be logged in at startup
References TelEngine::YSTRING().
void startup | ( | bool | ok | ) | [inline] |
Set the account's startup login flag
ok | The account's startup login flag value |
References String::boolText().
Get a string representation of this object
Reimplemented from GenObject.
virtual Message* userData | ( | bool | update, |
const String & | data, | ||
const char * | msg = "user.data" |
||
) | [virtual] |
Build a message used to update or query account userdata. Add account MUC rooms if data is 'chatrooms' and update
update | True to update, false to query |
data | Data to update or query |
msg | Optional message name. Default to 'user.data' |
Build a login/logout message from account's data
login | True to login, false to logout |
msg | Optional message name. Default to 'user.login' |