Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[simix] Add comments about the generic simcalls and rename them
[simgrid.git] / include / xbt / swag.h
index 87bfbb6..2431b30 100644 (file)
@@ -65,12 +65,15 @@ typedef struct foo {
 */
 typedef s_xbt_swag_hookup_t *xbt_swag_hookup_t;
 
-typedef struct xbt_swag {
+struct xbt_swag {
   void *head;
   void *tail;
   size_t offset;
   int count;
-} s_xbt_swag_t, *xbt_swag_t;
+};
+typedef struct xbt_swag  s_xbt_swag_t;
+typedef struct xbt_swag* xbt_swag_t;
+
 /**< A typical swag */
 /* @} */
 
@@ -110,7 +113,7 @@ XBT_PUBLIC(int) xbt_swag_size(xbt_swag_t swag);
 #define xbt_swag_getNext(obj, offset) (((xbt_swag_hookup_t)(((char *) (obj)) + (offset)))->next)
 #define xbt_swag_belongs(obj, swag) (xbt_swag_getNext((obj), (swag)->offset) || (swag)->tail == (obj))
 
-static XBT_INLINE void *xbt_swag_getFirst(xbt_swag_t swag)
+static inline void *xbt_swag_getFirst(xbt_swag_t swag)
 {
   return (swag->head);
 }
@@ -189,4 +192,16 @@ static XBT_INLINE void *xbt_swag_getFirst(xbt_swag_t swag)
 /* @} */
 
 SG_END_DECL()
+
+#ifdef __cplusplus
+namespace simgrid {
+namespace xbt {
+  inline void destroy(xbt_swag_t s)
+  {
+    xbt_swag_free(s);
+  }
+}
+}
+#endif
+
 #endif                          /* _XBT_SWAG_H */