ginetaddressmask.h 3.05 KB
Newer Older
1 2 3 4 5 6 7
/* GIO - GLib Input, Output and Streaming Library
 *
 * Copyright 2011 Red Hat, Inc.
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
8
 * version 2.1 of the License, or (at your option) any later version.
9 10 11 12 13 14 15
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * 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
 */

19 20 21
#ifndef __G_INET_ADDRESS_MASK_H__
#define __G_INET_ADDRESS_MASK_H__

22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
#if !defined (__GIO_GIO_H_INSIDE__) && !defined (GIO_COMPILATION)
#error "Only <gio/gio.h> can be included directly."
#endif

#include <gio/giotypes.h>

G_BEGIN_DECLS

#define G_TYPE_INET_ADDRESS_MASK         (g_inet_address_mask_get_type ())
#define G_INET_ADDRESS_MASK(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), G_TYPE_INET_ADDRESS_MASK, GInetAddressMask))
#define G_INET_ADDRESS_MASK_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), G_TYPE_INET_ADDRESS_MASK, GInetAddressMaskClass))
#define G_IS_INET_ADDRESS_MASK(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), G_TYPE_INET_ADDRESS_MASK))
#define G_IS_INET_ADDRESS_MASK_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), G_TYPE_INET_ADDRESS_MASK))
#define G_INET_ADDRESS_MASK_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), G_TYPE_INET_ADDRESS_MASK, GInetAddressMaskClass))

typedef struct _GInetAddressMaskClass   GInetAddressMaskClass;
typedef struct _GInetAddressMaskPrivate GInetAddressMaskPrivate;

struct _GInetAddressMask
{
  GObject parent_instance;

  /*< private >*/
  GInetAddressMaskPrivate *priv;
};

struct _GInetAddressMaskClass
{
  GObjectClass parent_class;

};

54
GLIB_AVAILABLE_IN_2_32
55 56
GType g_inet_address_mask_get_type (void) G_GNUC_CONST;

57
GLIB_AVAILABLE_IN_2_32
58 59 60 61
GInetAddressMask *g_inet_address_mask_new             (GInetAddress      *addr,
						       guint              length,
						       GError           **error);

62
GLIB_AVAILABLE_IN_2_32
63 64
GInetAddressMask *g_inet_address_mask_new_from_string (const gchar       *mask_string,
						       GError           **error);
65
GLIB_AVAILABLE_IN_2_32
66 67
gchar            *g_inet_address_mask_to_string       (GInetAddressMask  *mask);

68
GLIB_AVAILABLE_IN_2_32
69
GSocketFamily     g_inet_address_mask_get_family      (GInetAddressMask  *mask);
70
GLIB_AVAILABLE_IN_2_32
71
GInetAddress     *g_inet_address_mask_get_address     (GInetAddressMask  *mask);
72
GLIB_AVAILABLE_IN_2_32
73 74
guint             g_inet_address_mask_get_length      (GInetAddressMask  *mask);

75
GLIB_AVAILABLE_IN_2_32
76 77
gboolean          g_inet_address_mask_matches         (GInetAddressMask  *mask,
						       GInetAddress      *address);
78
GLIB_AVAILABLE_IN_2_32
79 80 81 82 83 84 85
gboolean          g_inet_address_mask_equal           (GInetAddressMask  *mask,
						       GInetAddressMask  *mask2);

G_END_DECLS

#endif /* __G_INET_ADDRESS_MASK_H__ */