From: Thomas Vander Stichele Date: Sat, 28 Jan 2012 17:06:02 +0000 (+0100) Subject: multihandle: rename num-fds/-sockets to num-handles X-Git-Tag: 1.19.3~511^2~6796 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=029b9b49de7beb3dcfae41333fcf0326d99982b7;p=platform%2Fupstream%2Fgstreamer.git multihandle: rename num-fds/-sockets to num-handles --- diff --git a/gst/tcp/gstmultifdsink.c b/gst/tcp/gstmultifdsink.c index d2ea37d..96f6f3b 100644 --- a/gst/tcp/gstmultifdsink.c +++ b/gst/tcp/gstmultifdsink.c @@ -160,8 +160,6 @@ enum PROP_HANDLE_READ, - PROP_NUM_FDS, - PROP_LAST }; @@ -185,8 +183,6 @@ gst_fdset_mode_get_type (void) return fdset_mode_type; } -static void gst_multi_fd_sink_finalize (GObject * object); - static void gst_multi_fd_sink_clear_post (GstMultiHandleSink * mhsink); static void gst_multi_fd_sink_stop_pre (GstMultiHandleSink * mhsink); static void gst_multi_fd_sink_stop_post (GstMultiHandleSink * mhsink); @@ -226,7 +222,6 @@ gst_multi_fd_sink_class_init (GstMultiFdSinkClass * klass) gobject_class->set_property = gst_multi_fd_sink_set_property; gobject_class->get_property = gst_multi_fd_sink_get_property; - gobject_class->finalize = gst_multi_fd_sink_finalize; /** * GstMultiFdSink::mode @@ -254,11 +249,6 @@ gst_multi_fd_sink_class_init (GstMultiFdSinkClass * klass) "Handle client reads and discard the data", DEFAULT_HANDLE_READ, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_NUM_FDS, - g_param_spec_uint ("num-fds", "Number of fds", - "The current number of client file descriptors.", - 0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); - /** * GstMultiFdSink::add: * @gstmultifdsink: the multifdsink element to emit this signal on @@ -423,7 +413,6 @@ gst_multi_fd_sink_class_init (GstMultiFdSinkClass * klass) gstmultihandlesink_class->remove_client_link = GST_DEBUG_FUNCPTR (gst_multi_fd_sink_remove_client_link); - klass->add = GST_DEBUG_FUNCPTR (gst_multi_fd_sink_add); klass->add_full = GST_DEBUG_FUNCPTR (gst_multi_fd_sink_add_full); klass->remove = GST_DEBUG_FUNCPTR (gst_multi_fd_sink_remove); @@ -436,23 +425,15 @@ gst_multi_fd_sink_class_init (GstMultiFdSinkClass * klass) static void gst_multi_fd_sink_init (GstMultiFdSink * this) { + GstMultiHandleSink *mhsink = GST_MULTI_HANDLE_SINK (this); + this->mode = DEFAULT_MODE; - this->handle_hash = g_hash_table_new (g_int_hash, g_int_equal); + mhsink->handle_hash = g_hash_table_new (g_int_hash, g_int_equal); this->handle_read = DEFAULT_HANDLE_READ; } -static void -gst_multi_fd_sink_finalize (GObject * object) -{ - GstMultiFdSink *this = GST_MULTI_FD_SINK (object); - - g_hash_table_destroy (this->handle_hash); - - G_OBJECT_CLASS (parent_class)->finalize (object); -} - static int gst_multi_fd_sink_client_get_fd (GstMultiHandleClient * client) { @@ -514,13 +495,13 @@ gst_multi_fd_sink_add_full (GstMultiFdSink * sink, GstMultiSinkHandle handle, CLIENTS_LOCK (sink); /* check the hash to find a duplicate fd */ - clink = g_hash_table_lookup (sink->handle_hash, &client->gfd.fd); + clink = g_hash_table_lookup (mhsink->handle_hash, &client->gfd.fd); if (clink != NULL) goto duplicate; /* we can add the fd now */ clink = mhsink->clients = g_list_prepend (mhsink->clients, client); - g_hash_table_insert (sink->handle_hash, &client->gfd.fd, clink); + g_hash_table_insert (mhsink->handle_hash, &client->gfd.fd, clink); mhsink->clients_cookie++; /* set the socket to non blocking */ @@ -603,7 +584,7 @@ gst_multi_fd_sink_remove (GstMultiFdSink * sink, GstMultiSinkHandle handle) GST_DEBUG_OBJECT (sink, "%s removing client", debug); CLIENTS_LOCK (sink); - clink = g_hash_table_lookup (sink->handle_hash, &fd); + clink = g_hash_table_lookup (mhsink->handle_hash, &fd); if (clink != NULL) { GstTCPClient *client = (GstTCPClient *) clink->data; GstMultiHandleClient *mhclient = (GstMultiHandleClient *) client; @@ -645,7 +626,7 @@ gst_multi_fd_sink_remove_flush (GstMultiFdSink * sink, GST_DEBUG_OBJECT (sink, "%s flushing client", debug); CLIENTS_LOCK (sink); - clink = g_hash_table_lookup (sink->handle_hash, &fd); + clink = g_hash_table_lookup (mhsink->handle_hash, &fd); if (clink != NULL) { GstTCPClient *client = (GstTCPClient *) clink->data; GstMultiHandleClient *mhclient = (GstMultiHandleClient *) client; @@ -708,7 +689,7 @@ gst_multi_fd_sink_get_stats (GstMultiFdSink * sink, GstMultiSinkHandle handle) mhsinkclass->handle_debug (handle, debug); CLIENTS_LOCK (sink); - clink = g_hash_table_lookup (sink->handle_hash, &fd); + clink = g_hash_table_lookup (mhsink->handle_hash, &fd); if (clink == NULL) goto noclient; @@ -856,7 +837,7 @@ gst_multi_fd_sink_remove_client_link (GstMultiHandleSink * sink, GList * link) /* fd cannot be reused in the above signal callback so we can safely * remove it from the hashtable here */ - if (!g_hash_table_remove (mfsink->handle_hash, &client->gfd.fd)) { + if (!g_hash_table_remove (sink->handle_hash, &client->gfd.fd)) { GST_WARNING_OBJECT (sink, "%s error removing client %p from hash", mhclient->debug, client); } @@ -1692,9 +1673,6 @@ gst_multi_fd_sink_get_property (GObject * object, guint prop_id, GValue * value, case PROP_HANDLE_READ: g_value_set_boolean (value, multifdsink->handle_read); break; - case PROP_NUM_FDS: - g_value_set_uint (value, g_hash_table_size (multifdsink->handle_hash)); - break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -1746,6 +1724,6 @@ gst_multi_fd_sink_stop_post (GstMultiHandleSink * mhsink) gst_poll_free (mfsink->fdset); mfsink->fdset = NULL; } - g_hash_table_foreach_remove (mfsink->handle_hash, multifdsink_hash_remove, + g_hash_table_foreach_remove (mhsink->handle_hash, multifdsink_hash_remove, mfsink); } diff --git a/gst/tcp/gstmultifdsink.h b/gst/tcp/gstmultifdsink.h index 3d3a6db..70526b0 100644 --- a/gst/tcp/gstmultifdsink.h +++ b/gst/tcp/gstmultifdsink.h @@ -66,8 +66,6 @@ struct _GstMultiFdSink { GstMultiHandleSink element; /*< private >*/ - GHashTable *handle_hash; /* index on fd to client */ - gint mode; GstPoll *fdset; diff --git a/gst/tcp/gstmultihandlesink.c b/gst/tcp/gstmultihandlesink.c index 700f8fa..6ea3875 100644 --- a/gst/tcp/gstmultihandlesink.c +++ b/gst/tcp/gstmultihandlesink.c @@ -194,9 +194,7 @@ enum PROP_RESEND_STREAMHEADER, -#if 0 - PROP_NUM_SOCKETS, -#endif + PROP_NUM_HANDLES, PROP_LAST }; @@ -458,12 +456,12 @@ gst_multi_handle_sink_class_init (GstMultiHandleSinkClass * klass) DEFAULT_RESEND_STREAMHEADER, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -#if 0 - g_object_class_install_property (gobject_class, PROP_NUM_SOCKETS, - g_param_spec_uint ("num-sockets", "Number of sockets", - "The current number of client sockets", + g_object_class_install_property (gobject_class, PROP_NUM_HANDLES, + g_param_spec_uint ("num-handles", "Number of handles", + "The current number of client handles", 0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); +#if 0 /** * GstMultiHandleSink::add: * @gstmultihandlesink: the multihandlesink element to emit this signal on @@ -689,6 +687,7 @@ gst_multi_handle_sink_finalize (GObject * object) CLIENTS_LOCK_CLEAR (this); g_array_free (this->bufqueue, TRUE); + g_hash_table_destroy (this->handle_hash); G_OBJECT_CLASS (parent_class)->finalize (object); } @@ -2620,12 +2619,10 @@ gst_multi_handle_sink_get_property (GObject * object, guint prop_id, case PROP_RESEND_STREAMHEADER: g_value_set_boolean (value, multihandlesink->resend_streamheader); break; -#if 0 - case PROP_NUM_SOCKETS: + case PROP_NUM_HANDLES: g_value_set_uint (value, - g_hash_table_size (multihandlesink->socket_hash)); + g_hash_table_size (multihandlesink->handle_hash)); break; -#endif default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; diff --git a/gst/tcp/gstmultihandlesink.h b/gst/tcp/gstmultihandlesink.h index 535c226..84db1c1 100644 --- a/gst/tcp/gstmultihandlesink.h +++ b/gst/tcp/gstmultihandlesink.h @@ -214,6 +214,8 @@ struct _GstMultiHandleSink { GList *clients; /* list of clients we are serving */ guint clients_cookie; /* Cookie to detect changes to the clients list */ + GHashTable *handle_hash; /* index of handle -> GstMultiHandleClient */ + GMainContext *main_context; GCancellable *cancellable; @@ -286,6 +288,7 @@ struct _GstMultiHandleSinkClass { GstStructure* (*get_stats) (GstMultiHandleSink *sink, GstMultiSinkHandle handle); void (*remove_client_link) (GstMultiHandleSink * sink, GList * link); + /* vtable */ gboolean (*init) (GstMultiHandleSink *sink); gboolean (*close) (GstMultiHandleSink *sink); diff --git a/gst/tcp/gstmultisocketsink.c b/gst/tcp/gstmultisocketsink.c index f3b94d4..d2a7911 100644 --- a/gst/tcp/gstmultisocketsink.c +++ b/gst/tcp/gstmultisocketsink.c @@ -142,8 +142,6 @@ enum { PROP_0, - PROP_NUM_SOCKETS, - PROP_LAST }; @@ -198,11 +196,6 @@ gst_multi_socket_sink_class_init (GstMultiSocketSinkClass * klass) gobject_class->get_property = gst_multi_socket_sink_get_property; gobject_class->finalize = gst_multi_socket_sink_finalize; - g_object_class_install_property (gobject_class, PROP_NUM_SOCKETS, - g_param_spec_uint ("num-sockets", "Number of sockets", - "The current number of client sockets", - 0, G_MAXUINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); - /** * GstMultiSocketSink::add: * @gstmultisocketsink: the multisocketsink element to emit this signal on @@ -381,7 +374,9 @@ gst_multi_socket_sink_class_init (GstMultiSocketSinkClass * klass) static void gst_multi_socket_sink_init (GstMultiSocketSink * this) { - this->handle_hash = g_hash_table_new (g_direct_hash, g_int_equal); + GstMultiHandleSink *mhsink = GST_MULTI_HANDLE_SINK (this); + + mhsink->handle_hash = g_hash_table_new (g_direct_hash, g_int_equal); this->cancellable = g_cancellable_new (); } @@ -391,7 +386,6 @@ gst_multi_socket_sink_finalize (GObject * object) { GstMultiSocketSink *this = GST_MULTI_SOCKET_SINK (object); - g_hash_table_destroy (this->handle_hash); if (this->cancellable) { g_object_unref (this->cancellable); this->cancellable = NULL; @@ -457,13 +451,13 @@ gst_multi_socket_sink_add_full (GstMultiSocketSink * sink, CLIENTS_LOCK (sink); /* check the hash to find a duplicate fd */ - clink = g_hash_table_lookup (sink->handle_hash, handle.socket); + clink = g_hash_table_lookup (mhsink->handle_hash, handle.socket); if (clink != NULL) goto duplicate; /* we can add the fd now */ clink = mhsink->clients = g_list_prepend (mhsink->clients, client); - g_hash_table_insert (sink->handle_hash, handle.socket, clink); + g_hash_table_insert (mhsink->handle_hash, handle.socket, clink); mhsink->clients_cookie++; /* set the socket to non blocking */ @@ -540,7 +534,7 @@ gst_multi_socket_sink_remove (GstMultiSocketSink * sink, GST_DEBUG_OBJECT (sink, "%s removing client", debug); CLIENTS_LOCK (sink); - clink = g_hash_table_lookup (sink->handle_hash, handle.socket); + clink = g_hash_table_lookup (mhsink->handle_hash, handle.socket); if (clink != NULL) { GstSocketClient *client = clink->data; GstMultiHandleClient *mhclient = (GstMultiHandleClient *) client; @@ -578,7 +572,7 @@ gst_multi_socket_sink_remove_flush (GstMultiSocketSink * sink, GST_DEBUG_OBJECT (sink, "%s flushing client", debug); CLIENTS_LOCK (sink); - clink = g_hash_table_lookup (sink->handle_hash, handle.socket); + clink = g_hash_table_lookup (mhsink->handle_hash, handle.socket); if (clink != NULL) { GstSocketClient *client = clink->data; GstMultiHandleClient *mhclient = (GstMultiHandleClient *) client; @@ -621,7 +615,7 @@ gst_multi_socket_sink_get_stats (GstMultiSocketSink * sink, mhsinkclass->handle_debug (handle, debug); CLIENTS_LOCK (sink); - clink = g_hash_table_lookup (sink->handle_hash, handle.socket); + clink = g_hash_table_lookup (mhsink->handle_hash, handle.socket); if (clink == NULL) goto noclient; @@ -677,7 +671,6 @@ gst_multi_socket_sink_remove_client_link (GstMultiHandleSink * sink, GTimeVal now; GstSocketClient *client = link->data; GstMultiHandleClient *mhclient = (GstMultiHandleClient *) client; - GstMultiSocketSink *mssink = GST_MULTI_SOCKET_SINK (sink); GstMultiSocketSinkClass *fclass; fclass = GST_MULTI_SOCKET_SINK_GET_CLASS (sink); @@ -753,7 +746,7 @@ gst_multi_socket_sink_remove_client_link (GstMultiHandleSink * sink, /* fd cannot be reused in the above signal callback so we can safely * remove it from the hashtable here */ - if (!g_hash_table_remove (mssink->handle_hash, mhclient->handle.socket)) { + if (!g_hash_table_remove (sink->handle_hash, mhclient->handle.socket)) { GST_WARNING_OBJECT (sink, "%s error removing client %p from hash", mhclient->debug, client); } @@ -1366,7 +1359,7 @@ gst_multi_socket_sink_socket_condition (GstMultiSinkHandle handle, GST_MULTI_HANDLE_SINK_GET_CLASS (mhsink); CLIENTS_LOCK (sink); - clink = g_hash_table_lookup (sink->handle_hash, handle.socket); + clink = g_hash_table_lookup (mhsink->handle_hash, handle.socket); if (clink == NULL) { ret = FALSE; goto done; @@ -1491,20 +1484,12 @@ gst_multi_socket_sink_set_property (GObject * object, guint prop_id, } } +// FIXME: remove ? static void gst_multi_socket_sink_get_property (GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) { - GstMultiSocketSink *multisocketsink; - - multisocketsink = GST_MULTI_SOCKET_SINK (object); - switch (prop_id) { - case PROP_NUM_SOCKETS: - g_value_set_uint (value, - g_hash_table_size (multisocketsink->handle_hash)); - break; - default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; @@ -1568,7 +1553,7 @@ gst_multi_socket_sink_stop_post (GstMultiHandleSink * mhsink) mssink->main_context = NULL; } - g_hash_table_foreach_remove (mssink->handle_hash, multisocketsink_hash_remove, + g_hash_table_foreach_remove (mhsink->handle_hash, multisocketsink_hash_remove, mssink); } diff --git a/gst/tcp/gstmultisocketsink.h b/gst/tcp/gstmultisocketsink.h index 01e821d..ddd773d 100644 --- a/gst/tcp/gstmultisocketsink.h +++ b/gst/tcp/gstmultisocketsink.h @@ -67,8 +67,6 @@ struct _GstMultiSocketSink { GstMultiHandleSink element; /*< private >*/ - GHashTable *handle_hash; /* index on socket to client */ - GMainContext *main_context; GCancellable *cancellable; diff --git a/tests/check/elements/multifdsink.c b/tests/check/elements/multifdsink.c index 8eba611..8822d1c 100644 --- a/tests/check/elements/multifdsink.c +++ b/tests/check/elements/multifdsink.c @@ -161,7 +161,7 @@ G_STMT_START { \ #define fail_unless_num_handles(sink,num) \ G_STMT_START { \ gint handles; \ - g_object_get (sink, "num-fds", &handles, NULL); \ + g_object_get (sink, "num-handles", &handles, NULL); \ fail_unless (handles == num, \ "sink has %d handles instead of expected %d", handles, num); \ } G_STMT_END; diff --git a/tests/check/elements/multisocketsink.c b/tests/check/elements/multisocketsink.c index 1b2cb79..5eb5204 100644 --- a/tests/check/elements/multisocketsink.c +++ b/tests/check/elements/multisocketsink.c @@ -153,7 +153,7 @@ G_STMT_START { \ #define fail_unless_num_handles(sink,num) \ G_STMT_START { \ gint handles; \ - g_object_get (sink, "num-sockets", &handles, NULL); \ + g_object_get (sink, "num-handles", &handles, NULL); \ fail_unless (handles == num, \ "sink has %d handles instead of expected %d", handles, num); \ } G_STMT_END;