Yate: ClientAccount Class Reference

Yate

Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
ClientAccount Class Reference

An account. More...

`#include <yatecbase.h>`

Inheritance diagram for ClientAccount:

## Public Member Functions
| ClientAccount (const char *proto, const char *user, const char *host, bool startup, ClientContact *contact=0)
| ClientAccount (const NamedList &params, 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 &params)
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 Member Functions inherited from RefObject
| RefObject ()
virtual | ~RefObject ()
virtual void * | getObject (const String &name) const
virtual bool | alive () const
bool | ref ()
bool | deref ()
int | refcount () const
virtual void | destruct ()
Public Member Functions inherited from GenObject
| GenObject ()
virtual | ~GenObject ()
virtual const String & | traceId () const
NamedCounter * | getObjCounter () const
NamedCounter * | setObjCounter (NamedCounter *counter)
Public Member Functions inherited from Mutex
| Mutex (bool recursive=false, const char *name=0)
| Mutex (const Mutex &original)
| ~Mutex ()
Mutex & | operator= (const Mutex &original)
virtual bool | lock (long maxwait=-1)
virtual bool | unlock ()
virtual bool | locked () const
const char * | owner () const
bool | recursive () const
virtual Mutex * | lockableMutex ()
Public Member Functions inherited from Lockable
virtual | ~Lockable ()
virtual bool | check (long maxwait=-1)
virtual bool | unlockAll ()
virtual Semaphore * | lockableSemaphore ()
virtual RWLock * | lockableRWLock ()

## Public Attributes
NamedList | m_params
Configuration | m_cfg

## Protected Member Functions
virtual void | destroyed ()
virtual void | appendContact (ClientContact *contact, bool muc=false)
Protected Member Functions inherited from RefObject
virtual void | zeroRefs ()
bool | resurrect ()

## Protected Attributes
ObjList | m_contacts
ObjList | m_mucs

## Friends
class | ClientContact
class | MucRoom

## Additional Inherited Members
Static Public Member Functions inherited from RefObject
static bool | alive (const RefObject *obj)
static bool | efficientIncDec ()
Static Public Member Functions inherited from GenObject
static void * | getObject (const String &name, const GenObject *obj)
static bool | getObjCounting ()
static void | setObjCounting (bool enable)
static NamedCounter * | getObjCounter (const String &name, bool create=true)
static ObjList & | getObjCounters ()
Static Public Member Functions inherited from Mutex
static int | count ()
static int | locks ()
static bool | efficientTimedLock ()
Static Public Member Functions inherited from Lockable
static void | wait (unsigned long maxwait)
static unsigned long | wait ()
static void | startUsingNow ()
static void | enableSafety (bool safe=true)
static bool | safety ()

## Detailed Description

An account.

This class holds an account

## Constructor & Destructor Documentation

## ◆ ClientAccount() [1/2]

ClientAccount | ( | const char * | proto,
|  | const char * | user,
|  | const char * | host,
|  | bool | startup,
|  | ClientContact * | contact = 0 )
| explicit

Constructor

Parameters

  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

References contact(), and startup().

## ◆ ClientAccount() [2/2]

ClientAccount | ( | const NamedList & | params,
|  | ClientContact * | contact = 0 )
| explicit

Constructor. Build an account from a list of parameters

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

References contact(), and params().

## Member Function Documentation

## ◆ appendContact() [1/2]

virtual ClientContact * appendContact | ( | const NamedList & | params | ) |
| virtual

Build a contact and append it to the list

Parameters

  params | Contact parameters

Returns
  ClientContact pointer or 0 if a contact with the same id already exists

References params().

## ◆ appendContact() [2/2]

virtual ClientContact * appendContact | ( | const String & | id,
|  | const char * | name,
|  | const char * | uri = 0 )
| virtual

Build a contact and append it to the list

Parameters

  id | The contact's id
  name | The contact's name
  uri | Optional contact URI

Returns
  ClientContact pointer or 0 if a contact with the given id already exists

## ◆ clearDataDir()

virtual bool clearDataDir | ( | String * | errStr = 0 | ) |
| virtual

Clear account data directory

Parameters

  errStr | Optional string to be filled with error string

Returns
  True if all files were succesfully removed

## ◆ clearRooms()

virtual void clearRooms | ( | bool | saved,
|  | bool | temp )
| virtual

Clear MUC rooms. This method is thread safe

Parameters

  saved | True to clear saved rooms
  temp | True to clear temporary rooms

## ◆ contact()

ClientContact * contact | ( |  | ) | const
| inline

Retrieve account own contact

Returns
  ClientContact pointer

Referenced by ClientAccount(), ClientAccount(), destroyed(), and setContact().

## ◆ contacts()

ObjList & contacts | ( |  | ) |
| inline

Get this account's contacts. The caller should lock the account while browsing the list

Returns
  This account's contacts list

## ◆ dataDir()

const String & dataDir | ( |  | ) | const
| inline

Retrieve account data directory

Returns
  Account data directory

## ◆ destroyed()

virtual void destroyed | ( |  | ) |
| protectedvirtual

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.

References contact().

## ◆ fillItemParams()

virtual void fillItemParams | ( | NamedList & | list | ) |
| virtual

Fill a list used to update a account's list item

Parameters

  list | Parameter list to fill

## ◆ findAnyContact()

virtual ClientContact * findAnyContact | ( | const String & | id,
|  | bool | ref = false )
| virtual

Find any contact (regular or MUC room) by its id

Parameters

  id | The id of the desired contact
  ref | True to obtain a referenced pointer

