SIManager Class Reference

`#include <simanager.h>`

Inheritance diagram for SIManager:
[legend]

## 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)
Public Member Functions inherited from IqHandler
virtual | ~IqHandler ()

## Detailed Description

This class manages streams initiated using XEP-0095.

You need only one SIManager object per ClientBase instance.

Author
  Jakob Schröter js@ca.nosp@m.maya.nosp@m..net

Since
  0.9

Definition at line 34 of file simanager.h.

## Member Enumeration Documentation

## SIError

enum SIError

SI error conditions.

Enumerator
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.

## Constructor & Destructor Documentation

## SIManager()

SIManager | ( | ClientBase * | parent,
|  | bool | advertise = true )

Constructor.

Parameters

  parent | The ClientBase to use for communication.
  advertise | Whether to advertise SI capabilities by disco. Defaults to true.

Definition at line 89 of file simanager.cpp.

## ~SIManager()

~SIManager | ( |  | ) |

virtual

Virtual destructor.

Definition at line 101 of file simanager.cpp.

## Member Function Documentation

## acceptSI()

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().

Parameters

  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.

Note
  The SIManager claims ownership of the Tags supplied to this function, and will delete them after use.

Definition at line 137 of file simanager.cpp.

## declineSI()

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().

Parameters

  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 147 of file simanager.cpp.

## handleIq()

bool handleIq | ( | const IQ & | iq | ) |

virtual

Reimplement this function if you want to be notified about incoming IQs.

Parameters

  iq | The complete IQ stanza.

Returns
  Indicates whether a request of type 'get' or 'set' has been handled. This includes the obligatory 'result' answer. If you return false, an 'error' will be sent back.

Since
  1.0

Implements IqHandler.

Definition at line 193 of file simanager.cpp.

## handleIqID()

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 empty positive reply, i.e. <iq type='result' id='reg'/> where a namespace filter wouldn't work.

Parameters

  iq | The complete IQ stanza.
  context | A value to restore context, stored with ClientBase::trackID().

Note
  Only IQ stanzas of type 'result' or 'error' can arrive here.

Since
  1.0

Implements IqHandler.

Definition at line 213 of file simanager.cpp.

## registerProfile()

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).

Parameters

  profile | The complete profile namespace, e.g. http://jabber.org/protocol/si/profile/file-transfer.
  sih | The profile handler.

Definition at line 171 of file simanager.cpp.

## removeProfile()

void removeProfile | ( | const std::string & | profile | ) |

Un-registers the given profile.

Parameters

  profile | The profile's namespace to un-register.

Definition at line 182 of file simanager.cpp.

## requestSI()

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.

Parameters

  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.

Returns
  The requested stream's ID (SID). Empty if SIHandler or ClientBase are invalid.

Note
  The SIManager claims ownership of the Tags supplied to this function, and will delete them after use.

Definition at line 112 of file simanager.cpp.

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

- simanager.h
- simanager.cpp