| EventDance - Documentation and Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | Object Hierarchy | Properties | Signals | ||||
struct EvdSocket; struct EvdSocketClass; EvdSocketEvent; void (*EvdSocketNotifyConditionCallback) (EvdSocket *self,GIOCondition condition,gpointer user_data); enum EvdSocketState; void evd_socket_bind (EvdSocket *self,const gchar *address,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data); gboolean evd_socket_bind_addr (EvdSocket *self,GSocketAddress *address,gboolean allow_reuse,GError **error); gboolean evd_socket_bind_finish (EvdSocket *self,GAsyncResult *result,GError **error); gboolean evd_socket_close (EvdSocket *self,GError **error); void evd_socket_connect_addr (EvdSocket *self,GSocketAddress *address,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data); GIOStream * evd_socket_connect_finish (EvdSocket *self,GAsyncResult *result,GError **error); void evd_socket_connect_to (EvdSocket *self,const gchar *address,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data); GIOCondition evd_socket_get_condition (EvdSocket *self); GSocketFamily evd_socket_get_family (EvdSocket *self); GSocketAddress * evd_socket_get_local_address (EvdSocket *self,GError **error); gint evd_socket_get_priority (EvdSocket *self); GSocketAddress * evd_socket_get_remote_address (EvdSocket *self,GError **error); GSocket * evd_socket_get_socket (EvdSocket *self); EvdSocketState evd_socket_get_status (EvdSocket *self); void evd_socket_listen (EvdSocket *self,const gchar *address,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data); gboolean evd_socket_listen_addr (EvdSocket *self,GSocketAddress *address,GError **error); gboolean evd_socket_listen_finish (EvdSocket *self,GAsyncResult *result,GError **error); EvdSocket * evd_socket_new (void); void evd_socket_set_notify_condition_callback (EvdSocket *self,EvdSocketNotifyConditionCallback callback,gpointer user_data); void evd_socket_set_priority (EvdSocket *self,gint priority); gboolean evd_socket_shutdown (EvdSocket *self,gboolean shutdown_read,gboolean shutdown_write,GError **error); gboolean evd_socket_watch_condition (EvdSocket *self,GIOCondition cond,GError **error);
"family" GSocketFamily : Read / Write "io-stream-type" GType* : Read / Write "priority" gint : Read / Write "protocol" GSocketProtocol : Read / Write "socket" GSocket* : Read "status" guint : Read "type" GSocketType : Read / Write
EvdSocket sockets are Berkeley-style sockets optmized for performance and scalability under high-concurrency scenarios.
struct EvdSocketClass {
GObjectClass parent_class;
/* virtual methods */
gboolean (* handle_condition) (EvdSocket *self, GIOCondition condition);
gboolean (* cleanup) (EvdSocket *self, GError **error);
/* signal prototypes */
void (* error) (EvdSocket *self,
guint32 error_domain,
gint error_code,
gchar *error_message,
gpointer user_data);
void (* state_changed) (EvdSocket *self,
EvdSocketState new_state,
EvdSocketState old_state);
void (* close) (EvdSocket *self);
void (* new_connection) (EvdSocket *self,
GIOStream *socket,
gpointer user_data);
/* padding for future expansion */
void (* _padding_0_) (void);
void (* _padding_1_) (void);
void (* _padding_2_) (void);
void (* _padding_3_) (void);
void (* _padding_4_) (void);
void (* _padding_5_) (void);
void (* _padding_6_) (void);
void (* _padding_7_) (void);
};
void (*EvdSocketNotifyConditionCallback) (EvdSocket *self,GIOCondition condition,gpointer user_data);
typedef enum {
EVD_SOCKET_STATE_CLOSED,
EVD_SOCKET_STATE_CONNECTING,
EVD_SOCKET_STATE_CONNECTED,
EVD_SOCKET_STATE_RESOLVING,
EVD_SOCKET_STATE_BOUND,
EVD_SOCKET_STATE_LISTENING,
EVD_SOCKET_STATE_TLS_HANDSHAKING,
EVD_SOCKET_STATE_CLOSING
} EvdSocketState;
void evd_socket_bind (EvdSocket *self,const gchar *address,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
|
. [allow-none] |
|
. [allow-none] |
|
. [allow-none] |
gboolean evd_socket_bind_addr (EvdSocket *self,GSocketAddress *address,gboolean allow_reuse,GError **error);
gboolean evd_socket_bind_finish (EvdSocket *self,GAsyncResult *result,GError **error);
void evd_socket_connect_addr (EvdSocket *self,GSocketAddress *address,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
|
. [allow-none] |
|
. [allow-none] |
|
. [allow-none] |
GIOStream * evd_socket_connect_finish (EvdSocket *self,GAsyncResult *result,GError **error);
|
. [type Gio.AsyncResult] |
Returns : |
. [transfer full][type Gio.IOStream] |
void evd_socket_connect_to (EvdSocket *self,const gchar *address,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
|
. [allow-none] |
|
. [allow-none] |
|
. [allow-none] |
GSocketAddress * evd_socket_get_local_address (EvdSocket *self,GError **error);
Returns : |
. [transfer full] |
GSocketAddress * evd_socket_get_remote_address (EvdSocket *self,GError **error);
Returns : |
. [transfer full] |
GSocket * evd_socket_get_socket (EvdSocket *self);
Returns : |
. [transfer none] |
void evd_socket_listen (EvdSocket *self,const gchar *address,GCancellable *cancellable,GAsyncReadyCallback callback,gpointer user_data);
|
. [allow-none] |
|
. [allow-none] |
|
. [allow-none] |
gboolean evd_socket_listen_addr (EvdSocket *self,GSocketAddress *address,GError **error);
gboolean evd_socket_listen_finish (EvdSocket *self,GAsyncResult *result,GError **error);
void evd_socket_set_notify_condition_callback (EvdSocket *self,EvdSocketNotifyConditionCallback callback,gpointer user_data);
|
. [scope notified][allow-none] |
|
. [allow-none] |
gboolean evd_socket_shutdown (EvdSocket *self,gboolean shutdown_read,gboolean shutdown_write,GError **error);
gboolean evd_socket_watch_condition (EvdSocket *self,GIOCondition cond,GError **error);
"family" property"family" GSocketFamily : Read / Write
The sockets address family.
Default value: G_SOCKET_FAMILY_INVALID
"io-stream-type" property"io-stream-type" GType* : Read / Write
The GType of the IO stream returned by socket when connected.
Allowed values: EvdConnection
"priority" property"priority" gint : Read / Write
The priority of the socket when dispatching its events in the loop.
Allowed values: [-100,300]
Default value: 0
"protocol" property"protocol" GSocketProtocol : Read / Write
The id of the protocol to use, or -1 for unknown.
Default value: G_SOCKET_PROTOCOL_UNKNOWN
"status" property"status" guint : Read
The current status of the socket (closed, connected, listening, etc).
Allowed values: <= 5
Default value: 0
"type" property"type" GSocketType : Read / Write
The sockets type.
Default value: G_SOCKET_TYPE_INVALID
"close" signalvoid user_function (EvdSocket *evdsocket,
gpointer user_data) : Action
|
the object which received the signal. |
|
user data set when the signal handler was connected. |
"error" signalvoid user_function (EvdSocket *evdsocket,
guint arg1,
gint arg2,
gchar *arg3,
gpointer user_data) : Action
|
the object which received the signal. |
|
user data set when the signal handler was connected. |
"new-connection" signalvoid user_function (EvdSocket *evdsocket,
GIOStream *arg1,
gpointer user_data) : Action
|
the object which received the signal. |
|
user data set when the signal handler was connected. |