Returns
  ClientContact pointer (may be account's own contact) or 0 if not found

References RefObject::ref().

## ◆ findContact() [1/3]

virtual ClientContact * findContact | ( | const String & | id,
|  | bool | ref = false )
| virtual

Find a contact by its id

Parameters

  id | The id of the desired contact
  ref | True to obtain a referenced pointer

Returns
  ClientContact pointer (may be account's own contact) or 0 if not found

References RefObject::ref().

## ◆ findContact() [2/3]

virtual ClientContact * findContact | ( | const String & | id,
|  | const String & | resid,
|  | bool | ref = false )
| virtual

Find a contact having a given id and resource

Parameters

  id | The id of the desired contact
  resid | The id of the desired resource
  ref | True to obtain a referenced pointer

Returns
  ClientContact pointer or 0 if not found

References RefObject::ref().

## ◆ findContact() [3/3]

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

Parameters

  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

Returns
  ClientContact pointer or 0 if not found

References RefObject::ref().

## ◆ findContactByUri()

virtual ClientContact * findContactByUri | ( | const String & | uri,
|  | bool | ref = false )
| virtual

Find a contact by its URI (build an id from account and uri)

Parameters

  uri | The contact's uri
  ref | True to get a referenced pointer

Returns
  ClientContact pointer or 0 if not found

References RefObject::ref().

## ◆ findRoom()

virtual MucRoom * findRoom | ( | const String & | id,
|  | bool | ref = false )
| virtual

Find a MUC room by its id

Parameters

  id | Room id
  ref | True to obtain a referenced pointer

Returns
  MucRoom pointer or 0 if not found

References RefObject::ref().

## ◆ findRoomByUri()

virtual MucRoom * findRoomByUri | ( | const String & | uri,
|  | bool | ref = false )
| virtual

Find a MUC room by its uri

Parameters

  uri | Room uri
  ref | True to obtain a referenced pointer

Returns
  MucRoom pointer or 0 if not found

References RefObject::ref().

## ◆ hasChat()

bool hasChat | ( |  | ) | const
| inline

Check if the account's protocol has chat support

Returns
  True if this account has chat support

References protocol().

## ◆ hasPresence()

bool hasPresence | ( |  | ) | const
| inline

Check if the account's protocol has presence support

Returns
  True if this account has presence support

References protocol().

## ◆ loadContacts()

virtual void loadContacts | ( | Configuration * | cfg = 0 | ) |
| virtual

Load contacts from configuration file

Parameters

  cfg | Optional configuration file to load. Load from account's conf file if 0

## ◆ loadDataDirCfg()

virtual bool loadDataDirCfg | ( | Configuration * | cfg = 0,
|  | const char * | file = "account.conf" )
| virtual

Load configuration file from data directory

Parameters

  cfg | Optional configuration file to load. Load account's conf file if 0
  file | File name. Defaults to 'account.conf'

Returns
  True on success

## ◆ mucs()

ObjList & mucs | ( |  | ) |
| inline

Get this account's muc rooms. The caller should lock the account while browsing the list

Returns
  This account's mucs list

## ◆ params()

const NamedList & params | ( |  | ) | const
| inline

Get this account's parameters

Returns
  This account's parameter list

Referenced by appendContact(), and ClientAccount().

## ◆ protocol()

const String & protocol | ( |  | ) | const
| inline

Retrieve the account's protocol

Returns
  The account's protocol

Referenced by hasChat(), and hasPresence().

## ◆ removeContact()

virtual ClientContact * removeContact | ( | const String & | id,
|  | bool | delObj = true )
| virtual

Remove a contact from list. Reset contact's owner

Parameters

  id | The contact's id
  delObj | True to delete the object if found

Returns
  ClientContact pointer if found and not deleted or 0

## ◆ resource() [1/2]

ClientResource & resource | ( |  | ) | const
| inline

Get this account's resource

Returns
  ClientResource reference

## ◆ resource() [2/2]

ClientResource * resource | ( | bool | ref | ) |

Get this account's resource

Returns
  ClientResource pointer

References RefObject::ref().

## ◆ save()

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

Parameters

  ok | True to save, false to remove
  savePwd | True to save the password

Returns
  True on success

## ◆ setContact()

void setContact | ( | ClientContact * | contact | ) |

Set or reset account own contact

Parameters

  contact | New account contact (may be NULL to reset it)

References contact().

## ◆ setResource()

void setResource | ( | ClientResource * | res | ) |

Set this account's resource

Parameters

  res | The new account's resource (ignored if 0)

## ◆ setupDataDir()

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

Parameters

  errStr | Optional string to be filled with error string
  saveAcc | Save data directory parameter in client accounts

Returns
  True on success

## ◆ startup() [1/2]

bool startup | ( |  | ) | const
| inline

Check if the account should be logged in at startup

Returns
  True if the account should be logged in at startup

Referenced by ClientAccount().

## ◆ startup() [2/2]

void startup | ( | bool | ok | ) |
| inline

Set the account's startup login flag

Parameters

  ok | The account's startup login flag value

References String::boolText().

## ◆ toString()

virtual const String & toString | ( |  | ) | const
| inlinevirtual

Get a string representation of this object

Returns
  The account's compare id

Reimplemented from GenObject.

## ◆ userData()

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

Parameters

  update | True to update, false to query
  data | Data to update or query
  msg | Optional message name. Default to 'user.data'

Returns
  A valid Message pointer

## ◆ userlogin()

virtual Message * userlogin | ( | bool | login,
|  | const char * | msg = "user.login" )
| virtual

Build a login/logout message from account's data

Parameters

  login | True to login, false to logout
  msg | Optional message name. Default to 'user.login'

Returns
  A valid Message pointer

The documentation for this class was generated from the following file:

- yatecbase.h