| Yate
    | 
A client contact. More...
#include <yatecbase.h>
 
  
| Public Types | |
| enum | Subscription { SubFrom = 0x01 , SubTo = 0x02 } | 
| Public Member Functions | |
| ClientContact (ClientAccount *owner, const char *id, const char *name=0, const char *uri=0) | |
| ClientContact (ClientAccount *owner, const NamedList ¶ms, const char *id=0, const char *uri=0) | |
| ClientAccount * | account () | 
| const String & | accountName () const | 
| const URI & | uri () const | 
| void | setUri (const char *u) | 
| const String & | subscriptionStr () const | 
| bool | subscriptionFrom () const | 
| bool | subscriptionTo () const | 
| bool | setSubscription (const String &value) | 
| ObjList & | resources () | 
| bool | online () const | 
| void | setOnline (bool on) | 
| ObjList & | groups () | 
| bool | local (bool defVal=false) const | 
| void | setLocal (bool on) | 
| bool | remote (bool defVal=false) const | 
| void | setRemote (bool on) | 
| void | setDockedChat (bool on) | 
| void | getContactSection (String &buf) | 
| virtual const String & | toString () const | 
| virtual MucRoom * | mucRoom () | 
| String & | buildInstanceId (String &dest, const String &inst=String::empty()) | 
| void | buildIdHash (String &buf, const String &prefix=String::empty()) | 
| bool | isChatWnd (Window *wnd) | 
| bool | hasChat () | 
| virtual void | flashChat (bool on=true) | 
| virtual bool | sendChat (const char *body, const String &res=String::empty(), const String &type=String::empty(), const char *state="active") | 
| virtual void | getChatInput (String &text, const String &name="message") | 
| virtual void | setChatInput (const String &text=String::empty(), const String &name="message") | 
| virtual void | getChatHistory (String &text, bool richText=false, const String &name="history") | 
| virtual void | setChatHistory (const String &text, bool richText=false, const String &name="history") | 
| virtual void | addChatHistory (const String &what, NamedList *¶ms, const String &name="history") | 
| virtual void | getChatProperty (const String &name, const String &prop, String &value) | 
| virtual void | setChatProperty (const String &name, const String &prop, const String &value) | 
| bool | isChatVisible () | 
| virtual bool | showChat (bool visible, bool active=false) | 
| Window * | getChatWnd () | 
| virtual void | createChatWindow (bool force=false, const char *name=0) | 
| virtual void | updateChatWindow (const NamedList ¶ms, const char *title=0, const char *icon=0) | 
| virtual bool | isChatActive () | 
| void | destroyChatWindow () | 
| virtual String * | findGroup (const String &group) | 
| virtual bool | appendGroup (const String &group) | 
| virtual bool | removeGroup (const String &group) | 
| virtual bool | setGroups (const NamedList &list, const String ¶m) | 
| virtual ClientResource * | status (bool ref=false) | 
| virtual ClientResource * | findResource (const String &id, bool ref=false) | 
| virtual ClientResource * | findAudioResource (bool ref=false) | 
| virtual ClientResource * | findFileTransferResource (bool ref=false) | 
| virtual ClientResource * | appendResource (const String &id) | 
| virtual bool | insertResource (ClientResource *res) | 
| virtual bool | removeResource (const String &id) | 
| NamedList & | share () | 
| bool | haveShare () const | 
| virtual void | updateShare () | 
| virtual void | saveShare () | 
| virtual void | clearShare () | 
| virtual bool | setShareDir (const String &name, const String &path, bool save=true) | 
| virtual bool | removeShare (const String &name, bool save=true) | 
| ObjList & | shared () | 
| bool | haveShared () const | 
| virtual ClientDir * | getShared (const String &name, bool create=false) | 
| virtual bool | removeShared (const String &name=String::empty(), ClientDir **removed=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) | 
| Static Public Member Functions | |
| static String & | buildContactId (String &dest, const String &account, const String &contact) | 
| static void | splitContactId (const String &src, String &account) | 
| static void | splitContactInstanceId (const String &src, String &account, String &contact, String *instance=0) | 
| static String & | buildContactInstanceId (String &dest, const String &cId, const String &inst=String::empty()) | 
|  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 () | 
| Public Attributes | |
| String | m_name | 
| NamedList | m_params | 
| Static Public Attributes | |
| static String | s_chatPrefix | 
| static String | s_dockedChatWnd | 
| static String | s_dockedChatWidget | 
| static String | s_mucsWnd | 
| static String | s_chatInput | 
| Protected Member Functions | |
| ClientContact (ClientAccount *owner, const char *id, bool mucRoom) | |
| void | removeFromOwner () | 
| virtual void | destroyed () | 
|  Protected Member Functions inherited from RefObject | |
| virtual void | zeroRefs () | 
| bool | resurrect () | 
| Protected Attributes | |
| ClientAccount * | m_owner | 
| bool | m_online | 
| String | m_id | 
| String | m_subscription | 
| Flags32 | m_sub | 
| URI | m_uri | 
| ObjList | m_resources | 
| ObjList | m_groups | 
| bool | m_dockedChat | 
| String | m_chatWndName | 
| NamedList | m_share | 
| ObjList | m_shared | 
| Friends | |
| class | ClientAccount | 
A client contact.
A client contact The contact is using the owner's mutex to lock it's operations
| enum Subscription | 
Subscription flags
| 
 | explicit | 
