Blame src/mw_util.h.fix-glib-headers

Packit ee6627
Packit ee6627
/*
Packit ee6627
  Meanwhile - Unofficial Lotus Sametime Community Client Library
Packit ee6627
  Copyright (C) 2004  Christopher (siege) O'Brien
Packit ee6627
  
Packit ee6627
  This library is free software; you can redistribute it and/or
Packit ee6627
  modify it under the terms of the GNU Library General Public
Packit ee6627
  License as published by the Free Software Foundation; either
Packit ee6627
  version 2 of the License, or (at your option) any later version.
Packit ee6627
  
Packit ee6627
  This library is distributed in the hope that it will be useful,
Packit ee6627
  but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit ee6627
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit ee6627
  Library General Public License for more details.
Packit ee6627
  
Packit ee6627
  You should have received a copy of the GNU Library General Public
Packit ee6627
  License along with this library; if not, write to the Free
Packit ee6627
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
Packit ee6627
*/
Packit ee6627
Packit ee6627
#ifndef _MW_UTIL_H
Packit ee6627
#define _MW_UTIL_H
Packit ee6627
Packit ee6627
Packit ee6627
#include <glib.h>
Packit ee6627
#include <glib/ghash.h>
Packit ee6627
#include <glib/glist.h>
Packit ee6627
Packit ee6627
Packit ee6627
#define map_guint_new() \
Packit ee6627
  g_hash_table_new(g_direct_hash, g_direct_equal)
Packit ee6627
Packit ee6627
Packit ee6627
#define map_guint_new_full(valfree) \
Packit ee6627
  g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, (valfree))
Packit ee6627
Packit ee6627
Packit ee6627
#define map_guint_insert(ht, key, val) \
Packit ee6627
  g_hash_table_insert((ht), GUINT_TO_POINTER((guint)(key)), (val))
Packit ee6627
Packit ee6627
Packit ee6627
#define map_guint_replace(ht, key, val) \
Packit ee6627
  g_hash_table_replace((ht), GUINT_TO_POINTER((guint)(key)), (val))
Packit ee6627
Packit ee6627
Packit ee6627
#define map_guint_lookup(ht, key) \
Packit ee6627
  g_hash_table_lookup((ht), GUINT_TO_POINTER((guint)(key)))
Packit ee6627
Packit ee6627
Packit ee6627
#define map_guint_remove(ht, key) \
Packit ee6627
  g_hash_table_remove((ht), GUINT_TO_POINTER((guint)(key)))
Packit ee6627
Packit ee6627
Packit ee6627
#define map_guint_steal(ht, key) \
Packit ee6627
  g_hash_table_steal((ht), GUINT_TO_POINTER((guint)(key)))
Packit ee6627
Packit ee6627
Packit ee6627
GList *map_collect_keys(GHashTable *ht);
Packit ee6627
Packit ee6627
Packit ee6627
GList *map_collect_values(GHashTable *ht);
Packit ee6627
Packit ee6627
Packit ee6627
struct mw_datum {
Packit ee6627
  gpointer data;
Packit ee6627
  GDestroyNotify clear;
Packit ee6627
};
Packit ee6627
Packit ee6627
Packit ee6627
struct mw_datum *mw_datum_new(gpointer data, GDestroyNotify clear);
Packit ee6627
Packit ee6627
Packit ee6627
void mw_datum_set(struct mw_datum *d, gpointer data, GDestroyNotify clear);
Packit ee6627
Packit ee6627
Packit ee6627
gpointer mw_datum_get(struct mw_datum *d);
Packit ee6627
Packit ee6627
Packit ee6627
void mw_datum_clear(struct mw_datum *d);
Packit ee6627
Packit ee6627
Packit ee6627
void mw_datum_free(struct mw_datum *d);
Packit ee6627
Packit ee6627
Packit ee6627
#endif