Yate
ClientAccountList Class Reference

A client account list. More...

#include <yatecbase.h>

Inheritance diagram for ClientAccountList:
String Mutex GenObject Lockable

Public Member Functions

 ClientAccountList (const char *name, ClientAccount *localContacts=0)
 
 ~ClientAccountList ()
 
ObjList & accounts ()
 
ClientAccount * localContacts () const
 
bool isLocalContact (ClientContact *c) const
 
bool isLocalContact (const String &id) const
 
virtual ClientAccount * findAccount (const String &id, bool ref=false)
 
virtual ClientContact * findContactByUri (const String &account, const String &uri, bool ref=false)
 
virtual ClientContact * findContact (const String &account, const String &id, bool ref=false)
 
virtual ClientContact * findContact (const String &builtId, bool ref=false)
 
virtual ClientContact * findContactByInstance (const String &id, String *instance=0, bool ref=false)
 
virtual MucRoom * findRoom (const String &id, bool ref=false)
 
virtual MucRoom * findRoomByMember (const String &id, bool ref=false)
 
virtual ClientContact * findAnyContact (const String &id, bool ref=false)
 
virtual ClientAccount * findSingleRegAccount (const String *skipProto=0, bool ref=false)
 
virtual bool appendAccount (ClientAccount *account)
 
virtual void removeAccount (const String &id)
 
- Public Member Functions inherited from String
 String ()
 
 String (const char *value, int len=-1)
 
 String (char value, unsigned int repeat=1)
 
 String (int32_t value)
 
 String (uint32_t value)
 
 String (int64_t value)
 
 String (uint64_t value)
 
 String (bool value)
 
 String (double value)
 
 String (const String &value)
 
 String (const String *value)
 
virtual ~String ()
 
virtual void * getObject (const String &name) const
 
const char * c_str () const
 
const char * safe () const
 
const char * safe (const char *defStr) const
 
unsigned int length () const
 
bool null () const
 
int lenUtf8 (uint32_t maxChar=0x10ffff, bool overlong=false) const
 
int fixUtf8 (const char *replace=0, uint32_t maxChar=0x10ffff, bool overlong=false)
 
unsigned int encodeFlags (const TokenDict *tokens) const
 
uint64_t encodeFlags (const TokenDict64 *tokens) const
 
String & decodeFlags (unsigned int flags, const TokenDict *tokens, bool unknownflag=true)
 
String & decodeFlags (uint64_t flags, const TokenDict64 *tokens, bool unknownflag=true)
 
bool checkBOM () const
 
bool stripBOM ()
 
unsigned int hash () const
 
void clear ()
 
char at (int index) const
 
String substr (int offs, int len=-1) const
 
String & trimBlanks ()
 
String & trimSpaces ()
 
virtual const String & toString () const
 
int toInteger (int defvalue=0, int base=0, int minvalue=INT_MIN, int maxvalue=INT_MAX, bool clamp=true) const
 
int toInteger (const TokenDict *tokens, int defvalue=0, int base=0) const
 
int toInteger (const TokenDictStr *tokens, int defvalue=0, int base=0) const
 
long int toLong (long int defvalue=0, int base=0, long int minvalue=LONG_MIN, long int maxvalue=LONG_MAX, bool clamp=true) const
 
int64_t toInt64 (int64_t defvalue=0, int base=0, int64_t minvalue=LLONG_MIN, int64_t maxvalue=LLONG_MAX, bool clamp=true) const
 
int64_t toInt64Dict (const TokenDict64 *tokens, int64_t defvalue=0, int base=0) const
 
int64_t toInt64Dict (const TokenDictStr64 *tokens, int64_t defvalue=0, int base=0) const
 
uint64_t toUInt64 (uint64_t defvalue=0, int base=0, uint64_t minvalue=0, uint64_t maxvalue=ULLONG_MAX, bool clamp=true) const
 
double toDouble (double defvalue=0.0) const
 
bool toBoolean (bool defvalue=false) const
 
bool isBoolean () const
 
String & toUpper ()
 
String & toLower ()
 
char operator[] (signed int index) const
 
char operator[] (unsigned int index) const
 
 operator const char * () const
 
String & assign (const char *value, int len=-1)
 
String & assign (char value, unsigned int repeat=1)
 
String & hexify (const void *data, unsigned int len, char sep=0, bool upCase=false)
 
String & operator= (const String &value)
 
String & operator= (const String *value)
 
String & operator= (const char *value)
 
String & operator= (char value)
 
String & operator= (int32_t value)
 
String & operator= (uint32_t value)
 
String & operator= (int64_t value)
 
String & operator= (uint64_t value)
 
String & operator= (bool value)
 
String & operator= (double value)
 
String & operator+= (const char *value)
 
String & operator+= (char value)
 