Constructor. Append itself to the owner's list
| owner | The contact's owner | 
| id | The contact's id | 
| name | Optional display name. Defaults to the id's value if 0 | 
| uri | Optional contact URI | 
| 
 | explicit | 
Constructor. Build a contact from a list of parameters. Append itself to the owner's list
| owner | The contact's owner | 
| params | The list of parameters used to build this contact | 
| id | Optional contact id | 
| uri | Optional contact URI | 
| 
 | explicitprotected | 
Constructor. Append itself to the owner's list
| owner | The contact's owner | 
| id | The contact's id | 
| mucRoom | True if this contact is a MUC room | 
| 
 | inline | 
Get this contact's account
Referenced by ClientContact::buildContactId(), and ClientContact::splitContactId().
| 
 | inline | 
Get this contact account's name (id)
References String::empty(), and ClientAccount::toString().
Referenced by MucRoom::buildMucRoom(), and ClientContact::getContactSection().
| 
 | virtual | 
Add an entry to chat history
| what | Item to add (chat_in, chat_out, ...) | 
| params | Chat history item parameters (it will be consumed and zeroed) | 
| name | Chat history widget name | 
| 
 | virtual | 
Append a group to this contact
| group | Group's name | 
| 
 | virtual | 
Append a resource having a given id
| id | The id of the desired resource | 
Reimplemented in MucRoom.
| 
 | inlinestatic | 
Build a contact id to be used in UI (all strings are URI escaped using extra '|' character)
| dest | Destination string | 
| account | Account owning the contact | 
| contact | The contact's id | 
References ClientContact::account(), String::toLower(), and String::uriEscape().
Referenced by ClientContact::getContactSection().
| 
 | inlinestatic | 
Build a contact instance id to be used in UI
| dest | Destination string | 
| cId | Contact id | 
| inst | Instance name | 
References String::uriEscape().
Referenced by ClientContact::buildInstanceId().
| 
 | inline | 
Build a string from prefix and contact id hash
| buf | Destination string | 
| prefix | Optional prefix | 
References Hasher::hexDigest().
| 
 | inline | 
Build a contact instance id to be used in UI
| dest | Destination string | 
| inst | Instance name | 
References ClientContact::buildContactInstanceId().
| 
 | virtual | 
Clear share list
| 
 | virtual | 
Create the chat window
| force | True to destroy the current one if any | 
| name | The window's name. Defaults to global name if empty | 
| void destroyChatWindow | ( | ) | 
Close the chat window or destroy docked chat item
| 
 | protectedvirtual | 
| 
 | virtual | 
Get the first resource with audio capability
| ref | True to obtain a referenced pointer | 
| 
 | virtual | 
Get the first resource with file transfer capability capability
| ref | True to obtain a referenced pointer | 
Find a group this contact might belong to
| group | The name of the group to find | 
| 
 | virtual | 
Find a resource having a given id
| id | The id of the desired resource | 
| ref | True to obtain a referenced pointer | 
Reimplemented in MucRoom.
| 
 | virtual | 
Flash chat window/item to notify the user
| on | True to start, false to stop flashing | 
| 
 | virtual | 
Retrieve the contents of the chat history widget
| text | Chat history text | 
| richText | Retrieve rich/plain text flag | 
| name | Chat history widget name | 
Retrieve the contents of the chat input widget
| text | Chat input text | 
| name | Chat input widget name | 
Retrieve a chat widget' property
| name | Widget name | 
| prop | Property name | 
| value | Destination buffer | 
| 
 | inline | 
Remove account prefix from contact id and URI unescape the result
| buf | Destination buffer | 
References ClientContact::accountName(), ClientContact::buildContactId(), String::empty(), String::startSkip(), ClientContact::toString(), and String::uriUnescape().
Retrieve shared data for a given resource
| name | Resource name | 
| create | True to create if not found | 
| 
 | inline | 
