Chan.I.FileTransfer.Metadata — Telepathy D-Bus Interface Specification

# Interface Channel.Interface.FileTransfer.Metadata

Interface Index (Compact) | Summary | Description | Properties | Types

### Properties

ServiceName | s | Read/Write | Immutable, Requestable |
Metadata | a{sas} (Metadata) | Read/Write | Immutable, Requestable |

### Types

Metadata | Mapping | a{sas} |

Added in 0.25.0.
Objects implementing this interface must also implement:

- org.freedesktop.Telepathy.Channel.Type.FileTransfer

### Description

This interface exists to provide a mechanism to include arbitrary additional information in file transfers. For example, one might want to send a document and include the number of times the character P appeared in the file, so would add `NumberOfPs=42` to the Metadata property.

ServiceName living in its own property makes it easier for specific applications to send files to each other, bypassing the standard handler. For example, the Banshee Telepathy plugin handler could match on ServiceName so the Empathy file transfer is not used instead.

# Properties

Accessed using the org.freedesktop.DBus.Properties interface.
(Permalink)

## ServiceName — s

Read/Write
This property is immutable which means that it can never change once the channel has been created. Immutable properties SHOULD appear in the channel detail list of NewChannels signals.
This property is requestable, which means that it is allowed in the properties hash of a channel request such as in the CreateChannel and EnsureChannel methods on Requests and ChannelDispatcher. The property should also appear in either the Fixed_Properties or Allowed_Properties of a RequestableChannelClass advertised by the CM.

A string representing the service name that will be used over the file transfer channel. This property is equivalent to the Channel.Type.DBusTube.ServiceName and Channel.Type.StreamTube.Service properties. If no service name is given then this property will be the empty string.

(Permalink)

## Metadata — a{sas} (Metadata)

Read/Write
This property is immutable which means that it can never change once the channel has been created. Immutable properties SHOULD appear in the channel detail list of NewChannels signals.
This property is requestable, which means that it is allowed in the properties hash of a channel request such as in the CreateChannel and EnsureChannel methods on Requests and ChannelDispatcher. The property should also appear in either the Fixed_Properties or Allowed_Properties of a RequestableChannelClass advertised by the CM.

Additional information about the file transfer set by the channel initiator. If no additional information is given then this property will be empty.

# Types

Mapping (Permalink)

## Metadata — a{sas}

A mapping from string key to a list of strings, used in the Metadata property. To emulate a simple string → string hash table one should have exactly one member in the value string list.

##### Rationale:

This property is an a{sas} primarily because this maps easily to XEP-0004 Data Forms, and allows more structured metadata than a{ss} would. (For instance, a list of RDF triples could be expressed as one long array of strings, or as three-element values for a series of dummy key names, rather than as one big string blob.) While it might be convenient for applications to allow keys of arbitrary types, the added convenience would be outweighed by having to define the XMPP representation

- Key — s
- Values — as