| Spice-GTK Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | Signals | ||||
#include <spice-channel.h> enum SpiceChannelEvent; SpiceChannel; SpiceChannelClass; SpiceChannel * spice_channel_new (SpiceSession *s,int type,int id); void spice_channel_destroy (SpiceChannel *channel); gboolean spice_channel_connect (SpiceChannel *channel); gboolean spice_channel_open_fd (SpiceChannel *channel,int fd); void spice_channel_disconnect (SpiceChannel *channel,SpiceChannelEvent reason); gboolean spice_channel_test_capability (SpiceChannel *channel,guint32 cap); gboolean spice_channel_test_common_capability (SpiceChannel *channel,guint32 cap); const gchar * spice_channel_type_to_string (gint type); void spice_channel_set_capability (SpiceChannel *channel,guint32 cap); void spice_channel_flush_async (SpiceChannel *channel,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data); gboolean spice_channel_flush_finish (SpiceChannel *channel,GAsyncResult *result,GError **error);
GEnum +----SpiceChannelEvent
GObject +----SpiceChannel +----SpiceCursorChannel +----SpiceDisplayChannel +----SpiceInputsChannel +----SpiceMainChannel +----SpicePlaybackChannel +----SpiceRecordChannel +----SpiceSmartcardChannel +----SpiceUsbredirChannel +----SpicePortChannel
"channel-id" gint : Read / Write / Construct Only "channel-type" gint : Read / Write / Construct Only "spice-session" SpiceSession* : Read / Write / Construct Only "total-read-bytes" gulong : Read
SpiceChannel is the base class for the different kind of Spice channel connections, such as SpiceMainChannel, or SpiceInputsChannel.
typedef enum {
SPICE_CHANNEL_NONE = 0,
SPICE_CHANNEL_OPENED = 10,
SPICE_CHANNEL_SWITCHING,
SPICE_CHANNEL_CLOSED,
SPICE_CHANNEL_ERROR_CONNECT = 20,
SPICE_CHANNEL_ERROR_TLS,
SPICE_CHANNEL_ERROR_LINK,
SPICE_CHANNEL_ERROR_AUTH,
SPICE_CHANNEL_ERROR_IO,
} SpiceChannelEvent;
An event, emitted by "channel-event" signal.
| no event, or ignored event | |
| connection is authentified and ready | |
| connection is closed normally (sent if channel was ready) | |
| connection error | |
| SSL error | |
| error during link process | |
| authentication error | |
| IO error |
typedef struct {
GObjectClass parent_class;
/* signals, main context */
void (*channel_event)(SpiceChannel *channel, SpiceChannelEvent event);
void (*open_fd)(SpiceChannel *channel, int with_tls);
} SpiceChannelClass;
SpiceChannel * spice_channel_new (SpiceSession *s,int type,int id);
Create a new SpiceChannel of type type, and channel ID id.
|
the SpiceSession the channel is linked to |
|
the requested SPICECHANNELPRIVATE type |
|
the channel-id |
Returns : |
a weak reference to SpiceChannel, the session owns the reference |
void spice_channel_destroy (SpiceChannel *channel);
Disconnect and unref the channel. Called by spice_session_disconnect()
gboolean spice_channel_connect (SpiceChannel *channel);
Connect the channel, using SpiceSession connection informations
Returns : |
TRUE on success. |
gboolean spice_channel_open_fd (SpiceChannel *channel,int fd);
Connect the channel using fd socket.
If fd is -1, a valid fd will be requested later via the
SpiceChannel::open-fd signal.
|
a file descriptor (socket) or -1. request mechanism |
Returns : |
TRUE on success. |
void spice_channel_disconnect (SpiceChannel *channel,SpiceChannelEvent reason);
Close the socket and reset connection specific data. Finally, emit
reason "channel-event" on main context if not
SPICE_CHANNEL_NONE.
|
a channel event emitted on main context (or SPICE_CHANNEL_NONE) |
gboolean spice_channel_test_capability (SpiceChannel *channel,guint32 cap);
Test availability of remote "channel kind capability".
Returns : |
TRUE if cap (channel kind capability) is available. |
gboolean spice_channel_test_common_capability (SpiceChannel *channel,guint32 cap);
Test availability of remote "common channel capability".
Returns : |
TRUE if cap (common channel capability) is available. |
void spice_channel_set_capability (SpiceChannel *channel,guint32 cap);
spice_channel_set_capability has been deprecated since version 0.13 and should not be used in newly-written code. this function has been removed
Enable specific channel-kind capability.
|
a capability |
void spice_channel_flush_async (SpiceChannel *channel,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
Forces an asynchronous write of all user-space buffered data for the given channel.
When the operation is finished callback will be called. You can
then call spice_channel_flush_finish() to get the result of the
operation.
|
a SpiceChannel |
|
optional GCancellable object, NULL to ignore. [allow-none]
|
|
callback to call when the request is satisfied. [scope async] |
|
the data to pass to callback function. [closure] |
Since 0.15
gboolean spice_channel_flush_finish (SpiceChannel *channel,GAsyncResult *result,GError **error);
Finishes flushing a channel.
|
a SpiceChannel |
|
a GAsyncResult |
|
a GError location to store the error occurring, or NULL
to ignore. |
Returns : |
TRUE if flush operation succeeded, FALSE otherwise. |
Since 0.15
"channel-id" property"channel-id" gint : Read / Write / Construct Only
Allowed values: >= G_MAXULONG
Default value: -1
"channel-type" property"channel-type" gint : Read / Write / Construct Only
Allowed values: >= G_MAXULONG
Default value: -1
"channel-event" signalvoid user_function (SpiceChannel *channel,
SpiceChannelEvent event,
gpointer user_data) : Run First
The "channel-event" signal is emitted when the state of the connection change.
|
the channel that emitted the signal |
|
a SpiceChannelEvent |
|
user data set when the signal handler was connected. |
"open-fd" signalvoid user_function (SpiceChannel *channel,
gint with_tls,
gpointer user_data) : Run First
The "open-fd" signal is emitted when a new
connection is requested. This signal is emitted when the
connection is made with spice_session_open_fd().
|
the channel that emitted the signal |
|
wether TLS connection is requested |
|
user data set when the signal handler was connected. |