Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
cosmetics
[simgrid.git] / testsuite / xbt / swag_usage.c
index 1814724..96279cc 100644 (file)
@@ -1,11 +1,20 @@
+/*     $Id$     */
+
+/* A simple example to demonstrate the use of swags */
+
+/* Copyright (c) 2004 Arnaud Legrand. 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. */
+
 #include <stdlib.h>
 #include <stdio.h>
-#include "swag.h"
+#include "xbt/swag.h"
 
 typedef struct {
   s_xbt_swag_hookup_t setA;
   s_xbt_swag_hookup_t setB;
-  char *name;
+  const char *name;
 } shmurtz, s_shmurtz_t, *shmurtz_t;
 
 int main(void)
@@ -22,16 +31,16 @@ int main(void)
   printf("%p %p %d\n",obj1,&(obj1->setB),
         (char *)&(obj1->setB) - (char *)obj1);
 
-  setA = xbt_swag_new((char *)&(obj1->setA) - (char *)obj1);
-  setB = xbt_swag_new((char *)&(obj1->setB) - (char *)obj1);
+  setA = xbt_swag_new(xbt_swag_offset(*obj1,setA));
+  setB = xbt_swag_new(xbt_swag_offset(*obj1,setB));
 
   xbt_swag_insert(obj1, setA);
   xbt_swag_insert(obj1, setB);
   xbt_swag_insert(obj2, setA);
   xbt_swag_insert(obj2, setB);
 
-  xbt_swag_extract(obj1, setB);
-  //  xbt_swag_extract(obj2, setB);
+  xbt_swag_remove(obj1, setB);
+  //  xbt_swag_remove(obj2, setB);
 
   xbt_swag_foreach(obj,setA) {
     printf("\t%s\n",obj->name);