Gnome2-VFS

 view release on metacpan or  search on metacpan

xs/GnomeVFSDNSSD.xs  view on Meta::CPAN

	PUTBACK;

	call_sv (callback->func, G_DISCARD);

	FREETMPS;
	LEAVE;
}

/* ------------------------------------------------------------------------- */

static GPerlCallback *
vfs2perl_dns_sd_browse_callback_create (SV *func, SV *data)
{
	return gperl_callback_new (func, data, 0, NULL, 0);
}

static void
vfs2perl_dns_sd_browse_callback (GnomeVFSDNSSDBrowseHandle *handle,
                                 GnomeVFSDNSSDServiceStatus status,
                                 const GnomeVFSDNSSDService *service,
                                 GPerlCallback* callback)
{
	dGPERL_CALLBACK_MARSHAL_SP;
	GPERL_CALLBACK_MARSHAL_INIT (callback);

	ENTER;
	SAVETMPS;

	PUSHMARK (SP);

	EXTEND (SP, 3);
	PUSHs (sv_2mortal (newSVGnomeVFSDNSSDBrowseHandle (handle)));
	PUSHs (sv_2mortal (newSVGnomeVFSDNSSDServiceStatus (status)));
	PUSHs (sv_2mortal (newSVGnomeVFSDNSSDService ((GnomeVFSDNSSDService *) service)));
	if (callback->data)
		XPUSHs (sv_2mortal (newSVsv (callback->data)));

	PUTBACK;

	call_sv (callback->func, G_DISCARD);

	FREETMPS;
	LEAVE;
}

/* ------------------------------------------------------------------------- */

MODULE = Gnome2::VFS::DNSSD	PACKAGE = Gnome2::VFS::DNSSD	PREFIX = gnome_vfs_dns_sd_

##  GnomeVFSResult gnome_vfs_dns_sd_browse (GnomeVFSDNSSDBrowseHandle **handle, const char *domain, const char *type, GnomeVFSDNSSDBrowseCallback callback, gpointer callback_data, GDestroyNotify callback_data_destroy_func)
void
gnome_vfs_dns_sd_browse (class, domain, type, func, data = NULL)
	const char *domain
	const char *type
	SV *func
	SV *data
    PREINIT:
	GnomeVFSDNSSDBrowseHandle *handle;
	GnomeVFSResult result;
	GPerlCallback *callback;
    PPCODE:
	callback = vfs2perl_dns_sd_browse_callback_create (func, data);

	result = gnome_vfs_dns_sd_browse (&handle,
	                                  domain,
	                                  type,
	                                  (GnomeVFSDNSSDBrowseCallback)
	                                    vfs2perl_dns_sd_browse_callback,
	                                  callback,
	                                  (GDestroyNotify)
	                                    gperl_callback_destroy);

	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVGnomeVFSResult (result)));
	PUSHs (sv_2mortal (newSVGnomeVFSDNSSDBrowseHandle (handle)));

##  GnomeVFSResult gnome_vfs_dns_sd_resolve (GnomeVFSDNSSDResolveHandle **handle, const char *name, const char *type, const char *domain, int timeout, GnomeVFSDNSSDResolveCallback callback, gpointer callback_data, GDestroyNotify callback_data_destroy...
void
gnome_vfs_dns_sd_resolve (class, name, type, domain, timeout, func, data=NULL)
	const char *name
	const char *type
	const char *domain
	int timeout
	SV *func
	SV *data
    PREINIT:
	GnomeVFSDNSSDResolveHandle *handle;
	GnomeVFSResult result;
	GPerlCallback *callback;
    PPCODE:
	callback = vfs2perl_dns_sd_resolve_callback_create (func, data);

	result = gnome_vfs_dns_sd_resolve (&handle,
	                                   name,
	                                   type,
	                                   domain,
	                                   timeout,
	                                   (GnomeVFSDNSSDResolveCallback)
	                                     vfs2perl_dns_sd_resolve_callback,
	                                   callback,
	                                   (GDestroyNotify)
	                                     gperl_callback_destroy);

	EXTEND (sp, 2);
	PUSHs (sv_2mortal (newSVGnomeVFSResult (result)));
	PUSHs (sv_2mortal (newSVGnomeVFSDNSSDResolveHandle (handle)));

##  GnomeVFSResult gnome_vfs_dns_sd_browse_sync (const char *domain, const char *type, int timeout_msec, int *n_services, GnomeVFSDNSSDService **services)
void
gnome_vfs_dns_sd_browse_sync (class, domain, type, timeout_msec)
	const char *domain
	const char *type
	int timeout_msec
    PREINIT:
	GnomeVFSResult result;
	int n_services, i;
	GnomeVFSDNSSDService *services = NULL;
    PPCODE:
	result = gnome_vfs_dns_sd_browse_sync (domain, type, timeout_msec, &n_services, &services);

	PUSHs (sv_2mortal (newSVGnomeVFSResult (result)));

	if (result == GNOME_VFS_OK && services) {
		for (i = 0; i < n_services; i++) {
			XPUSHs (sv_2mortal (newSVGnomeVFSDNSSDService (&services[i])));
		}
		gnome_vfs_dns_sd_service_list_free (services, n_services);
	}

