|
Yate
|
An XMPP remote user. More...
#include <yatejabber.h>
Public Member Functions | |
| XMPPUser (XMPPUserRoster *local, const char *node, const char *domain, XMPPDirVal sub, bool subTo=true, bool sendProbe=true) | |
| virtual | ~XMPPUser () |
| const JabberID & | jid () const |
| XMPPUserRoster * | local () const |
| XMPPDirVal & | subscription () |
| JIDResourceList & | localRes () |
| JIDResourceList & | remoteRes () |
| bool | addLocalRes (JIDResource *resource, bool send=true) |
| void | removeLocalRes (JIDResource *resource) |
| void | clearLocalRes () |
| bool | addRemoteRes (JIDResource *resource) |
| void | removeRemoteRes (JIDResource *resource) |
| JIDResource * | getAudio (bool local, bool availableOnly=true) |
| void | processError (JBEvent *event) |
| void | processProbe (JBEvent *event, const String *resName=0) |
| bool | processPresence (JBEvent *event, bool available) |
| void | processSubscribe (JBEvent *event, JBPresence::Presence type) |
| bool | probe (JBStream *stream, u_int64_t time=Time::msecNow()) |
| bool | sendSubscribe (JBPresence::Presence type, JBStream *stream) |
| bool | sendUnavailable (JBStream *stream) |
| bool | sendPresence (JIDResource *resource, JBStream *stream=0, bool force=false) |
| bool | timeout (u_int64_t time) |
| void | notifyResource (bool remote, const String &name, JBStream *stream=0, bool force=false) |
| void | notifyResources (bool remote, JBStream *stream=0, bool force=false) |
Protected Member Functions | |
| void | updateSubscription (bool from, bool value, JBStream *stream) |
| void | updateTimeout (bool from, u_int64_t time=Time::msecNow()) |
Friends | |
| class | XMPPUserRoster |
| class | JBPresence |
An XMPP remote user.
This class holds a remote XMPP user along with his resources and subscribe state.
| XMPPUser | ( | XMPPUserRoster * | local, |
| const char * | node, | ||
| const char * | domain, | ||
| XMPPDirVal | sub, | ||
| bool | subTo = true, |
||
| bool | sendProbe = true |
||
| ) |
Create a remote user.
| local | The local (owner) user peer. |
| node | The node (username) of the remote peer. |
| domain | The domain of the remote peer. |
| sub | The subscription state. |
| subTo | True to force a subscribe request to remote peer if not subscribed. |
| sendProbe | True to probe the new user. |
| virtual ~XMPPUser | ( | ) | [virtual] |
Destructor. Send unavailable if not already done.
| bool addLocalRes | ( | JIDResource * | resource, |
| bool | send = true |
||
| ) |
Add a local resource to the list. Send presence if the remote peer is subscribed to the local one. This method is thread safe.
| resource | The resource to add. |
| send | True to send presence from the resource if it is a new one |
| bool addRemoteRes | ( | JIDResource * | resource | ) |
Add a remote resource to the list. This method is thread safe.
| resource | The resource to add |
| void clearLocalRes | ( | ) |
Remove all local resources. Send unavailable if the remote peer is subscribed to the local one. This method is thread safe.
| JIDResource* getAudio | ( | bool | local, |
| bool | availableOnly = true |
||
| ) | [inline] |
Get the first remote resource with audio capability.
| local | True to request a local resource, false for a remote one. |
| availableOnly | True to get only if available. |
| const JabberID& jid | ( | ) | const [inline] |
Get the jid of this user.
| XMPPUserRoster* local | ( | ) | const [inline] |
Get the roster this user belongs to.
| JIDResourceList& localRes | ( | ) | [inline] |
Get the local resource list
Notify the state of a resource. This method is thread safe.
| remote | True for a remote resource: notify the presence engine. False for a local resource: send presence to remote user. |
| name | Resource name. |
| stream | Optional stream to use to send the data if remote is false. |
| force | True to send even if we've already sent presence from this resource. |
| void notifyResources | ( | bool | remote, |
| JBStream * | stream = 0, |
||
| bool | force = false |
||
| ) |
Notify the state of all resources. This method is thread safe.
| remote | True for remote resources: notify the presence engine. False for local resources: send presence to remote user. |
| stream | Optional stream to use to send the data if remote is false. |
| force | True to send even if we've already sent presence from a resource. |
| bool probe | ( | JBStream * | stream, |
| u_int64_t | time = Time::msecNow() |
||
| ) |
Probe the remote user. This method is thread safe.
| stream | Optional stream to use to send the request. |
| time | Probe time. |
| void processError | ( | JBEvent * | event | ) |
Process received error elements. This method is thread safe.
| event | The event with the element. |
| bool processPresence | ( | JBEvent * | event, |
| bool | available | ||
| ) |
Process received presence from remote peer. This method is thread safe.
| event | The event with the element. |
| available | The availability of the user. |
Process received probe from remote peer. This method is thread safe.
| event | The event with the element. |
| resName | The probed resource if any. |
| void processSubscribe | ( | JBEvent * | event, |
| JBPresence::Presence | type | ||
| ) |
Process received subscription from remote peer. This method is thread safe.
| event | The event with the element. |
| type | The subscription type: subscribe/unsubscribe/subscribed/unsubscribed. |
| JIDResourceList& remoteRes | ( | ) | [inline] |
Get the remote resource list
| void removeLocalRes | ( | JIDResource * | resource | ) |
Remove a local resource from the list. Send unavailable if the remote peer is subscribed to the local one. This method is thread safe.
| resource | The resource to remove. |
| void removeRemoteRes | ( | JIDResource * | resource | ) |
Remove a remote resource from the list. This method is thread safe.
| resource | The resource to remove |
| bool sendPresence | ( | JIDResource * | resource, |
| JBStream * | stream = 0, |
||
| bool | force = false |
||
| ) |
Send presence to remote peer. This method is thread safe.
| resource | The resource to send from. |
| stream | Optional stream to use to send the data. |
| force | True to send even if we've already sent presence from this resource. |
| bool sendSubscribe | ( | JBPresence::Presence | type, |
| JBStream * | stream | ||
| ) |
Send subscription to remote peer. This method is thread safe.
| type | The subscription type: subscribe/unsubscribe/subscribed/unsubscribed. |
| stream | Optional stream to use to send the data. |
| bool sendUnavailable | ( | JBStream * | stream | ) |
Send unavailable to remote peer. This method is thread safe.
| stream | Optional stream to use to send the data. |
| XMPPDirVal& subscription | ( | ) | [inline] |
Get the subscription state of this user
| bool timeout | ( | u_int64_t | time | ) |
Check if this user sent us any presence data for a given interval. This method is thread safe.
| time | Current time. |
| void updateSubscription | ( | bool | from, |
| bool | value, | ||
| JBStream * | stream | ||
| ) | [protected] |
Update subscription state.
| from | True for subscription from remote user. False for subscription to the remote user. |
| value | True if subscribed. False is unsubscribed. |
| stream | Optional stream to use to send presence if subscription from remote user changed to true. |
| void updateTimeout | ( | bool | from, |
| u_int64_t | time = Time::msecNow() |
||
| ) | [protected] |
Update user timeout data.
| from | True if the update is made on incoming data. False if timeout is made on outgoing probe. |
| time | Current time. |
1.7.3