This class manages streams initiated using XEP-0095. More...
#include <simanager.h>
Inherits gloox::IqHandler.
Public Types | |
| enum | SIError { NoValidStreams, BadProfile, RequestRejected } |
Public Member Functions | |
| SIManager (ClientBase *parent, bool advertise=true) | |
| virtual | ~SIManager () |
| const std::string | requestSI (SIHandler *sih, const JID &to, const std::string &profile, Tag *child1, Tag *child2=0, const std::string &mimetype="binary/octet-stream", const JID &from=JID(), const std::string &sid=EmptyString) |
| void | acceptSI (const JID &to, const std::string &id, Tag *child1, Tag *child2=0, const JID &from=JID()) |
| void | declineSI (const JID &to, const std::string &id, SIError reason, const std::string &text=EmptyString) |
| void | registerProfile (const std::string &profile, SIProfileHandler *sih) |
| void | removeProfile (const std::string &profile) |
| virtual bool | handleIq (const IQ &iq) |
| virtual void | handleIqID (const IQ &iq, int context) |
This class manages streams initiated using XEP-0095.
You need only one SIManager object per ClientBase instance.
Definition at line 34 of file simanager.h.
| enum SIError |
SI error conditions.
| NoValidStreams |
None of the stream types are acceptable |
| BadProfile |
Profile is not understood. |
| RequestRejected |
SI request was rejected. |
Definition at line 41 of file simanager.h.
| SIManager | ( | ClientBase * | parent, | |
| bool | advertise = true | |||
| ) |
Constructor.
| parent | The ClientBase to use for communication. | |
| advertise | Whether to advertise SI capabilities by disco. Defaults to true. |
Definition at line 84 of file simanager.cpp.
| ~SIManager | ( | ) | [virtual] |
Virtual destructor.
Definition at line 96 of file simanager.cpp.
| void acceptSI | ( | const JID & | to, | |
| const std::string & | id, | |||
| Tag * | child1, | |||
| Tag * | child2 = 0, |
|||
| const JID & | from = JID() | |||
| ) |
Call this function to accept an SI request previously announced by means of SIProfileHandler::handleSIRequest().
| to | The requestor. | |
| id | The request's id, as passed to SIProfileHandler::handleSIRequest(). | |
| child1 | The <feature/> child of the SI request. See XEP-0095 for details. | |
| child2 | The profile-specific child of the SI request. May be 0. See XEP-0095 for details. | |
| from | An optional 'from' address to stamp outgoing stanzas with. Used in component scenario only. Defaults to empty JID. |
Definition at line 132 of file simanager.cpp.
| void declineSI | ( | const JID & | to, | |
| const std::string & | id, | |||
| SIError | reason, | |||
| const std::string & | text = EmptyString | |||
| ) |
Call this function to decline an SI request previously announced by means of SIProfileHandler::handleSIRequest().
| to | The requestor. | |
| id | The request's id, as passed to SIProfileHandler::handleSIRequest(). | |
| reason | The reason for the reject. | |
| text | An optional human-readable text explaining the decline. |
Definition at line 142 of file simanager.cpp.
| bool handleIq | ( | const IQ & | iq | ) | [virtual] |
Reimplement this function if you want to be notified about incoming IQs.
| iq | The complete IQ stanza. |
Implements IqHandler.
Definition at line 188 of file simanager.cpp.
| void handleIqID | ( | const IQ & | iq, | |
| int | context | |||
| ) | [virtual] |
Reimplement this function if you want to be notified about incoming IQs with a specific value of the id attribute. You have to enable tracking of those IDs using Client::trackID(). This is usually useful for IDs that generate a positive reply, i.e. <iq type='result' id='reg'/> where a namespace filter wouldn't work.
| iq | The complete IQ stanza. | |
| context | A value to restore context, stored with ClientBase::trackID(). |
Implements IqHandler.
Definition at line 208 of file simanager.cpp.
| void registerProfile | ( | const std::string & | profile, | |
| SIProfileHandler * | sih | |||
| ) |
Registers the given SIProfileHandler to handle requests for the given SI profile namespace. The profile will be advertised by disco (unless disabled in the ctor).
| profile | The complete profile namespace, e.g. http://jabber.org/protocol/si/profile/file-transfer. | |
| sih | The profile handler. |
Definition at line 166 of file simanager.cpp.
| void removeProfile | ( | const std::string & | profile | ) |
Un-registers the given profile.
| profile | The profile's namespace to un-register. |
Definition at line 177 of file simanager.cpp.
| const std::string requestSI | ( | SIHandler * | sih, | |
| const JID & | to, | |||
| const std::string & | profile, | |||
| Tag * | child1, | |||
| Tag * | child2 = 0, |
|||
| const std::string & | mimetype = "binary/octet-stream", |
|||
| const JID & | from = JID(), |
|||
| const std::string & | sid = EmptyString | |||
| ) |
Starts negotiating a stream with a remote entity.
| sih | The SIHandler to handle the result of this request. | |
| to | The entity to talk to. | |
| profile | The SI profile to use. See XEP-0095 for more info. | |
| child1 | The first of the two allowed children of the SI offer. See XEP-0095 for more info. | |
| child2 | The second of the two allowed children of the SI offer. See XEP-0095 for more info. Defaults to 0. | |
| mimetype | The stream's/file's mime-type. Defaults to 'binary/octet-stream'. | |
| from | An optional 'from' address to stamp outgoing requests with. Used in component scenario only. Defaults to empty JID. | |
| sid | Optionally specify a stream ID (SID). If empty, one will be generated. |
Definition at line 107 of file simanager.cpp.
1.6.2