##  GnomeVFSResult gnome_vfs_dns_sd_resolve_sync (const char *name, const char *type, const char *domain, int timeout_msec, char **host, int *port, GHashTable **text, int *text_raw_len, char **text_raw)
void
gnome_vfs_dns_sd_resolve_sync (class, name, type, domain, timeout_msec)
	const char *name
	const char *type
	const char *domain
	int timeout_msec
    PREINIT:
	GnomeVFSResult result;
	char *host = NULL;
	int port;
	GHashTable *text = NULL;
	int text_raw_len;
	char *text_raw = NULL;
    PPCODE:
	result = gnome_vfs_dns_sd_resolve_sync (name, type, domain, timeout_msec, &host, &port, &text, &text_raw_len, &text_raw);

	EXTEND (sp, 5);
	PUSHs (sv_2mortal (newSVGnomeVFSResult (result)));
	PUSHs (host ? sv_2mortal (newSVpv (host, 0)) : &PL_sv_undef);
	PUSHs (sv_2mortal (newSViv (port)));
	PUSHs (sv_2mortal (newSVGnomeVFSDNSSDResolveHashTable (text)));
	PUSHs (text_raw ? sv_2mortal (newSVpv (text_raw, text_raw_len)) : &PL_sv_undef);

	if (host)
		g_free (host);
	if (text_raw)
		g_free (text_raw);
	if (text)
		g_hash_table_destroy (text);

##  GnomeVFSResult gnome_vfs_dns_sd_list_browse_domains_sync (const char *domain, int timeout_msec, GList **domains)
void
gnome_vfs_dns_sd_list_browse_domains_sync (class, domain, timeout_msec)
	const char *domain
	int timeout_msec
    PREINIT:
	GnomeVFSResult result;
	GList *domains = NULL, *i;
    PPCODE:
	result = gnome_vfs_dns_sd_list_browse_domains_sync (domain, timeout_msec, &domains);

	PUSHs (sv_2mortal (newSVGnomeVFSResult (result)));

	if (result == GNOME_VFS_OK) {
		for (i = domains; i; i = i->next) {
			if (i->data) {
				XPUSHs (sv_2mortal (newSVpv (i->data, 0)));
				g_free (i->data);
			}
		}
	}

	g_list_free (domains);

# --------------------------------------------------------------------------- #

MODULE = Gnome2::VFS::DNSSD	PACKAGE = Gnome2::VFS	PREFIX = gnome_vfs_

=for object Gnome2::VFS::DNSSD
=cut

##  GList * gnome_vfs_get_default_browse_domains (void)
void
gnome_vfs_get_default_browse_domains (class)
    PREINIT:
	GList *domains = NULL, *i;
    PPCODE:
	PERL_UNUSED_VAR (ax);
	domains = gnome_vfs_get_default_browse_domains ();

	for (i = domains; i; i = i->next) {
		if (i->data) {
			XPUSHs (sv_2mortal (newSVpv (i->data, 0)));
			g_free (i->data);
		}
	}

	g_list_free (domains);

# --------------------------------------------------------------------------- #

MODULE = Gnome2::VFS::DNSSD	PACKAGE = Gnome2::VFS::DNSSD::Browse::Handle	PREFIX = gnome_vfs_dns_sd_browse_

##  GnomeVFSResult gnome_vfs_dns_sd_stop_browse (GnomeVFSDNSSDBrowseHandle *handle)
GnomeVFSResult
gnome_vfs_dns_sd_browse_stop (handle)
	GnomeVFSDNSSDBrowseHandle *handle
    CODE:
	RETVAL = gnome_vfs_dns_sd_stop_browse (handle);
    OUTPUT:
	RETVAL

MODULE = Gnome2::VFS::DNSSD	PACKAGE = Gnome2::VFS::DNSSD::Resolve::Handle	PREFIX = gnome_vfs_dns_sd_resolve_

##  GnomeVFSResult gnome_vfs_dns_sd_cancel_resolve (GnomeVFSDNSSDResolveHandle *handle)
GnomeVFSResult
gnome_vfs_dns_sd_resolve_cancel (handle)
	GnomeVFSDNSSDResolveHandle *handle
    CODE:
	RETVAL = gnome_vfs_dns_sd_cancel_resolve (handle);
    OUTPUT:
	RETVAL



( run in 0.542 second using v1.01-cache-2.11-cpan-5511b514fd6 )