SCM_GLOBAL_SMOB (scm_tc16_avahi_domain_browser, "domain-browser", 0);
SCM_DEFINE (scm_avahi_free_domain_browser_x, "free-domain-browser!", 1, 0, 0,
            (SCM obj),
            "Explicitly free @var{obj}, an object of type @code{domain-browser}.")
#define FUNC_NAME s_scm_avahi_free_domain_browser_x
{
  AvahiDomainBrowser * c_obj;
  c_obj = scm_to_avahi_domain_browser (obj, 1, 0);
  if (c_obj != NULL)
    {
      (void) avahi_domain_browser_free (c_obj);
      scm_gc_unprotect_object (obj);
      SCM_SET_SMOB_DATA (obj, (scm_t_bits) NULL);
    }
  return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_freed_domain_browser_p, "freed-domain-browser?", 1, 0, 0,
            (SCM obj),
            "Return @code{#t} if @var{obj} is an object of type @code{domain-browser} that has already been explicitly freed.")
#define FUNC_NAME s_scm_avahi_freed_domain_browser_p
{
  AvahiDomainBrowser * c_obj;
  c_obj = scm_to_avahi_domain_browser (obj, 1, 0);
  return (scm_from_bool (c_obj == NULL));
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_domain_browser_p, "domain-browser?", 1, 0, 0,
            (SCM obj),
            "Return true if @var{obj} is of type @code{domain-browser}.")
#define FUNC_NAME s_scm_avahi_domain_browser_p
{
  return (scm_from_bool (SCM_SMOB_PREDICATE (scm_tc16_avahi_domain_browser, obj)));
}
#undef FUNC_NAME
SCM_GLOBAL_SMOB (scm_tc16_avahi_service_browser, "service-browser", 0);
SCM_DEFINE (scm_avahi_free_service_browser_x, "free-service-browser!", 1, 0, 0,
            (SCM obj),
            "Explicitly free @var{obj}, an object of type @code{service-browser}.")
#define FUNC_NAME s_scm_avahi_free_service_browser_x
{
  AvahiServiceBrowser * c_obj;
  c_obj = scm_to_avahi_service_browser (obj, 1, 0);
  if (c_obj != NULL)
    {
      (void) avahi_service_browser_free (c_obj);
      scm_gc_unprotect_object (obj);
      SCM_SET_SMOB_DATA (obj, (scm_t_bits) NULL);
    }
  return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_freed_service_browser_p, "freed-service-browser?", 1, 0, 0,
            (SCM obj),
            "Return @code{#t} if @var{obj} is an object of type @code{service-browser} that has already been explicitly freed.")
#define FUNC_NAME s_scm_avahi_freed_service_browser_p
{
  AvahiServiceBrowser * c_obj;
  c_obj = scm_to_avahi_service_browser (obj, 1, 0);
  return (scm_from_bool (c_obj == NULL));
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_service_browser_p, "service-browser?", 1, 0, 0,
            (SCM obj),
            "Return true if @var{obj} is of type @code{service-browser}.")
#define FUNC_NAME s_scm_avahi_service_browser_p
{
  return (scm_from_bool (SCM_SMOB_PREDICATE (scm_tc16_avahi_service_browser, obj)));
}
#undef FUNC_NAME
SCM_GLOBAL_SMOB (scm_tc16_avahi_service_type_browser, "service-type-browser", 0);
SCM_DEFINE (scm_avahi_free_service_type_browser_x, "free-service-type-browser!", 1, 0, 0,
            (SCM obj),
            "Explicitly free @var{obj}, an object of type @code{service-type-browser}.")
#define FUNC_NAME s_scm_avahi_free_service_type_browser_x
{
  AvahiServiceTypeBrowser * c_obj;
  c_obj = scm_to_avahi_service_type_browser (obj, 1, 0);
  if (c_obj != NULL)
    {
      (void) avahi_service_type_browser_free (c_obj);
      scm_gc_unprotect_object (obj);
      SCM_SET_SMOB_DATA (obj, (scm_t_bits) NULL);
    }
  return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_freed_service_type_browser_p, "freed-service-type-browser?", 1, 0, 0,
            (SCM obj),
            "Return @code{#t} if @var{obj} is an object of type @code{service-type-browser} that has already been explicitly freed.")
#define FUNC_NAME s_scm_avahi_freed_service_type_browser_p
{
  AvahiServiceTypeBrowser * c_obj;
  c_obj = scm_to_avahi_service_type_browser (obj, 1, 0);
  return (scm_from_bool (c_obj == NULL));
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_service_type_browser_p, "service-type-browser?", 1, 0, 0,
            (SCM obj),
            "Return true if @var{obj} is of type @code{service-type-browser}.")
#define FUNC_NAME s_scm_avahi_service_type_browser_p
{
  return (scm_from_bool (SCM_SMOB_PREDICATE (scm_tc16_avahi_service_type_browser, obj)));
}
#undef FUNC_NAME
SCM_GLOBAL_SMOB (scm_tc16_avahi_service_resolver, "service-resolver", 0);
SCM_DEFINE (scm_avahi_free_service_resolver_x, "free-service-resolver!", 1, 0, 0,
            (SCM obj),
            "Explicitly free @var{obj}, an object of type @code{service-resolver}.")
