Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
further cleanups
[simgrid.git] / include / xbt / log.h
index 4191944..8bff5c9 100644 (file)
@@ -98,7 +98,7 @@ typedef enum {
  * to avoid an extra declaration of root when XBT_LOG_NEW_SUBCATEGORY is called by
  * XBT_LOG_NEW_CATEGORY */
 #define XBT_LOG_NEW_SUBCATEGORY_helper(catName, parent, desc) \
-    XBT_PUBLIC(s_xbt_log_category_t) _XBT_LOGV(catName) = {       \
+    XBT_EXPORT_NO_IMPORT(s_xbt_log_category_t) _XBT_LOGV(catName) = {       \
         &_XBT_LOGV(parent), 0, 0,                    \
         #catName, xbt_log_priority_uninitialized, 1, \
         0, 1                                          \
@@ -113,7 +113,7 @@ typedef enum {
  * Defines a new subcategory of the parent. 
  */
 #define XBT_LOG_NEW_SUBCATEGORY(catName, parent, desc)    \
-    extern s_xbt_log_category_t _XBT_LOGV(parent);        \
+    extern s_xbt_log_category_t _XBT_LOGV(parent); \
     XBT_LOG_NEW_SUBCATEGORY_helper(catName, parent, desc) \
 
 /**
@@ -124,7 +124,17 @@ typedef enum {
  *
  * Creates a new subcategory of the root category.
  */
-#define XBT_LOG_NEW_CATEGORY(catName,desc)  XBT_LOG_NEW_SUBCATEGORY_helper(catName, XBT_LOG_ROOT_CAT, desc)
+#if (defined(_WIN32) && !defined(DLL_STATIC))
+# define XBT_LOG_NEW_CATEGORY(catName,desc)  \
+       XBT_EXPORT_NO_IMPORT(s_xbt_log_category_t) _XBT_LOGV(catName) = {       \
+        0, 0, 0,                    \
+               #catName, xbt_log_priority_uninitialized, 1, \
+        0, 1                                          \
+    }
+#else
+# define XBT_LOG_NEW_CATEGORY(catName,desc)  XBT_LOG_NEW_SUBCATEGORY_helper(catName, XBT_LOG_ROOT_CAT, desc)  
+#endif
 
 /**
  * \ingroup XBT_log  
@@ -150,9 +160,26 @@ typedef enum {
  * Creates a new subcategory of the root category and makes it the default
  * (used by macros that don't explicitly specify a category).
  */
-#define XBT_LOG_NEW_DEFAULT_CATEGORY(cname,desc)        \
+
+#if (defined(_WIN32) && !defined(DLL_STATIC))
+# define XBT_LOG_NEW_ROOT_SUBCATEGORY(cname,desc) \
+       XBT_EXPORT_NO_IMPORT(s_xbt_log_category_t) _XBT_LOGV(cname) = {       \
+        0, 0, 0,                    \
+               #cname, xbt_log_priority_uninitialized, 1, \
+        0, 1                                          \
+    }
+    
+# define XBT_LOG_NEW_DEFAULT_CATEGORY(cname,desc)        \
+       XBT_LOG_NEW_ROOT_SUBCATEGORY(cname,desc); \
+       XBT_LOG_DEFAULT_CATEGORY(cname)
+    
+#else
+# define XBT_LOG_NEW_DEFAULT_CATEGORY(cname,desc)        \
     XBT_LOG_NEW_CATEGORY(cname,desc);                   \
-    XBT_LOG_DEFAULT_CATEGORY(cname)
+    XBT_LOG_DEFAULT_CATEGORY(cname)    
+#endif
+
+
 
 /**
  * \ingroup XBT_log  
@@ -212,7 +239,7 @@ struct xbt_log_category_s {
             int threshold;
             int isThreshInherited;
 /*@null@*/  xbt_log_appender_t appender;
-            int willLogToParent;
+                       int willLogToParent;
   /* TODO: Formats? */
 };
 
@@ -266,12 +293,14 @@ XBT_PUBLIC(void) _xbt_log_event_log(xbt_log_event_t ev,
                                const char *fmt,
                                ...) _XBT_GNUC_PRINTF(2,3);
 
-XBT_PUBLIC(int) _xbt_log_cat_init(e_xbt_log_priority_t priority, 
-                             xbt_log_category_t   category);
+XBT_PUBLIC(int) _xbt_log_cat_init(xbt_log_category_t   category,
+                                 e_xbt_log_priority_t priority);
 
 
-extern s_xbt_log_category_t _XBT_LOGV(XBT_LOG_ROOT_CAT);
+extern XBT_IMPORT_NO_EXPORT(s_xbt_log_category_t) _XBT_LOGV(XBT_LOG_ROOT_CAT);
+
 XBT_LOG_EXTERNAL_CATEGORY(GRAS);
+
 extern xbt_log_appender_t xbt_log_default_appender;
 
 /**
@@ -299,7 +328,7 @@ extern xbt_log_appender_t xbt_log_default_appender;
        (priority >= XBT_LOG_STATIC_THRESHOLD                 \
         && priority >= catv.threshold                         \
         && (catv.threshold != xbt_log_priority_uninitialized \
-            || _xbt_log_cat_init(priority, &catv)) )
+            || _xbt_log_cat_init(&catv, priority)) )
 
 /*
  * Internal Macros
@@ -583,6 +612,8 @@ extern xbt_log_appender_t xbt_log_default_appender;
  *  @brief Log at TRACE priority a message indicating that we reached that point.
  */
 #define XBT_HERE             LOG0(xbt_log_priority_trace, "-- was here")
+
+
 SG_END_DECL()
 
 #endif /* ! _XBT_LOG_H_ */