Home · Modules · All Classes · All Namespaces
Public Slots | Signals | Public Member Functions | List of all members
Tp::Service::ChannelInterfaceMessagesAdaptor Class Reference

#include <TelepathyQt/_gen/svc-channel.h>

Inherits Tp::AbstractAdaptor.

Public Slots

QString SendMessage (const Tp::MessagePartList &message, uint flags, const QDBusMessage &dbusMessage)
 
Tp::MessagePartContentMap GetPendingMessageContent (uint messageID, const Tp::UIntList &parts, const QDBusMessage &dbusMessage)
 

Signals

void MessageSent (const Tp::MessagePartList &content, uint flags, const QString &messageToken)
 
void PendingMessagesRemoved (const Tp::UIntList &messageIDs)
 
void MessageReceived (const Tp::MessagePartList &message)
 

Public Member Functions

QStringList SupportedContentTypes () const
 
Tp::UIntList MessageTypes () const
 
uint MessagePartSupportFlags () const
 
Tp::MessagePartListList PendingMessages () const
 
uint DeliveryReportingSupport () const
 
- Public Member Functions inherited from Tp::AbstractAdaptor
 AbstractAdaptor (const QDBusConnection &connection, QObject *adaptee, QObject *parent)
 
 ~AbstractAdaptor ()
 
QDBusConnection dbusConnection () const
 
QObject * adaptee () const
 

Detailed Description

Adaptor class providing a 1:1 mapping of the D-Bus interface "org.freedesktop.Telepathy.Channel.Interface.Messages".

Member Function Documentation

◆ SupportedContentTypes()

QStringList Tp::Service::ChannelInterfaceMessagesAdaptor::SupportedContentTypes ( ) const

Return the value of the exported D-Bus object property SupportedContentTypes of type QStringList.

Adaptees should export this property as a Qt property named 'supportedContentTypes' with type QStringList.

A list of MIME types supported by this channel, with more preferred MIME types appearing earlier in the list. The list MAY include "*/*" to indicate that attachments with arbitrary MIME types can be sent. This list MUST NOT be empty, since all Messages implementations MUST accept messages containing a single "text/plain" part.

Items in this list MUST be normalized to lower-case.

Some examples of how this property interacts with the MessagePartSupportFlags :

A simple IM implementation: only plain text messages are allowed
SupportedContentTypes = ['text/plain'], MessagePartSupportFlags = 0
Formatted text with a plain text alternative is allowed (see the HTML interface draft)
SupportedContentTypes = ['text/html', 'text/plain'], MessagePartSupportFlags = 0
JPEG or PNG images may be sent, but without any attached text
SupportedContentTypes = ['text/plain', 'image/jpeg', 'image/png'], MessagePartSupportFlags = 0
Unformatted text to which an optional JPEG or PNG image may be attached
SupportedContentTypes = ['text/plain', 'image/jpeg', 'image/png'], MessagePartSupportFlags = One_Attachment
Formatted text to which arbitrarily many images may be attached
SupportedContentTypes = ['text/html', 'text/plain', 'image/jpeg', 'image/png', 'image/x-ms-bmp'], MessagePartSupportFlags = One_Attachment | Multiple_Attachments
A full SIP implementation: arbitrary MIME messages are allowed
SupportedContentTypes = ['*/*'], MessagePartSupportFlags = One_Attachment | Multiple_Attachments

Returns
The value of exported property SupportedContentTypes.

◆ MessageTypes()

Tp::UIntList Tp::Service::ChannelInterfaceMessagesAdaptor::MessageTypes ( ) const

Return the value of the exported D-Bus object property MessageTypes of type Tp::UIntList.

Adaptees should export this property as a Qt property named 'messageTypes' with type Tp::UIntList.

A list of message types which may be sent on this channel.

Returns
The value of exported property MessageTypes.

◆ MessagePartSupportFlags()

uint Tp::Service::ChannelInterfaceMessagesAdaptor::MessagePartSupportFlags ( ) const