#define FUNC_NAME s_scm_avahi_free_service_resolver_x
{
  AvahiServiceResolver * c_obj;
  c_obj = scm_to_avahi_service_resolver (obj, 1, 0);
  if (c_obj != NULL)
    {
      (void) avahi_service_resolver_free (c_obj);
      scm_gc_unprotect_object (obj);
      SCM_SET_SMOB_DATA (obj, (scm_t_bits) NULL);
    }
  return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_freed_service_resolver_p, "freed-service-resolver?", 1, 0, 0,
            (SCM obj),
            "Return @code{#t} if @var{obj} is an object of type @code{service-resolver} that has already been explicitly freed.")
#define FUNC_NAME s_scm_avahi_freed_service_resolver_p
{
  AvahiServiceResolver * c_obj;
  c_obj = scm_to_avahi_service_resolver (obj, 1, 0);
  return (scm_from_bool (c_obj == NULL));
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_service_resolver_p, "service-resolver?", 1, 0, 0,
            (SCM obj),
            "Return true if @var{obj} is of type @code{service-resolver}.")
#define FUNC_NAME s_scm_avahi_service_resolver_p
{
  return (scm_from_bool (SCM_SMOB_PREDICATE (scm_tc16_avahi_service_resolver, obj)));
}
#undef FUNC_NAME
SCM_GLOBAL_SMOB (scm_tc16_avahi_host_name_resolver, "host-name-resolver", 0);
SCM_DEFINE (scm_avahi_free_host_name_resolver_x, "free-host-name-resolver!", 1, 0, 0,
            (SCM obj),
            "Explicitly free @var{obj}, an object of type @code{host-name-resolver}.")
#define FUNC_NAME s_scm_avahi_free_host_name_resolver_x
{
  AvahiHostNameResolver * c_obj;
  c_obj = scm_to_avahi_host_name_resolver (obj, 1, 0);
  if (c_obj != NULL)
    {
      (void) avahi_host_name_resolver_free (c_obj);
      scm_gc_unprotect_object (obj);
      SCM_SET_SMOB_DATA (obj, (scm_t_bits) NULL);
    }
  return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_freed_host_name_resolver_p, "freed-host-name-resolver?", 1, 0, 0,
            (SCM obj),
            "Return @code{#t} if @var{obj} is an object of type @code{host-name-resolver} that has already been explicitly freed.")
#define FUNC_NAME s_scm_avahi_freed_host_name_resolver_p
{
  AvahiHostNameResolver * c_obj;
  c_obj = scm_to_avahi_host_name_resolver (obj, 1, 0);
  return (scm_from_bool (c_obj == NULL));
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_host_name_resolver_p, "host-name-resolver?", 1, 0, 0,
            (SCM obj),
            "Return true if @var{obj} is of type @code{host-name-resolver}.")
#define FUNC_NAME s_scm_avahi_host_name_resolver_p
{
  return (scm_from_bool (SCM_SMOB_PREDICATE (scm_tc16_avahi_host_name_resolver, obj)));
}
#undef FUNC_NAME
SCM_GLOBAL_SMOB (scm_tc16_avahi_address_resolver, "address-resolver", 0);
SCM_DEFINE (scm_avahi_free_address_resolver_x, "free-address-resolver!", 1, 0, 0,
            (SCM obj),
            "Explicitly free @var{obj}, an object of type @code{address-resolver}.")
#define FUNC_NAME s_scm_avahi_free_address_resolver_x
{
  AvahiAddressResolver * c_obj;
  c_obj = scm_to_avahi_address_resolver (obj, 1, 0);
  if (c_obj != NULL)
    {
      (void) avahi_address_resolver_free (c_obj);
      scm_gc_unprotect_object (obj);
      SCM_SET_SMOB_DATA (obj, (scm_t_bits) NULL);
    }
  return SCM_UNSPECIFIED;
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_freed_address_resolver_p, "freed-address-resolver?", 1, 0, 0,
            (SCM obj),
            "Return @code{#t} if @var{obj} is an object of type @code{address-resolver} that has already been explicitly freed.")
#define FUNC_NAME s_scm_avahi_freed_address_resolver_p
{
  AvahiAddressResolver * c_obj;
  c_obj = scm_to_avahi_address_resolver (obj, 1, 0);
  return (scm_from_bool (c_obj == NULL));
}
#undef FUNC_NAME
SCM_DEFINE (scm_avahi_address_resolver_p, "address-resolver?", 1, 0, 0,
            (SCM obj),
            "Return true if @var{obj} is of type @code{address-resolver}.")
#define FUNC_NAME s_scm_avahi_address_resolver_p
{
  return (scm_from_bool (SCM_SMOB_PREDICATE (scm_tc16_avahi_address_resolver, obj)));
}
#undef FUNC_NAME