String & operator+= (int32_t value)
 
String & operator+= (uint32_t value)
 
String & operator+= (int64_t value)
 
String & operator+= (uint64_t value)
 
String & operator+= (bool value)
 
String & operator+= (double value)
 
bool operator== (const char *value) const
 
bool operator!= (const char *value) const
 
bool operator== (const String &value) const
 
bool operator!= (const String &value) const
 
bool operator&= (const char *value) const
 
bool operator|= (const char *value) const
 
String & operator<< (const char *value)
 
String & operator<< (char value)
 
String & operator<< (int32_t value)
 
String & operator<< (uint32_t value)
 
String & operator<< (int64_t value)
 
String & operator<< (uint64_t value)
 
String & operator<< (bool value)
 
String & operator<< (double value)
 
String & operator>> (const char *skip)
 
String & operator>> (char &store)
 
String & operator>> (UChar &store)
 
String & operator>> (int &store)
 
String & operator>> (unsigned int &store)
 
String & operator>> (bool &store)
 
String & append (const char *value, int len)
 
String & append (const char *value, const char *separator=0, bool force=false)
 
String & append (const ObjList *list, const char *separator=0, bool force=false)
 
String & append (const ObjList &list, const char *separator=0, bool force=false)
 
String & append (char value, unsigned int len=1)
 
String & append (double value, unsigned int decimals=3)
 
String & insert (unsigned int pos, const char *value, int len=-1)
 
String & insert (unsigned int pos, char value, unsigned int len=1)
 
String & printf (const char *format,...)
 
String & printf (unsigned int length, const char *format,...)
 
String & printfAppend (const char *format,...)
 
String & printfAppend (unsigned int length, const char *format,...)
 
String & appendFixed (unsigned int fixedLength, const char *str, unsigned int len=-1, char fill=' ', int align=Left)
 
String & appendFixed (unsigned int fixedLength, const String &str, char fill=' ', int align=Left)
 
int find (char what, unsigned int offs=0) const
 
int find (const char *what, unsigned int offs=0) const
 
int rfind (char what) const
 
int rfind (const char *what) const
 
bool startsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
 
bool endsWith (const char *what, bool wordBreak=false, bool caseInsensitive=false) const
 
bool startSkip (const char *what, bool wordBreak=true, bool caseInsensitive=false)
 
String & replaceChars (const char *what, const char *repl, bool inPlace=false, int wLen=-1, int rLen=-1, bool *chg=0)
 
String & removeChars (const char *what, int wLen=-1, bool *chg=0)
 
String & extractTo (const char *sep, String &store)
 
String & extractTo (const char *sep, bool &store)
 
String & extractTo (const char *sep, int &store, int base=0)
 
String & extractTo (const char *sep, int &store, const TokenDict *tokens, int base=0)
 
String & extractTo (const char *sep, double &store)
 
virtual bool matches (const String &value) const
 
bool matches (const Regexp &rexp)
 
int matchOffset (int index=0) const
 
int matchLength (int index=0) const
 
String matchString (int index=0) const
 
String replaceMatches (const String &templ) const
 
int matchCount () const
 
ObjList * split (ObjList &list, char separator, bool emptyOK=true) const
 
ObjList * split (ObjList &list, const Regexp &reg, bool emptyOK=true) const
 
ObjList * split (char separator, bool emptyOK=true) const
 
ObjList * split (const Regexp &reg, bool emptyOK=true) const
 
String msgEscape (char extraEsc=0) const
 
String msgUnescape (int *errptr=0, char extraEsc=0) const
 
String sqlEscape (char extraEsc=0) const
 
String & uriEscapeTo (String &buf, char extraEsc=0, const char *noEsc=0) const
 
String uriEscape (char extraEsc=0, const char *noEsc=0) const
 
String & uriUnescapeTo (String &buf, bool setPartial=false, int *errptr=0) const
 
String & uriUnescapeStr (bool setPartial=false, int *errptr=0)
 
String uriUnescape (int *errptr=0, bool setPartial=true) const
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual bool alive () const
 
virtual void destruct ()
 
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 ()
 

Protected Attributes

ObjList m_accounts
 

Additional Inherited Members

- Public Types inherited from String
enum  Align { Left = 0 , Center , Right }
 
- Static Public Member Functions inherited from String
static const String & empty ()
 
static const char * boolText (bool value)
 
static int lenUtf8 (const char *value, uint32_t maxChar=0x10ffff, bool overlong=false)
 
static bool checkBOM (const char *str)
 
static bool stripBOM (const char *&str)
 
static bool stripBOM (char *&str)
 
static unsigned int hash (const char *value, unsigned int h=0)
 
static String msgEscape (const char *str, char extraEsc=0)
 
static String msgUnescape (const char *str, int *errptr=0, char extraEsc=0)
 
