Home · All Classes · All Namespaces · Modules · Functions · Files
Public Member Functions | Protected Member Functions | List of all members
Tp::CapabilitiesBase Class Reference

The CapabilitiesBase class represents the capabilities a Connection or a Contact supports. More...

#include <TelepathyQt/CapabilitiesBase>

Inherited by Tp::ConnectionCapabilities, and Tp::ContactCapabilities.

Public Member Functions

 CapabilitiesBase ()
 
 CapabilitiesBase (const CapabilitiesBase &other)
 
virtual ~CapabilitiesBase ()
 
CapabilitiesBaseoperator= (const CapabilitiesBase &other)
 
RequestableChannelClassSpecList allClassSpecs () const
 
bool isSpecificToContact () const
 
bool textChats () const
 
bool audioCalls () const
 
bool videoCalls () const
 
bool videoCallsWithAudio () const
 
bool upgradingCalls () const
 
TP_QT_DEPRECATED bool streamedMediaCalls () const
 
TP_QT_DEPRECATED bool streamedMediaAudioCalls () const
 
TP_QT_DEPRECATED bool streamedMediaVideoCalls () const
 
TP_QT_DEPRECATED bool streamedMediaVideoCallsWithAudio () const
 
TP_QT_DEPRECATED bool upgradingStreamedMediaCalls () const
 
bool fileTransfers () const
 

Protected Member Functions

 CapabilitiesBase (bool specificToContact)
 
 CapabilitiesBase (const RequestableChannelClassList &rccs, bool specificToContact)
 
 CapabilitiesBase (const RequestableChannelClassSpecList &rccSpecs, bool specificToContact)
 
virtual void updateRequestableChannelClasses (const RequestableChannelClassList &rccs)
 

Detailed Description

The CapabilitiesBase class represents the capabilities a Connection or a Contact supports.

Constructor & Destructor Documentation

Tp::CapabilitiesBase::CapabilitiesBase ( )

Construct a new CapabilitiesBase object.

Tp::CapabilitiesBase::CapabilitiesBase ( const CapabilitiesBase other)
Tp::CapabilitiesBase::~CapabilitiesBase ( )
virtual

Class destructor.

Tp::CapabilitiesBase::CapabilitiesBase ( bool  specificToContact)
protected

Construct a new CapabilitiesBase object.

Parameters
specificToContactWhether this object describes the capabilities of a particular contact.
Tp::CapabilitiesBase::CapabilitiesBase ( const RequestableChannelClassList rccs,
bool  specificToContact 
)
protected

Construct a new CapabilitiesBase object using the given rccs.

Parameters
rccsRequestableChannelClassList representing the capabilities of a connection or contact.
specificToContactWhether this object describes the capabilities of a particular contact.
Tp::CapabilitiesBase::CapabilitiesBase ( const RequestableChannelClassSpecList rccSpecs,
bool  specificToContact 
)
protected

Construct a new CapabilitiesBase object using the given rccSpecs.

Parameters
rccSpecsRequestableChannelClassSpecList representing the capabilities of a connection or contact.
specificToContactWhether this object describes the capabilities of a particular contact.

Member Function Documentation

CapabilitiesBase & Tp::CapabilitiesBase::operator= ( const CapabilitiesBase other)
RequestableChannelClassSpecList Tp::CapabilitiesBase::allClassSpecs ( ) const

Return the list of requestable channel class spec representing the requests that can succeed.

This can be used by advanced clients to determine whether an unusually complex request would succeed. See the Telepathy specification for details of how to interpret the returned list.

The higher-level methods like textChats() are likely to be more useful to the majority of clients.

Returns
A RequestableChannelClassSpecList indicating the parameters to Account::createChannel, Account::ensureChannel, Connection::createChannel and Connection::ensureChannel that can be expected to work.
bool Tp::CapabilitiesBase::isSpecificToContact ( ) const

Return whether this object accurately describes the capabilities of a particular contact, or if it's only a guess based on the capabilities of the underlying connection.

In protocols like XMPP where each contact advertises their capabilities to others, Contact::capabilities() will generally return an object where this method returns true.

In protocols like SIP where contacts' capabilities are not known, Contact::capabilities() will return an object where this method returns false, whose methods textChats() etc. are based on what the underlying connection supports.

This reflects the fact that the best assumption an application can make is that every contact supports every channel type supported by the connection, while indicating that requests to communicate might fail if the contact does not actually have the necessary functionality.