Return the value of the exported D-Bus object property MessagePartSupportFlags of type uint.

Adaptees should export this property as a Qt property named 'messagePartSupportFlags' with type uint.

Flags indicating the level of support for message parts on this channel.

Returns
The value of exported property MessagePartSupportFlags.

◆ PendingMessages()

Tp::MessagePartListList Tp::Service::ChannelInterfaceMessagesAdaptor::PendingMessages ( ) const

Return the value of the exported D-Bus object property PendingMessages of type Tp::MessagePartListList.

Adaptees should export this property as a Qt property named 'pendingMessages' with type Tp::MessagePartListList.

A list of incoming messages that have neither been acknowledged nor rejected. This list is a more detailed version of the one returned by ChannelTypeTextInterface::ListPendingMessages() , and contains the same messages, uniquely identified by the same pending message IDs. Its items can be removed using ChannelTypeTextInterface::AcknowledgePendingMessages() .

Change notification is via MessageReceived() and PendingMessagesRemoved() .

Returns
The value of exported property PendingMessages.

◆ DeliveryReportingSupport()

uint Tp::Service::ChannelInterfaceMessagesAdaptor::DeliveryReportingSupport ( ) const

Return the value of the exported D-Bus object property DeliveryReportingSupport of type uint.

Adaptees should export this property as a Qt property named 'deliveryReportingSupport' with type uint.

A bitfield indicating features supported by this channel.

Returns
The value of exported property DeliveryReportingSupport.

◆ SendMessage

QString Tp::Service::ChannelInterfaceMessagesAdaptor::SendMessage ( const Tp::MessagePartList message,
uint  flags,
const QDBusMessage &  dbusMessage 
)
slot

Begins a call to the exported D-Bus method SendMessage on this object.

Adaptees should export this method as a Qt slot with the following signature: void sendMessage(const Tp::MessagePartList& message, uint flags, const Tp::Service::ChannelInterfaceMessagesAdaptor::SendMessageContextPtr &context);

Implementations should call MethodInvocationContext::setFinished (or setFinishedWithError accordingly) on the received context object once the method has finished processing.

Submit a message to the server for sending. If this method returns successfully, the message has been submitted to the server and the MessageSent() signal is emitted. A corresponding ChannelTypeTextInterface::Sent() signal on the Text interface MUST also be emitted.

This method MUST return before the MessageSent signal is emitted.

This means that the process sending the message is the first to see the Protocol_Message_Token, and can relate the message to the corresponding MessageSent() signal by comparing message tokens (if supported by the protocol).

If this method fails, message submission to the server has failed and no signal on this interface (or the Text interface) is emitted.

If this method succeeds, message submission to the server has succeeded, but the message has not necessarily reached its intended recipient. If a delivery failure is detected later, this is signalled by receiving a message whose message-type header maps to Delivery_Report. Similarly, if delivery is detected to have been successful (which is not possible in all protocols), a successful delivery report will be signalled.

Parameters
message
The message content, including any attachments or alternatives. 
This MUST NOT include the following headers, or any others that do 
not make sense for a client to specify: message-sender, 
message-sender-id, message-sent, message-received, 
pending-message-id.
flags
Flags affecting how the message is sent. The channel MAY ignore 
some or all flags, depending on DeliveryReportingSupport; the flags 
that were handled by the CM are provided in MessageSent.
Returns
An opaque token used to match any incoming delivery or failure 
reports against this message, or an empty string if the message is 
not readily identifiable.

◆ GetPendingMessageContent

Tp::MessagePartContentMap Tp::Service::ChannelInterfaceMessagesAdaptor::GetPendingMessageContent ( uint  messageID,
const Tp::UIntList parts,
const QDBusMessage &  dbusMessage 
)
slot

Begins a call to the exported D-Bus method GetPendingMessageContent on this object.

