soup-address.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. /* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
  2. /*
  3. * Copyright (C) 2000-2003, Ximian, Inc.
  4. */
  5. #ifndef SOUP_ADDRESS_H
  6. #define SOUP_ADDRESS_H
  7. #include <sys/types.h>
  8. #include <libsoup/soup-types.h>
  9. G_BEGIN_DECLS
  10. #define SOUP_TYPE_ADDRESS (soup_address_get_type ())
  11. #define SOUP_ADDRESS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SOUP_TYPE_ADDRESS, SoupAddress))
  12. #define SOUP_ADDRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SOUP_TYPE_ADDRESS, SoupAddressClass))
  13. #define SOUP_IS_ADDRESS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SOUP_TYPE_ADDRESS))
  14. #define SOUP_IS_ADDRESS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), SOUP_TYPE_ADDRESS))
  15. #define SOUP_ADDRESS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SOUP_TYPE_ADDRESS, SoupAddressClass))
  16. struct _SoupAddress {
  17. GObject parent;
  18. };
  19. typedef struct {
  20. GObjectClass parent_class;
  21. /* Padding for future expansion */
  22. void (*_libsoup_reserved1) (void);
  23. void (*_libsoup_reserved2) (void);
  24. void (*_libsoup_reserved3) (void);
  25. void (*_libsoup_reserved4) (void);
  26. } SoupAddressClass;
  27. #define SOUP_ADDRESS_NAME "name"
  28. #define SOUP_ADDRESS_FAMILY "family"
  29. #define SOUP_ADDRESS_PORT "port"
  30. #define SOUP_ADDRESS_PROTOCOL "protocol"
  31. #define SOUP_ADDRESS_PHYSICAL "physical"
  32. #define SOUP_ADDRESS_SOCKADDR "sockaddr"
  33. typedef enum {
  34. SOUP_ADDRESS_FAMILY_INVALID = -1,
  35. SOUP_ADDRESS_FAMILY_IPV4 = G_SOCKET_FAMILY_IPV4,
  36. SOUP_ADDRESS_FAMILY_IPV6 = G_SOCKET_FAMILY_IPV6
  37. } SoupAddressFamily;
  38. #define SOUP_ADDRESS_ANY_PORT 0
  39. struct sockaddr;
  40. typedef void (*SoupAddressCallback) (SoupAddress *addr,
  41. guint status,
  42. gpointer user_data);
  43. SOUP_AVAILABLE_IN_2_4
  44. GType soup_address_get_type (void);
  45. SOUP_AVAILABLE_IN_2_4
  46. SoupAddress *soup_address_new (const char *name,
  47. guint port);
  48. SOUP_AVAILABLE_IN_2_4
  49. SoupAddress *soup_address_new_from_sockaddr (struct sockaddr *sa,
  50. int len);
  51. SOUP_AVAILABLE_IN_2_4
  52. SoupAddress *soup_address_new_any (SoupAddressFamily family,
  53. guint port);
  54. SOUP_AVAILABLE_IN_2_4
  55. void soup_address_resolve_async (SoupAddress *addr,
  56. GMainContext *async_context,
  57. GCancellable *cancellable,
  58. SoupAddressCallback callback,
  59. gpointer user_data);
  60. SOUP_AVAILABLE_IN_2_4
  61. guint soup_address_resolve_sync (SoupAddress *addr,
  62. GCancellable *cancellable);
  63. SOUP_AVAILABLE_IN_2_4
  64. const char *soup_address_get_name (SoupAddress *addr);
  65. SOUP_AVAILABLE_IN_2_4
  66. const char *soup_address_get_physical (SoupAddress *addr);
  67. SOUP_AVAILABLE_IN_2_4
  68. guint soup_address_get_port (SoupAddress *addr);
  69. SOUP_AVAILABLE_IN_2_4
  70. struct sockaddr *soup_address_get_sockaddr (SoupAddress *addr,
  71. int *len);
  72. SOUP_AVAILABLE_IN_2_32
  73. GSocketAddress *soup_address_get_gsockaddr (SoupAddress *addr);
  74. SOUP_AVAILABLE_IN_2_4
  75. gboolean soup_address_is_resolved (SoupAddress *addr);
  76. SOUP_AVAILABLE_IN_2_26
  77. guint soup_address_hash_by_name (gconstpointer addr);
  78. SOUP_AVAILABLE_IN_2_26
  79. gboolean soup_address_equal_by_name (gconstpointer addr1,
  80. gconstpointer addr2);
  81. SOUP_AVAILABLE_IN_2_26
  82. guint soup_address_hash_by_ip (gconstpointer addr);
  83. SOUP_AVAILABLE_IN_2_26
  84. gboolean soup_address_equal_by_ip (gconstpointer addr1,
  85. gconstpointer addr2);
  86. G_END_DECLS
  87. #endif /* SOUP_ADDRESS_H */