[lib-fix] Fixed message handling
[platform/upstream/dbus.git] / dbus / dbus-dataslot.h
index 6f591eb..1e04fcb 100644 (file)
@@ -1,9 +1,9 @@
-/* -*- mode: C; c-file-style: "gnu" -*- */
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
 /* dbus-dataslot.h  storing data on objects
  *
  * Copyright (C) 2003 Red Hat, Inc.
  *
- * Licensed under the Academic Free License version 1.2
+ * Licensed under the Academic Free License version 2.1
  * 
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
  * 
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  *
  */
 #ifndef DBUS_DATASLOT_H
@@ -25,7 +25,7 @@
 
 #include <dbus/dbus-internals.h>
 
-DBUS_BEGIN_DECLS;
+DBUS_BEGIN_DECLS
 
 typedef struct DBusDataSlotAllocator DBusDataSlotAllocator;
 typedef struct DBusDataSlotList DBusDataSlotList;
@@ -40,29 +40,41 @@ struct DBusDataSlot
 };
 
 typedef struct DBusAllocatedSlot DBusAllocatedSlot;
+
+/** An allocated slot for storing data
+ */
 struct DBusAllocatedSlot
 {
   dbus_int32_t slot_id;  /**< ID of this slot */
   int          refcount; /**< Number of uses of the slot */
 };
 
+/**
+ * An allocator that tracks a set of slot IDs.
+ */
 struct DBusDataSlotAllocator
 {
   DBusAllocatedSlot *allocated_slots; /**< Allocated slots */
   int  n_allocated_slots; /**< number of slots malloc'd */
   int  n_used_slots;      /**< number of slots used */
-  DBusMutex *lock;        /**< thread lock */
+  DBusGlobalLock lock;    /**< index of thread lock */
 };
 
+#define _DBUS_DATA_SLOT_ALLOCATOR_INIT(x) { NULL, 0, 0, x }
+
+/**
+ * Data structure that stores the actual user data set at a given
+ * slot.
+ */
 struct DBusDataSlotList
 {
   DBusDataSlot *slots;   /**< Data slots */
   int           n_slots; /**< Slots we have storage for in data_slots */
 };
 
-dbus_bool_t _dbus_data_slot_allocator_init  (DBusDataSlotAllocator  *allocator);
+dbus_bool_t _dbus_data_slot_allocator_init  (DBusDataSlotAllocator  *allocator,
+                                             DBusGlobalLock          lock);
 dbus_bool_t _dbus_data_slot_allocator_alloc (DBusDataSlotAllocator  *allocator,
-                                             DBusMutex              *mutex,
                                              int                    *slot_id_p);
 void        _dbus_data_slot_allocator_free  (DBusDataSlotAllocator  *allocator,
                                              int                    *slot_id_p);
@@ -77,9 +89,10 @@ dbus_bool_t _dbus_data_slot_list_set        (DBusDataSlotAllocator  *allocator,
 void*       _dbus_data_slot_list_get        (DBusDataSlotAllocator  *allocator,
                                              DBusDataSlotList       *list,
                                              int                     slot);
+void        _dbus_data_slot_list_clear      (DBusDataSlotList       *list);
 void        _dbus_data_slot_list_free       (DBusDataSlotList       *list);
 
 
-DBUS_END_DECLS;
+DBUS_END_DECLS
 
 #endif /* DBUS_DATASLOT_H */