Methods
GetAvailableStreamTubeTypes | () | → | a{uau}: Available_Stream_Tube_Types | |
GetAvailableTubeTypes | () | → | au: Available_Tube_Types | |
ListTubes | () | → | a(uuusa{sv}u): Tubes | |
OfferDBusTube | (s: Service, a{sv}: Parameters) | → | u: Tube_ID | |
OfferStreamTube | (s: Service, a{sv}: Parameters, u: Address_Type, v: Address, u: Access_Control, v: Access_Control_Param) | → | u: Tube_ID | |
AcceptDBusTube | (u: ID) | → | s: Address | |
AcceptStreamTube | (u: ID, u: Address_Type, u: Access_Control, v: Access_Control_Param) | → | v: Address | |
CloseTube | (u: ID) | → | nothing | |
GetDBusTubeAddress | (u: ID) | → | s: Address | |
GetDBusNames | (u: ID) | → | a(us): DBus_Names | |
GetStreamTubeSocketAddress | (u: ID) | → | u: Address_Type, v: Address |
Signals
NewTube | (u: ID, u: Initiator, u: Type, s: Service, a{sv}: Parameters, u: State) | |
TubeStateChanged | (u: ID, u: State) | |
TubeClosed | (u: ID) | |
DBusNamesChanged | (u: ID, a(us): Added, au: Removed) | |
StreamTubeNewConnection | (u: ID, u: Handle) |
Types
Tube_ID | Simple Type | u | |
Tube_Type | Enum | u | |
Tube_State | Enum | u | |
Supported_Socket_Map | Mapping | a{uau} | |
Tube_Info | Struct | (uuusa{sv}u) | |
DBus_Tube_Member | Struct | (us) |
Description
A "tube" is a mechanism for arbitrary data transfer. Two types of data transfer are currently specified: D-Bus messages, and streams of bytes. Each tube has a service name, which is a string specifying the kind of communication that takes place over it, and a dictionary of arbitrary parameters. Tube parameters are commonly used for bootstrap information such as usernames and passwords. Each tube is identified by a locally unique identifier.
The Tubes channel type may be requested for handles of type HANDLE_TYPE_CONTACT and HANDLE_TYPE_ROOM.
Stream tubes specify listening addresses using pairs of parameters with signature 'u', 'v', where the integer 'u' is a member of Socket_Address_Type and the v is dependent on the type of address.
Methods
GetAvailableStreamTubeTypes () → a{uau}: Available_Stream_Tube_Types
Returns
- Available_Stream_Tube_Types — a{uau} (Supported_Socket_Map)
A mapping from address types (members of Socket_Address_Type) to arrays of access-control type (members of Socket_Access_Control) that the connection manager supports for stream tubes with that address type. For simplicity, if a CM supports offering a particular type of tube, it is assumed to support accepting it.
A typical value for a host without IPv6 support:
{ Socket_Address_Type_IPv4: [Socket_Access_Control_Localhost, Socket_Access_Control_Port, Socket_Access_Control_Netmask], Socket_Address_Type_Unix: [Socket_Access_Control_Localhost, Socket_Access_Control_Credentials] }
If stream tubes are not supported, this will be an empty dictionary.
GetAvailableTubeTypes () → au: Available_Tube_Types
Returns
- Available_Tube_Types — au (Tube_Type_List)
ListTubes () → a(uuusa{sv}u): Tubes
Returns
- Tubes — a(uuusa{sv}u) (Tube_Info_List)
- the tube's ID
- the tube's initiator
- the tube's type
- the tube's service
- the tube's parameters
- the tube's state
OfferDBusTube (s: Service, a{sv}: Parameters) → u: Tube_ID
Parameters
- Service — s
- Parameters — a{sv} (String_Variant_Map)
Returns
- Tube_ID — u (Tube_ID)
Possible Errors
- Network Error
- Not Available
- Not Implemented
OfferStreamTube (s: Service, a{sv}: Parameters, u: Address_Type, v: Address, u: Access_Control, v: Access_Control_Param) → u: Tube_ID
Parameters
- Service — s
- Parameters — a{sv} (String_Variant_Map)
- Address_Type — u (Socket_Address_Type)
- Address — v
- Access_Control — u (Socket_Access_Control)
- Access_Control_Param — v
A dictionary of properties for the new tube; the allowable keys, types and values are defined by the service. Connection managers must support the value being any primitive (non-container) D-Bus type, or a byte array 'ay'.
These should usually be the same key-value pairs specified for use in the DNS-SD TXT record for that service.
Returns
- Tube_ID — u (Tube_ID)
Possible Errors
- Network Error
- Not Available
- Not Implemented
AcceptDBusTube (u: ID) → s: Address
Parameters
- ID — u (Tube_ID)
Returns
- Address — s
Possible Errors
- Invalid Argument
AcceptStreamTube (u: ID, u: Address_Type, u: Access_Control, v: Access_Control_Param) → v: Address
Parameters
- ID — u (Tube_ID)
- Address_Type — u (Socket_Address_Type)
- Access_Control — u (Socket_Access_Control)
- Access_Control_Param — v
Returns
- Address — v
Possible Errors
- Invalid Argument
- Not Implemented
CloseTube (u: ID) → nothing
Parameters
- ID — u (Tube_ID)
Possible Errors
- Invalid Argument
GetDBusTubeAddress (u: ID) → s: Address
Parameters
- ID — u (Tube_ID)
Returns
- Address — s
Possible Errors
- Invalid Argument
- Not Available
GetDBusNames (u: ID) → a(us): DBus_Names
Parameters
- ID — u (Tube_ID)
Returns
- DBus_Names — a(us) (DBus_Tube_Member_List)
Possible Errors
- Invalid Argument
- Not Available
GetStreamTubeSocketAddress (u: ID) → u: Address_Type, v: Address
Parameters
- ID — u (Tube_ID)
Returns
- Address_Type — u (Socket_Address_Type)
- Address — v
Possible Errors
- Invalid Argument
- Not Available
Signals
NewTube (u: ID, u: Initiator, u: Type, s: Service, a{sv}: Parameters, u: State)
Parameters
- ID — u (Tube_ID)
- Initiator — u (Contact_Handle)
- Type — u (Tube_Type)
- Service — s
- Parameters — a{sv} (String_Variant_Map)
- State — u (Tube_State)
TubeStateChanged (u: ID, u: State)
Parameters
- ID — u (Tube_ID)
- State — u (Tube_State)
TubeClosed (u: ID)
Parameters
- ID — u (Tube_ID)
DBusNamesChanged (u: ID, a(us): Added, au: Removed)
Parameters
- ID — u (Tube_ID)
- Added — a(us) (DBus_Tube_Member_List)
- Removed — au (Contact_Handle_List)
StreamTubeNewConnection (u: ID, u: Handle)
Parameters
- ID — u (Tube_ID)
- Handle — u (Contact_Handle)
Types
Tube_ID — u
Tube_Type — u
- DBus (0)
- Stream (1)
The tube is D-Bus tube as described by the org.freedesktop.Telepathy.Channel.Type.DBusTube interface.
The tube is stream tube as described by the org.freedesktop.Telepathy.Channel.Type.StreamTube interface.
Tube_State — u
- Local_Pending (0)
- Remote_Pending (1)
- Open (2)
Supported_Socket_Map — a{uau}
- Address_Type — u (Socket_Address_Type)
- Access_Control — au (Socket_Access_Control_List)
Tube_Info — (uuusa{sv}u)
- Identifier — u (Tube_ID)
- Initiator — u (Contact_Handle)
- Type — u (Tube_Type)
- Service — s
- Parameters — a{sv} (String_Variant_Map)
- State — u (Tube_State)
DBus_Tube_Member — (us)
- Handle — u (Contact_Handle)
- Unique_Name — s (DBus_Unique_Name)