static String sqlEscape (const char *str, char extraEsc=0)
 
static String & uriEscapeTo (String &buf, const char *str, char extraEsc=0, const char *noEsc=0)
 
static String & uriEscapeTo (String &buf, const char *str, const char *extraEsc, const char *noEsc=0)
 
static String uriEscape (const char *str, char extraEsc=0, const char *noEsc=0)
 
static String uriEscape (const char *str, const char *extraEsc, const char *noEsc=0)
 
static String & uriUnescapeTo (String &buf, const char *str, bool setPartial=false, int *errptr=0)
 
static String uriUnescape (const char *str, int *errptr=0, bool setPartial=true)
 
static const String * atom (const String *&str, const char *val)
 
static unsigned int c_starts_with (const char *str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
 
static unsigned int c_ends_with (const char *str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
 
static unsigned int c_skip (const char *&str, const char *what, int lenStr=-1, int lenWhat=-1, bool caseInsensitive=false)
 
static unsigned int c_skip_chars (const char *&str, const char *what, int len=-1, bool skipFound=true)
 
static char * c_replace_chars (const char *str, const char *what, const char *repl=0, bool inPlace=false, int wLen=-1, int rLen=-1, bool *chg=0)
 
- 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 ()
 
- Protected Member Functions inherited from String
virtual void changed ()
 

Detailed Description

A client account list.

This class holds an account list

Constructor & Destructor Documentation

◆ ClientAccountList()

ClientAccountList ( const char * name,
ClientAccount * localContacts = 0 )
inlineexplicit

Constructor

Parameters
nameList's name used for debug purposes
localContactsOptional account owning locally stored contacts

◆ ~ClientAccountList()

Destructor

Member Function Documentation

◆ accounts()

ObjList & accounts ( )
inline

Get the accounts list

Returns
The accounts list

◆ appendAccount()

virtual bool appendAccount ( ClientAccount * account)
virtual

Append a new account. The account's reference counter is increased before

Parameters
accountThe account to append
Returns
True on succes, false if an account with the same id already exists

◆ findAccount()

virtual ClientAccount * findAccount ( const String & id,
bool ref = false )
virtual

Find an account

Parameters
idThe account's id
refTrue to get a referenced pointer
Returns
ClientAccount pointer or 0 if not found

◆ findAnyContact()

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

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

Parameters
idThe id of the desired contact
refTrue to obtain a referenced pointer
Returns
ClientContact pointer (may be account's own contact) or 0 if not found

◆ findContact() [1/2]

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

Find an account's contact

Parameters
accountThe account's id
idThe contact's id
refTrue to get a referenced pointer
Returns
ClientContact pointer or 0 if not found

◆ findContact() [2/2]

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

Find an account's contact from a built id

Parameters
builtIdThe string containign the account and the contact
refTrue to get a referenced pointer
Returns
ClientContact pointer or 0 if not found

◆ findContactByInstance()

virtual ClientContact * findContactByInstance ( const String & id,
String * instance = 0,
bool ref = false )
virtual

Find a contact an instance id

Parameters
idThe id
instanceOptional pointer to String to be filled with instance id
refTrue to get a referenced pointer
Returns
ClientContact pointer or 0 if not found

◆ findContactByUri()

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

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

Parameters
accountThe account's id
uriThe contact's uri
refTrue to get a referenced pointer
Returns
ClientContact pointer or 0 if not found

◆ findRoom()

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

Find a MUC room by its id

Parameters
idRoom id
refTrue to obtain a referenced pointer
Returns
MucRoom pointer or 0 if not found

◆ findRoomByMember()

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

Find a MUC room by member id

Parameters
idRoom member id
refTrue to obtain a referenced pointer
Returns
MucRoom pointer or 0 if not found

◆ findSingleRegAccount()

virtual ClientAccount * findSingleRegAccount ( const String * skipProto = 0,
bool ref = false )
virtual

Check if there is a single registered account and return it

Parameters
skipProtoOptional account protocol to skip
refTrue to get a referenced pointer
Returns
ClientAccount pointer or 0 if not found

◆ isLocalContact() [1/2]

bool isLocalContact ( ClientContact * c) const

Check if a contact is locally stored

Parameters
cThe contact to check
Returns
True if the contact owner is the account owning locally stored contacts

◆ isLocalContact() [2/2]

bool isLocalContact ( const String & id) const
inline

Check if a contact is locally stored

Parameters
idContact id to check
Returns
True if the contact owner is the account owning locally stored contacts

References ClientAccount::findContact().

◆ localContacts()

ClientAccount * localContacts ( ) const
inline

Retrieve the account owning locally stored contacts

Returns
ClientAccount pointer or 0

◆ removeAccount()

virtual void removeAccount ( const String & id)
virtual

Remove an account

Parameters
idThe account's id

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