Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
TESH: msg to s4u - act 1
[simgrid.git] / include / xbt / swag.h
index e406066..5c1ff35 100644 (file)
@@ -1,5 +1,4 @@
-/* Copyright (c) 2004-2015. The SimGrid Team.
- * All rights reserved.                                                     */
+/* Copyright (c) 2004-2017. The SimGrid Team. All rights reserved.          */
 
 /* This program is free software; you can redistribute it and/or modify it
  * under the terms of the license (GNU LGPL) which comes with this package. */
@@ -7,8 +6,8 @@
 /* Warning, this module is done to be efficient and performs tons of cast and dirty things. So avoid using it unless
  * you really know what you are doing. */
 
-#ifndef _XBT_SWAG_H
-#define _XBT_SWAG_H
+#ifndef XBT_SWAG_H
+#define XBT_SWAG_H
 
 #include "xbt/misc.h"
 #include "xbt/sysdep.h"         /* size_t */
@@ -24,6 +23,8 @@ SG_BEGIN_DECL()
  *  It is basically a fifo but with restrictions so that it can be used as a set. Any operation (add, remove, belongs)
  *  is O(1) and no call to malloc/free is done.
  *
+ *  @deprecated If you are using C++, you might want to use
+ *  `boost::intrusive::set` instead.
  */
 /** @defgroup XBT_swag_type Swag types
     @ingroup XBT_swag
@@ -65,12 +66,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 */
 /* @} */
 
@@ -190,15 +194,4 @@ static 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 */
+#endif /* XBT_SWAG_H */