Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Cleanups: macro renaming, improve documentation
[simgrid.git] / include / xbt / log.h
index adb13a1..afb5d95 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) \
-    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) \
 
 /**
@@ -150,9 +150,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  
@@ -194,7 +211,7 @@ typedef enum {
 
 /* Functions you may call */
 
-XBT_PUBLIC  extern void xbt_log_control_set(const char* cs);
+XBT_PUBLIC(void) xbt_log_control_set(const char* cs);
 
 /* Forward declarations */
 typedef struct xbt_log_appender_s s_xbt_log_appender_t,*xbt_log_appender_t;
@@ -212,7 +229,7 @@ struct xbt_log_category_s {
             int threshold;
             int isThreshInherited;
 /*@null@*/  xbt_log_appender_t appender;
-            int willLogToParent;
+                       int willLogToParent;
   /* TODO: Formats? */
 };
 
@@ -238,7 +255,7 @@ struct xbt_log_event_s {
  *
  * Programatically alters a category's threshold priority (don't use).
  */
-XBT_PUBLIC extern void xbt_log_threshold_set(xbt_log_category_t cat,
+XBT_PUBLIC(void) xbt_log_threshold_set(xbt_log_category_t cat,
                                   e_xbt_log_priority_t thresholdPriority);
 
 /**
@@ -248,7 +265,7 @@ XBT_PUBLIC extern void xbt_log_threshold_set(xbt_log_category_t cat,
  *
  * Programatically alter a category's parent (don't use).
  */
-XBT_PUBLIC extern void xbt_log_parent_set(xbt_log_category_t cat,
+XBT_PUBLIC(void) xbt_log_parent_set(xbt_log_category_t cat,
                                xbt_log_category_t parent);
 
 /**
@@ -258,20 +275,22 @@ XBT_PUBLIC extern void xbt_log_parent_set(xbt_log_category_t cat,
  *
  * Programatically sets the category's appender (don't use).
  */
-XBT_PUBLIC extern void xbt_log_appender_set(xbt_log_category_t cat,
+XBT_PUBLIC(void) xbt_log_appender_set(xbt_log_category_t cat,
                                  xbt_log_appender_t app);
 
 /* Functions that you shouldn't call. */
-XBT_PUBLIC extern void _xbt_log_event_log(xbt_log_event_t ev,
+XBT_PUBLIC(void) _xbt_log_event_log(xbt_log_event_t ev,
                                const char *fmt,
                                ...) _XBT_GNUC_PRINTF(2,3);
 
-XBT_PUBLIC extern int _xbt_log_cat_init(e_xbt_log_priority_t priority, 
+XBT_PUBLIC(int) _xbt_log_cat_init(e_xbt_log_priority_t priority, 
                              xbt_log_category_t   category);
 
 
-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;
 
 /**
@@ -583,6 +602,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_ */