Get the group list of this contact
| bool hasChat | ( | ) | 
Check if this contact has a chat widget (window or docked item)
| 
 | inline | 
Check if the list of share contains something
References NamedList::getParam().
| bool haveShared | ( | ) | const | 
Check if the list of shared contains something
| 
 | virtual | 
Insert a resource in the list by its priority. If the resource is already there it will be extracted and re-inserted
| res | The resource to insert | 
Reimplemented in MucRoom.
| 
 | virtual | 
Check if the contact chat is active
| 
 | inline | 
Check if this contact's chat window is visible
| 
 | inline | 
Check if a window is this contact's chat
| wnd | The window to check | 
References Window::toString().
| 
 | inline | 
Check if the contact is locally saved
| defVal | Default value to return if parameter is invalid | 
References NamedList::getBoolValue().
| 
 | inlinevirtual | 
Return a MucRoom contact from this one
Reimplemented in MucRoom.
Referenced by ClientContact::setDockedChat().
| 
 | inline | 
Check if the contact is online (the online flag is set or has at least 1 resource in list)
References ObjList::skipNull().
| 
 | inline | 
Check if the contact is saved on server
| defVal | Default value to return if parameter is invalid | 
References NamedList::getBoolValue().
| 
 | protected | 
Remove from owner
| 
 | virtual | 
Remove a contact's group
| group | Group's name | 
| 
 | virtual | 
Remove a resource having a given id
| id | The id of the desired resource | 
| 
 | virtual | 
Remove a share item
| name | Share name | 
| save | True to save now if changed | 
| 
 | virtual | 
Remove shared data
| name | Resource name to remove, empty to remove all | 
| removed | Optional pointer to removed directory | 
| 
 | inline | 
Get the resource list of this contact
| 
 | virtual | 
Save share list
| 
 | virtual | 
Send chat to contact (enqueue a msg.execute message)
| body | Chat body | 
| res | Optional target instance | 
| type | Optional message type parameter | 
| state | Optional chat state | 
| 
 | virtual | 
Set the contents of the chat history widget
| text | Chat history text | 
| richText | Set rich/plain text flag | 
| name | Chat history widget name | 
| 
 | virtual | 
Set the chat input widget text
| text | Chat input text | 
| name | Chat input widget name | 
| 
 | virtual | 
Set a chat widget' property
| name | Widget name | 
| prop | Property name | 
| value | Property value | 
| 
 | inline | 
Set/reset the docked chat flag for non MucRoom contact
| on | The new value for docked chat flag | 
References ClientContact::mucRoom().
Replace contact's groups from a list of parameters
| list | The list of parameters | 
| param | The parameter name to handle | 
| 
 | inline | 
Set contact locally saved flag
| on | The new value for locally saved flag | 
References String::boolText(), and NamedList::setParam().
| 
 | inline | 
Set the online flag
| on | The new value for online flag | 
| 
 | inline | 
Set contact server saved flag
| on | The new value for server saved flag | 
References String::boolText(), and NamedList::setParam().
Set a directory we share with this contact If share name is not empty it must be unique. Fails if another share has the same name
| name | Share name | 
| path | Directory path | 
| save | True to save now if changed | 
| bool setSubscription | ( | const String & | value | ) | 
Set contact's subscription
| value | Subscription value | 
| 
 | inline | 
Retrieve files and folders we share with this contact
| 
 | inline | 
Retrieve shared data
| 
 | virtual | 
Show or hide this contact's chat window or docked item
| visible | True to show, false to hide the window or destroy the docked item | 
| active | True to activate the window or select the docked item if shown | 
Retrieve the account part of a contact id
| src | Source string | 
| account | Account id (URI unescaped) | 
References ClientContact::account(), String::find(), String::substr(), and String::uriUnescape().
| 
 | virtual | 
Find the resource with the lowest status
| ref | True to obtain a referenced pointer | 
Reimplemented in MucRoom.
| 
 | inline | 
Check if contact is subscribed to our presence
References Flags32::flag().
| 
 | inline | 
Retrieve contact subscription
| 
 | inline | 
Check we are subscribed to contact's presence
References Flags32::flag().
| 
 | inlinevirtual | 
Get a string representation of this object
Reimplemented from GenObject.
Referenced by ClientContact::getContactSection().
| 
 | virtual | 
Update contact parameters in chat window
| params | Parameters to set | 
| title | Optional window title to set (ignored if docked) | 
| icon | Optional window icon to set (ignored if docked) | 
| 
 | virtual | 
(re)load share list
| 
 | inline |