// Generated by generate_plugin_gmmproc_file. Don't edit this file.


#include <gstreamermm/basesink.h>
#include <giomm/socket.h>
#include <gstreamermm/enums.h>
#include <gstreamermm/format.h>
#include <gstreamermm/structure.h>
#include <glibmm/object.h>
#include <gstreamermm/enums.h>
_DEFS(gstreamermm,gst)

// Plug-in C enums used in signals:
namespace Gst
{

/** A Wrapper for the multisocketsink plugin.
 * Please note that not all plug-ins are available on all systems so care
 * must be taken that they exist before they are used otherwise there will
 * be errors and possibly a crash.
 *
 * @ingroup GstPlugins
 * @deprecated Plugins API is deprecated, and should not be used in a new code.
 */
class MultiSocketSink
: public Gst::BaseSink
{
  _CLASS_GOBJECT(MultiSocketSink, GstMultiSocketSink, GST_MULTI_SOCKET_SINK_GSTREAMERMM, Gst::BaseSink, GstBaseSink)
  _IS_GSTREAMERMM_PLUGIN
protected:
  MultiSocketSink();
  explicit MultiSocketSink(const Glib::ustring& name);

public:
  /** Creates a new multisocketsink plugin with a unique name.
   */
  _WRAP_CREATE()

  /** Creates a new multisocketsink plugin with the given name.
   */
  _WRAP_CREATE(const Glib::ustring& name)

  /** This is a convenience method for the action signal
   * signal_add().
   */
  void add(const Glib::RefPtr<Gio::Socket>& arg0);

  /** This is a convenience method for the action signal
   * signal_add_full().
   */
  void add_full(const Glib::RefPtr<Gio::Socket>& arg0, Gst::MultiHandleSinkSyncMethod arg1, Gst::Format arg2, guint64 arg3, Gst::Format arg4, guint64 arg5);

  /** This is a convenience method for the action signal
   * signal_remove().
   */
  void remove(const Glib::RefPtr<Gio::Socket>& arg0);

  /** This is a convenience method for the action signal
   * signal_remove_flush().
   */
  void remove_flush(const Glib::RefPtr<Gio::Socket>& arg0);

  /** This is a convenience method for the action signal
   * signal_get_stats().
   */
  Gst::Structure get_stats(const Glib::RefPtr<Gio::Socket>& arg0);


  _WRAP_PROPERTY("send-dispatched", bool)
  _WRAP_PROPERTY("send-messages", bool)


#m4 _CONVERSION(`GSocket*', `const Glib::RefPtr<Gio::Socket>&', `Glib::wrap($3, true)')
  /** This is an action signal which is designed to be used as a method.  To 
   * do that, use its convenience method, add().
   */
  _WRAP_SIGNAL(void add(const Glib::RefPtr<Gio::Socket>& arg0), "add", no_default_handler)


#m4 _CONVERSION(`GSocket*', `const Glib::RefPtr<Gio::Socket>&', `Glib::wrap($3, true)')
  /** This is an action signal which is designed to be used as a method.  To 
   * do that, use its convenience method, add_full().
   */
  _WRAP_SIGNAL(void add_full(const Glib::RefPtr<Gio::Socket>& arg0, Gst::MultiHandleSinkSyncMethod arg1, Gst::Format arg2, guint64 arg3, Gst::Format arg4, guint64 arg5), "add-full", no_default_handler)


#m4 _CONVERSION(`GSocket*', `const Glib::RefPtr<Gio::Socket>&', `Glib::wrap($3, true)')
  /** This is an action signal which is designed to be used as a method.  To 
   * do that, use its convenience method, remove().
   */
  _WRAP_SIGNAL(void remove(const Glib::RefPtr<Gio::Socket>& arg0), "remove", no_default_handler)


#m4 _CONVERSION(`GSocket*', `const Glib::RefPtr<Gio::Socket>&', `Glib::wrap($3, true)')
  /** This is an action signal which is designed to be used as a method.  To 
   * do that, use its convenience method, remove_flush().
   */
  _WRAP_SIGNAL(void remove_flush(const Glib::RefPtr<Gio::Socket>& arg0), "remove-flush", no_default_handler)


#m4 _CONVERSION(`Gst::Structure', `GstStructure*', `($3).gobj_copy()')
#m4 _CONVERSION(`GstStructure*', `Gst::Structure', `Glib::wrap($3)')
#m4 _CONVERSION(`GSocket*', `const Glib::RefPtr<Gio::Socket>&', `Glib::wrap($3, true)')
  /** This is an action signal which is designed to be used as a method.  To 
   * do that, use its convenience method, get_stats().
   */
  _WRAP_SIGNAL(Gst::Structure get_stats(const Glib::RefPtr<Gio::Socket>& arg0), "get-stats", no_default_handler)

#m4 _CONVERSION(`GObject*', `const Glib::RefPtr<Glib::Object>&', `Glib::wrap($3, true)')
  _WRAP_SIGNAL(void client_added(const Glib::RefPtr<Glib::Object>& arg0), "client-added", no_default_handler)
#m4 _CONVERSION(`GSocket*', `const Glib::RefPtr<Gio::Socket>&', `Glib::wrap($3, true)')
  _WRAP_SIGNAL(void client_removed(const Glib::RefPtr<Gio::Socket>& arg0, Gst::MultiHandleSinkClientStatus arg1), "client-removed", no_default_handler)
#m4 _CONVERSION(`GSocket*', `const Glib::RefPtr<Gio::Socket>&', `Glib::wrap($3, true)')
  _WRAP_SIGNAL(void client_socket_removed(const Glib::RefPtr<Gio::Socket>& arg0), "client-socket-removed", no_default_handler)
};

} // namespace Gst