Returns
true if this object describes the capabilities of a particular contact, false otherwise.
bool Tp::CapabilitiesBase::textChats ( ) const

Return whether private text channels can be established by providing a contact identifier.

If the protocol is such that text chats can be established, but only via a more elaborate D-Bus API than normal (because more information is needed), then this method will return false.

Returns
true if Account::ensureTextChat() can be expected to work, false otherwise.
bool Tp::CapabilitiesBase::audioCalls ( ) const
bool Tp::CapabilitiesBase::videoCalls ( ) const
bool Tp::CapabilitiesBase::videoCallsWithAudio ( ) const
bool Tp::CapabilitiesBase::upgradingCalls ( ) const
bool Tp::CapabilitiesBase::streamedMediaCalls ( ) const

Return whether private audio and/or video calls can be established by providing a contact identifier.

If the protocol is such that these calls can be established, but only via a more elaborate D-Bus API than normal (because more information is needed), then this method will return false.

Returns
true if Account::ensureStreamedMediaCall() can be expected to work, false otherwise.
See also
streamedMediaAudioCalls(), streamedMediaVideoCalls(), streamedMediaVideoCallsWithAudio()
bool Tp::CapabilitiesBase::streamedMediaAudioCalls ( ) const

Return whether private audio calls can be established by providing a contact identifier.

Call upgradingCalls() to determine whether such calls are likely to be upgradable to have a video stream later.

If the protocol is such that these calls can be established, but only via a more elaborate D-Bus API than normal (because more information is needed), then this method will return false.

In some older connection managers, streamedMediaAudioCalls() and streamedMediaVideoCalls() might both return false, even though streamedMediaCalls() returns true. This indicates that only an older API is supported - clients of these connection managers must call Account::ensureStreamedMediaCall() to get an empty call, then add audio and/or video streams to it.

Returns
true if Account::ensureStreamedMediaAudioCall() can be expected to work, false otherwise.
See also
streamedMediaCalls(), streamedMediaVideoCalls(), streamedMediaVideoCallsWithAudio()
bool Tp::CapabilitiesBase::streamedMediaVideoCalls ( ) const

Return whether private video calls can be established by providing a contact identifier.

The same comments as for streamedMediaAudioCalls() apply to this method.

Returns
true if Account::ensureStreamedMediaVideoCall() can be expected to work, if given false as withAudio parameter, false otherwise.
See also
streamedMediaCalls(), streamedMediaAudioCalls(), streamedMediaVideoCallsWithAudio()
bool Tp::CapabilitiesBase::streamedMediaVideoCallsWithAudio ( ) const

Return whether private video calls with audio can be established by providing a contact identifier.

The same comments as for streamedMediaAudioCalls() apply to this method.

Returns
true if Account::ensureStreamedMediaVideoCall() can be expected to work, if given true as withAudio parameter, false otherwise.
See also
streamedMediaCalls(), streamedMediaAudioCalls(), streamedMediaVideoCalls()
bool Tp::CapabilitiesBase::upgradingStreamedMediaCalls ( ) const

Return whether the protocol supports adding streams of a different type to ongoing media calls.

In some protocols and clients (such as XMPP Jingle), all calls potentially support both audio and video. This is indicated by returning true.

In other protocols and clients (such as MSN, and the variant of XMPP Jingle used by Google clients), the streams are fixed at the time the call is started, so if you will ever want video, you have to ask for it at the beginning, for instance with ensureStreamedMediaVideoCall(). This is indicated by returning false.

User interfaces can use this method as a UI hint. If it returns false, then a UI wishing to support both audio and video calls will have to provide separate "audio call" and "video call" buttons or menu items; if it returns true, a single button that makes an audio call is sufficient, because video can be added later.

(The underlying Telepathy feature is the ImmutableStreams property; if this method returns true, then ImmutableStreams is false, and vice versa).

Returns
true if audio calls can be upgraded to audio + video, false otherwise.
bool Tp::CapabilitiesBase::fileTransfers ( ) const

Return whether file transfer can be established by providing a contact identifier

Returns
true if file transfers can be expected to work, false otherwise.
void Tp::CapabilitiesBase::updateRequestableChannelClasses ( const RequestableChannelClassList rccs)
protectedvirtual


Copyright © 2008-2011 Collabora Ltd. and Nokia Corporation
Telepathy-Qt 0.9.7