Safe Haskell | None |
---|
A limited binding to glib GHashTable structures. We only handle
hash tables as returned by xfconf_channel_get_properties
. They have
gchar *
keys and GValue *
values.
Objectives:
- get back the list of keys when keys are strings
- extract values
- data GHashTable
- withGHashTable :: GHashTable -> (Ptr GHashTable -> IO b) -> IO b
- mkGHashTable :: Ptr GHashTable -> IO GHashTable
- gHashTableKeys :: GHashTable -> IO [String]
- gHashTableLookup :: GHashTable -> String -> IO (Maybe GValue)
Private data type
data GHashTable Source
Haskell representation of a C GHashTable*
with gchar *
keys and
GValue*
values. Memory management is automatically managed by a
special Haskell finalizer calling g_hash_table_destroy
.
Marshalling functions
withGHashTable :: GHashTable -> (Ptr GHashTable -> IO b) -> IO bSource
mkGHashTable :: Ptr GHashTable -> IO GHashTableSource
Marshal out a raw C GHashTable*
by wrapping it in the Haskell
type GHashTable
and adding it a finalizer (which calls
g_hash_table_destroy
).
Should be called for every function returning a GHashTable*
, see
for example in System.XFCE.Xfconf.Channel.chs:
{#fun unsafe get_properties as ^ { channelPtr `Channel' -- ^ channel pointer , withUTFString* `String' -- ^ property base } -> `GHashTable' mkGHashTable* #}
Query functions
gHashTableKeys :: GHashTable -> IO [String]Source
Retrieves every key inside a GHashTable
. The returned data is
valid until the table is modified.
gHashTableLookup :: GHashTable -> String -> IO (Maybe GValue)Source
Looks up a key in a GHashTable. Note that this function cannot
distinguish between a key that is not present and one which is
present and has the value Nothing
.