-/* 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. */
/* 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 */
* 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
*/
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 */
/* @} */
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 */