gresolver.h 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. /* GIO - GLib Input, Output and Streaming Library
  2. *
  3. * Copyright (C) 2008 Red Hat, Inc.
  4. *
  5. * This library is free software; you can redistribute it and/or
  6. * modify it under the terms of the GNU Lesser General Public
  7. * License as published by the Free Software Foundation; either
  8. * version 2 of the License, or (at your option) any later version.
  9. *
  10. * This library is distributed in the hope that it will be useful,
  11. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  13. * Lesser General Public License for more details.
  14. *
  15. * You should have received a copy of the GNU Lesser General
  16. * Public License along with this library; if not, see <http://www.gnu.org/licenses/>.
  17. */
  18. #ifndef __G_RESOLVER_H__
  19. #define __G_RESOLVER_H__
  20. #if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
  21. #error "Only <gio/gio.h> can be included directly."
  22. #endif
  23. #include <gio/giotypes.h>
  24. G_BEGIN_DECLS
  25. #define G_TYPE_RESOLVER (g_resolver_get_type ())
  26. #define G_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_RESOLVER, GResolver))
  27. #define G_RESOLVER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_RESOLVER, GResolverClass))
  28. #define G_IS_RESOLVER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_RESOLVER))
  29. #define G_IS_RESOLVER_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_RESOLVER))
  30. #define G_RESOLVER_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_RESOLVER, GResolverClass))
  31. typedef struct _GResolverPrivate GResolverPrivate;
  32. typedef struct _GResolverClass GResolverClass;
  33. struct _GResolver {
  34. GObject parent_instance;
  35. GResolverPrivate *priv;
  36. };
  37. struct _GResolverClass {
  38. GObjectClass parent_class;
  39. /* Signals */
  40. void ( *reload) (GResolver *resolver);
  41. /* Virtual methods */
  42. GList * ( *lookup_by_name) (GResolver *resolver,
  43. const gchar *hostname,
  44. GCancellable *cancellable,
  45. GError **error);
  46. void ( *lookup_by_name_async) (GResolver *resolver,
  47. const gchar *hostname,
  48. GCancellable *cancellable,
  49. GAsyncReadyCallback callback,
  50. gpointer user_data);
  51. GList * ( *lookup_by_name_finish) (GResolver *resolver,
  52. GAsyncResult *result,
  53. GError **error);
  54. gchar * ( *lookup_by_address) (GResolver *resolver,
  55. GInetAddress *address,
  56. GCancellable *cancellable,
  57. GError **error);
  58. void ( *lookup_by_address_async) (GResolver *resolver,
  59. GInetAddress *address,
  60. GCancellable *cancellable,
  61. GAsyncReadyCallback callback,
  62. gpointer user_data);
  63. gchar * ( *lookup_by_address_finish) (GResolver *resolver,
  64. GAsyncResult *result,
  65. GError **error);
  66. GList * ( *lookup_service) (GResolver *resolver,
  67. const gchar *rrname,
  68. GCancellable *cancellable,
  69. GError **error);
  70. void ( *lookup_service_async) (GResolver *resolver,
  71. const gchar *rrname,
  72. GCancellable *cancellable,
  73. GAsyncReadyCallback callback,
  74. gpointer user_data);
  75. GList * ( *lookup_service_finish) (GResolver *resolver,
  76. GAsyncResult *result,
  77. GError **error);
  78. GList * ( *lookup_records) (GResolver *resolver,
  79. const gchar *rrname,
  80. GResolverRecordType record_type,
  81. GCancellable *cancellable,
  82. GError **error);
  83. void ( *lookup_records_async) (GResolver *resolver,
  84. const gchar *rrname,
  85. GResolverRecordType record_type,
  86. GCancellable *cancellable,
  87. GAsyncReadyCallback callback,
  88. gpointer user_data);
  89. GList * ( *lookup_records_finish) (GResolver *resolver,
  90. GAsyncResult *result,
  91. GError **error);
  92. /* Padding for future expansion */
  93. void (*_g_reserved4) (void);
  94. void (*_g_reserved5) (void);
  95. void (*_g_reserved6) (void);
  96. };
  97. GLIB_AVAILABLE_IN_ALL
  98. GType g_resolver_get_type (void) G_GNUC_CONST;
  99. GLIB_AVAILABLE_IN_ALL
  100. GResolver *g_resolver_get_default (void);
  101. GLIB_AVAILABLE_IN_ALL
  102. void g_resolver_set_default (GResolver *resolver);
  103. GLIB_AVAILABLE_IN_ALL
  104. GList *g_resolver_lookup_by_name (GResolver *resolver,
  105. const gchar *hostname,
  106. GCancellable *cancellable,
  107. GError **error);
  108. GLIB_AVAILABLE_IN_ALL
  109. void g_resolver_lookup_by_name_async (GResolver *resolver,
  110. const gchar *hostname,
  111. GCancellable *cancellable,
  112. GAsyncReadyCallback callback,
  113. gpointer user_data);
  114. GLIB_AVAILABLE_IN_ALL
  115. GList *g_resolver_lookup_by_name_finish (GResolver *resolver,
  116. GAsyncResult *result,
  117. GError **error);
  118. GLIB_AVAILABLE_IN_ALL
  119. void g_resolver_free_addresses (GList *addresses);
  120. GLIB_AVAILABLE_IN_ALL
  121. gchar *g_resolver_lookup_by_address (GResolver *resolver,
  122. GInetAddress *address,
  123. GCancellable *cancellable,
  124. GError **error);
  125. GLIB_AVAILABLE_IN_ALL
  126. void g_resolver_lookup_by_address_async (GResolver *resolver,
  127. GInetAddress *address,
  128. GCancellable *cancellable,
  129. GAsyncReadyCallback callback,
  130. gpointer user_data);
  131. GLIB_AVAILABLE_IN_ALL
  132. gchar *g_resolver_lookup_by_address_finish (GResolver *resolver,
  133. GAsyncResult *result,
  134. GError **error);
  135. GLIB_AVAILABLE_IN_ALL
  136. GList *g_resolver_lookup_service (GResolver *resolver,
  137. const gchar *service,
  138. const gchar *protocol,
  139. const gchar *domain,
  140. GCancellable *cancellable,
  141. GError **error);
  142. GLIB_AVAILABLE_IN_ALL
  143. void g_resolver_lookup_service_async (GResolver *resolver,
  144. const gchar *service,
  145. const gchar *protocol,
  146. const gchar *domain,
  147. GCancellable *cancellable,
  148. GAsyncReadyCallback callback,
  149. gpointer user_data);
  150. GLIB_AVAILABLE_IN_ALL
  151. GList *g_resolver_lookup_service_finish (GResolver *resolver,
  152. GAsyncResult *result,
  153. GError **error);
  154. GLIB_AVAILABLE_IN_2_34
  155. GList *g_resolver_lookup_records (GResolver *resolver,
  156. const gchar *rrname,
  157. GResolverRecordType record_type,
  158. GCancellable *cancellable,
  159. GError **error);
  160. GLIB_AVAILABLE_IN_2_34
  161. void g_resolver_lookup_records_async (GResolver *resolver,
  162. const gchar *rrname,
  163. GResolverRecordType record_type,
  164. GCancellable *cancellable,
  165. GAsyncReadyCallback callback,
  166. gpointer user_data);
  167. GLIB_AVAILABLE_IN_2_34
  168. GList *g_resolver_lookup_records_finish (GResolver *resolver,
  169. GAsyncResult *result,
  170. GError **error);
  171. GLIB_AVAILABLE_IN_ALL
  172. void g_resolver_free_targets (GList *targets);
  173. /**
  174. * G_RESOLVER_ERROR:
  175. *
  176. * Error domain for #GResolver. Errors in this domain will be from the
  177. * #GResolverError enumeration. See #GError for more information on
  178. * error domains.
  179. */
  180. #define G_RESOLVER_ERROR (g_resolver_error_quark ())
  181. GLIB_AVAILABLE_IN_ALL
  182. GQuark g_resolver_error_quark (void);
  183. G_END_DECLS
  184. #endif /* __G_RESOLVER_H__ */