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


#include <gstreamermm/basesink.h>
#include <gstreamermm/enums.h>
#include <glibmm/valuearray.h>
_DEFS(gstreamermm,gst)

// Plug-in C enums used in signals:
enum GstSyncMethod
{
  GST_SYNC_METHOD_LATEST = 0,
  GST_SYNC_METHOD_NEXT_KEYFRAME = 1,
  GST_SYNC_METHOD_LATEST_KEYFRAME = 2,
  GST_SYNC_METHOD_BURST = 3,
  GST_SYNC_METHOD_BURST_KEYFRAME = 4,
  GST_SYNC_METHOD_BURST_WITH_KEYFRAME = 5
};

enum GstTCPUnitType
{
  GST_TCP_UNIT_TYPE_UNDEFINED = 0,
  GST_TCP_UNIT_TYPE_BUFFERS = 1,
  GST_TCP_UNIT_TYPE_BYTES = 3,
  GST_TCP_UNIT_TYPE_TIME = 2
};

enum GstClientStatus
{
  GST_CLIENT_STATUS_OK = 0,
  GST_CLIENT_STATUS_CLOSED = 1,
  GST_CLIENT_STATUS_REMOVED = 2,
  GST_CLIENT_STATUS_SLOW = 3,
  GST_CLIENT_STATUS_ERROR = 4,
  GST_CLIENT_STATUS_DUPLICATE = 5,
  GST_CLIENT_STATUS_FLUSHING = 6
};

namespace Gst
{

_WRAP_ENUM(FDSetMode,GstFDSetMode)
_CONV_ENUM(Gst,FDSetMode)

_WRAP_ENUM(TCPUnitType,GstTCPUnitType)
_CONV_ENUM(Gst,TCPUnitType)

_WRAP_ENUM(RecoverPolicy,GstRecoverPolicy)
_CONV_ENUM(Gst,RecoverPolicy)

_WRAP_ENUM(SyncMethod,GstSyncMethod)
_CONV_ENUM(Gst,SyncMethod)

_WRAP_ENUM(ClientStatus,GstClientStatus)
_CONV_ENUM(Gst,ClientStatus)

/** A Wrapper for the multifdsink plugin.
 * Please note that, though using the underlying GObject is fine, using its C
 * <B>type</B> is not guaranteed to be API stable across releases because it is
 * not guaranteed to always remain the same.  Also, 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
 */
class MultiFdSink
: public Gst::BaseSink
{
  _CLASS_GOBJECT(MultiFdSink, GstMultiFdSink, GST_MULTI_FD_SINK, Gst::BaseSink, GstBaseSink)
  _IS_GSTREAMERMM_PLUGIN

protected:
  MultiFdSink();
  explicit MultiFdSink(const Glib::ustring& name);

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

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

  /** This is a convenience method for the action signal
   * signal_add().
   */
  void add(int arg0);

  /** This is a convenience method for the action signal
   * signal_add_full().
   */
  void add_full(int arg0, Gst::SyncMethod arg1, Gst::TCPUnitType arg2, guint64 arg3, Gst::TCPUnitType arg4, guint64 arg5);

  /** This is a convenience method for the action signal
   * signal_remove().
   */
  void remove(int arg0);

  /** This is a convenience method for the action signal
   * signal_remove_flush().
   */
  void remove_flush(int arg0);

  /** This is a convenience method for the action signal
   * signal_clear().
   */
  void clear();

  /** This is a convenience method for the action signal
   * signal_get_stats().
   */
  Glib::ValueArray get_stats(int arg0);


  _WRAP_PROPERTY("protocol", Gst::TCPProtocol)
  _WRAP_PROPERTY("mode", Gst::FDSetMode)
  _WRAP_PROPERTY("buffers-queued", guint)
  _WRAP_PROPERTY("unit-type", Gst::TCPUnitType)
  _WRAP_PROPERTY("units-max", gint64)
  _WRAP_PROPERTY("units-soft-max", gint64)
  _WRAP_PROPERTY("buffers-max", int)
  _WRAP_PROPERTY("buffers-soft-max", int)
  _WRAP_PROPERTY("time-min", gint64)
  _WRAP_PROPERTY("bytes-min", int)
  _WRAP_PROPERTY("buffers-min", int)
  _WRAP_PROPERTY("recover-policy", Gst::RecoverPolicy)
  _WRAP_PROPERTY("timeout", guint64)
  _WRAP_PROPERTY("sync-method", Gst::SyncMethod)
  _WRAP_PROPERTY("bytes-to-serve", guint64)
  _WRAP_PROPERTY("bytes-served", guint64)
  _WRAP_PROPERTY("burst-unit", Gst::TCPUnitType)
  _WRAP_PROPERTY("burst-value", guint64)
  _WRAP_PROPERTY("qos-dscp", int)
  _WRAP_PROPERTY("handle-read", bool)
  _WRAP_PROPERTY("resend-streamheader", bool)
  _WRAP_PROPERTY("num-fds", guint)


  /** 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(int arg0), "add", no_default_handler)


  /** 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(int arg0, Gst::SyncMethod arg1, Gst::TCPUnitType arg2, guint64 arg3, Gst::TCPUnitType arg4, guint64 arg5), "add-full", no_default_handler)


  /** 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(int arg0), "remove", no_default_handler)


  /** 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(int arg0), "remove-flush", no_default_handler)


  /** This is an action signal which is designed to be used as a method.  To 
   * do that, use its convenience method, clear().
   */
  _WRAP_SIGNAL(void clear(), "clear", no_default_handler)


#m4 _CONVERSION(`Glib::ValueArray', `GValueArray*', `($3).gobj_copy()')
#m4 _CONVERSION(`GValueArray*', `Glib::ValueArray', `Glib::wrap($3)')
  /** 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(Glib::ValueArray get_stats(int arg0), "get-stats", no_default_handler)

  _WRAP_SIGNAL(void client_added(int arg0), "client-added", no_default_handler)
  _WRAP_SIGNAL(void client_removed(int arg0, Gst::ClientStatus arg1), "client-removed", no_default_handler)
  _WRAP_SIGNAL(void client_fd_removed(int arg0), "client-fd-removed", no_default_handler)
};

} // namespace Gst
