+/* ****************** */\r
+/* Globals definition */\r
+/* ****************** */\r
+\r
+/* Important guys */\r
+extern xbt_context_t current_context;\r
+extern xbt_context_t maestro_context;\r
+/* All dudes lists */\r
+extern xbt_swag_t context_living;\r
+extern xbt_swag_t context_to_destroy;\r
+\r
+/* *********************** */\r
+/* factory type definition */\r
+/* *********************** */\r
+typedef struct s_xbt_context_factory * xbt_context_factory_t;\r
+\r
+/* this function describes the interface that all context factory must implement */\r
+typedef xbt_context_t (*xbt_pfn_context_factory_create_context_t)(const char*, xbt_main_func_t, void_f_pvoid_t, void*, void_f_pvoid_t, void*, int, char**);\r
+typedef int (*xbt_pfn_context_factory_create_maestro_context_t)(xbt_context_t*);\r
+\r
+/* this function finalize the specified context factory */\r
+typedef int (*xbt_pfn_context_factory_finalize_t)(xbt_context_factory_t*);\r
+\r
+/* this interface is used by the xbt context module to create the appropriate concept */\r
+typedef struct s_xbt_context_factory {\r
+ xbt_pfn_context_factory_create_maestro_context_t create_maestro_context; /* create the context of the maestro */\r
+ xbt_pfn_context_factory_create_context_t create_context; /* create a new context */\r
+ xbt_pfn_context_factory_finalize_t finalize; /* finalize the context factory */\r
+ const char* name; /* the name of the context factory */\r