Methods
Offer | (u: address_type, v: address, u: access_control, a{sv}: parameters) | → | nothing | |
Accept | (u: address_type, u: access_control, v: access_control_param) | → | v: address |
Signals
NewRemoteConnection | (u: Handle, v: Connection_Param, u: Connection_ID) | |
NewLocalConnection | (u: Connection_ID) | |
ConnectionClosed | (u: Connection_ID, s: Error, s: Message) |
Properties
Service | s | Read only | ||
SupportedSocketTypes | a{uau} (Supported_Socket_Map) | Read only |
Types
Stream_Tube_Connection_ID | Simple Type | u | |
Supported_Socket_Map | Mapping | a{uau} |
Description
A stream tube is a transport for ordered, reliable data transfer, similar to SOCK_STREAM sockets.
When offering a stream tube, the initiating client creates a local listening socket and offers it to the recipient client using the Offer method. When a recipient accepts a stream tube using the Accept method, the recipient's connection manager creates a new local listening socket. Each time the recipient's client connects to this socket, the initiator's connection manager proxies this connection to the originally offered socket.
Methods
Offer (u: address_type, v: address, u: access_control, a{sv}: parameters) → nothing
Parameters
- address_type — u (Socket_Address_Type)
- address — v
- access_control — u (Socket_Access_Control)
- parameters — a{sv} (String_Variant_Map)
Possible Errors
- Network Error
- Not Available
- Not Implemented
Accept (u: address_type, u: access_control, v: access_control_param) → v: address
Parameters
- address_type — u (Socket_Address_Type)
- access_control — u (Socket_Access_Control)
- access_control_param — v
The type of access control the connection manager should apply to the socket.
Note that if you plan to establish more than one connection through the tube, the Socket_Access_Control_Port access control can't be used as you can't connect more than once from the same port.
Returns
- address — v
Possible Errors
- Invalid Argument
- Not Implemented
Signals
NewRemoteConnection (u: Handle, v: Connection_Param, u: Connection_ID)
Parameters
- Handle — u (Contact_Handle)
- Connection_Param — v
- Connection_ID — u (Stream_Tube_Connection_ID)
A parameter which can be used by the listening process to identify the connection. Note that this parameter has a meaningful value only in the Socket_Access_Control_Port and Socket_Access_Control_Credentials cases. If a different Socket_Access_Control has been chosen when offering the tube, this parameter should be ignored.
In the Socket_Access_Control_Port case, the variant contains a struct Socket_Address_IPv4 (or Socket_Address_IPv6) containing the address from which the CM is connected to the client application.
In the Socket_Access_Control_Credentials case, the variant contains the byte (D-Bus signature 'y') that has been sent with the credentials.
Emitted each time a participant opens a new connection to its socket.
This signal is only fired on the offering side.
NewLocalConnection (u: Connection_ID)
Parameters
- Connection_ID — u (Stream_Tube_Connection_ID)
Emitted when the tube application connects to the CM's socket.
This signal is only fired on the accepting side.
ConnectionClosed (u: Connection_ID, s: Error, s: Message)
Parameters
- Connection_ID — u (Stream_Tube_Connection_ID)
- Error — s (DBus_Error_Name)
im.telepathy1.Error.Cancelled
: user closed the socket or the tube.im.telepathy1.Error.ConnectionLost
: the bytestream relaying connection's data has been broken.im.telepathy1.Error.ConnectionRefused
: the tube offer refused the connection.- Message — s
The name of a D-Bus error describing the error that occurred.
The following errors can be used:
Emitted when a connection has been closed.
Properties
Service — s
A string representing the service name that will be used over the tube. It should be a well-known TCP service name as defined by http://www.iana.org/assignments/port-numbers or http://www.dns-sd.org/ServiceTypes.html, for instance "rsync" or "daap".
When the tube is offered, the service name is transmitted to the other end.
When requesting a channel with Connection.Interface.Requests.CreateChannel, this property MUST be included in the request.
SupportedSocketTypes — 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] }
Connection Managers MUST support at least IPv4 with the localhost access control.
When requesting a channel with Connection.Interface.Requests.CreateChannel, this property MUST NOT be included in the request.
Types
Stream_Tube_Connection_ID — u
Supported_Socket_Map — a{uau}
- Address_Type — u (Socket_Address_Type)
- Access_Control — au (Socket_Access_Control_List)