*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
*/
#ifndef __GST_NET_ADDRESS_META_H__
#define __GST_NET_ADDRESS_META_H__
#include <gst/gst.h>
+#include <gio/gio.h>
+#include <gst/net/net-prelude.h>
G_BEGIN_DECLS
-typedef struct _GstNetAddress GstNetAddress;
-
-/**
- * GstNetType:
- * @GST_NET_TYPE_UNKNOWN: unknown address type
- * @GST_NET_TYPE_IP4: an IPv4 address type
- * @GST_NET_TYPE_IP6: and IPv6 address type
- *
- * The Address type used in #GstNetAddress.
- */
-typedef enum {
- GST_NET_TYPE_UNKNOWN,
- GST_NET_TYPE_IP4,
- GST_NET_TYPE_IP6,
-} GstNetType;
-
-/**
- * GST_NETADDRESS_MAX_LEN:
- *
- * The maximum length of a string representation of a GstNetAddress as produced
- * by gst_net_address_to_string().
- *
- * Since: 0.10.24
- */
-#define GST_NETADDRESS_MAX_LEN 64
-
-/**
- * GstNetAddress:
- *
- * An opaque network address as used in #GstNetAddressMeta.
- */
-struct _GstNetAddress {
- /*< private >*/
- GstNetType type;
- union {
- guint8 ip6[16];
- guint32 ip4;
- } address;
- guint16 port;
- /*< private >*/
- gpointer _gst_reserved[GST_PADDING];
-};
-
typedef struct _GstNetAddressMeta GstNetAddressMeta;
/**
* GstNetAddressMeta:
+ * @meta: the parent type
+ * @addr: a #GSocketAddress stored as metadata
*
* Buffer metadata for network addresses.
*/
struct _GstNetAddressMeta {
GstMeta meta;
- GstNetAddress naddr;
+ GSocketAddress *addr;
};
-const GstMetaInfo *gst_net_address_meta_get_info (void);
-#define GST_NET_ADDRESS_META_INFO (gst_net_address_meta_get_info())
-
-#define gst_buffer_get_net_address_meta(b) \
- ((GstNetAddressMeta*)gst_buffer_get_meta((b),GST_NET_ADDRESS_META_INFO))
-#define gst_buffer_add_net_address_meta(b) \
- ((GstNetAddressMeta*)gst_buffer_add_meta((b),GST_NET_ADDRESS_META_INFO,NULL))
-
-/* address operations */
-void gst_net_address_set_ip4_address (GstNetAddress *naddr, guint32 address, guint16 port);
-void gst_net_address_set_ip6_address (GstNetAddress *naddr, guint8 address[16], guint16 port);
-gint gst_net_address_set_address_bytes (GstNetAddress *naddr, GstNetType type,
- guint8 address[16], guint16 port);
+GST_NET_API
+GType gst_net_address_meta_api_get_type (void);
+#define GST_NET_ADDRESS_META_API_TYPE (gst_net_address_meta_api_get_type())
-GstNetType gst_net_address_get_net_type (const GstNetAddress *naddr);
-gboolean gst_net_address_get_ip4_address (const GstNetAddress *naddr,
- guint32 *address, guint16 *port);
-gboolean gst_net_address_get_ip6_address (const GstNetAddress *naddr,
- guint8 address[16], guint16 *port);
-gint gst_net_address_get_address_bytes (const GstNetAddress *naddr,
- guint8 address[16], guint16 *port);
+/* implementation */
-gboolean gst_net_address_equal (const GstNetAddress *naddr1,
- const GstNetAddress *naddr2);
+GST_NET_API
+const GstMetaInfo *gst_net_address_meta_get_info (void);
+#define GST_NET_ADDRESS_META_INFO (gst_net_address_meta_get_info())
-gint gst_net_address_to_string (const GstNetAddress *naddr,
- gchar *dest, gsize len);
+GST_NET_API
+GstNetAddressMeta * gst_buffer_add_net_address_meta (GstBuffer *buffer,
+ GSocketAddress *addr);
+GST_NET_API
+GstNetAddressMeta * gst_buffer_get_net_address_meta (GstBuffer *buffer);
G_END_DECLS