Adaptees should export this method as a Qt slot with the following signature: void getPendingMessageContent(uint messageID, const Tp::UIntList& parts, const Tp::Service::ChannelInterfaceMessagesAdaptor::GetPendingMessageContentContextPtr &context);

Implementations should call MethodInvocationContext::setFinished (or setFinishedWithError accordingly) on the received context object once the method has finished processing.

Retrieve the content of one or more parts of a pending message. Note that this function may take a considerable amount of time to return if the part's 'needs-retrieval' flag is true; consider extending the default D-Bus method call timeout. Additional API is likely to be added in future, to stream large message parts.

Parameters
messageID
The ID of a pending message
parts
The desired entries in the array of message parts, identified by 
their position. The &quot;headers&quot; part (which is not a valid 
argument to this method) is considered to be part 0, so the valid 
part numbers start at 1 (for the second Message_Part).
Returns

The content of the requested parts. The keys in this mapping are positions in the array of message parts; the values are either of type 's' or 'ay' (UTF-8 text string, or byte array), following the same rules as for the value of the 'content' key in the Message_Part mappings.

If the one of the requested part numbers was greater than zero but referred to a part that had no content (i.e. it had no 'content-type' key or no 'content' key), it is simply omitted from this mapping; this is not considered to be an error condition.

◆ MessageSent

void Tp::Service::ChannelInterfaceMessagesAdaptor::MessageSent ( const Tp::MessagePartList content,
uint  flags,
const QString &  messageToken 
)
signal

Represents the exported D-Bus signal MessageSent on this object.

Adaptees should export this signal as a Qt signal with the following signature: void messageSent(const Tp::MessagePartList& content, uint flags, const QString& messageToken);

The adaptee signal will be automatically relayed as a D-Bus signal once emitted.

Parameters
content

The message content (see Message_Part for full details). If the message that was passed to \\\ SendMessage() \\htmlonly has a formatted text part that the connection manager recognises, but no text/plain alternative, the CM MUST use the formatted text part to generate a text/plain alternative which is also included in this signal argument.

The connection manager SHOULD include the message-sender, message-sender-id and message-sent headers in the representation of the message that is signalled here. If the channel has channel-specific handles, the message-sender and message-sender-id SHOULD reflect the sender that other contacts will see.

If the connection manager can predict that the message will be altered during transmission, this argument SHOULD reflect what other contacts will receive, rather than being a copy of the argument to SendMessage (if the message is truncated, formatting or alternatives are dropped, etc., then the edited version SHOULD appear in this signal).

Parameters
flags
Flags affecting how the message was sent. The flags might be a 
subset of those passed to SendMessage if the caller requested 
unsupported flags.
messageToken
An opaque token used to match any incoming delivery or failure 
reports against this message, or an empty string if the message is 
not readily identifiable.

◆ PendingMessagesRemoved

void Tp::Service::ChannelInterfaceMessagesAdaptor::PendingMessagesRemoved ( const Tp::UIntList messageIDs)
signal

Represents the exported D-Bus signal PendingMessagesRemoved on this object.

Adaptees should export this signal as a Qt signal with the following signature: void pendingMessagesRemoved(const Tp::UIntList& messageIDs);

The adaptee signal will be automatically relayed as a D-Bus signal once emitted.

Parameters
messageIDs
The messages that have been removed from the pending message list.

◆ MessageReceived

void Tp::Service::ChannelInterfaceMessagesAdaptor::MessageReceived ( const Tp::MessagePartList message)
signal

Represents the exported D-Bus signal MessageReceived on this object.

Adaptees should export this signal as a Qt signal with the following signature: void messageReceived(const Tp::MessagePartList& message);

The adaptee signal will be automatically relayed as a D-Bus signal once emitted.

Parameters
message

The message content, including any attachments or alternatives. If the incoming message contains formatted text without a plain text alternative, the connection manager MUST generate a text/plain alternative from the formatted text, and include it in this message (both here, and in the \\\ \\link requestPropertyPendingMessages() PendingMessages \\endlink \\htmlonly property).