Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add XBT_PUBLIC_CLASS macro, and a bunch of XBT_PUBLIC declarations
authorAugustin Degomme <degomme@idpann.imag.fr>
Fri, 4 Apr 2014 14:38:22 +0000 (16:38 +0200)
committerAugustin Degomme <degomme@idpann.imag.fr>
Fri, 4 Apr 2014 14:40:54 +0000 (16:40 +0200)
This should make surf-java swig bindings compile on Win32

include/xbt/misc.h
src/include/surf/maxmin.h
src/simix/smx_private.h
src/surf/cpu_interface.hpp
src/surf/network_interface.hpp
src/surf/surf_interface.hpp
src/surf/surf_routing.hpp

index 14e48b0..3be8fc1 100644 (file)
 #  define XBT_EXPORT_NO_IMPORT(type)  __declspec(dllexport) type
 #  define XBT_IMPORT_NO_EXPORT(type)  type
 #  define XBT_PUBLIC_DATA(type)       extern __declspec(dllexport) type
+#  define XBT_PUBLIC_CLASS            class __declspec(dllexport)
+
 
 /* Pack everything up statically */
 #elif defined(DLL_STATIC)
 #  define XBT_EXPORT_NO_IMPORT(type)  type
 #  define XBT_IMPORT_NO_EXPORT(type)  type
 #  define XBT_PUBLIC_DATA(type)       extern type
+#  define XBT_PUBLIC_CLASS            class
+
 
 /* Link against the DLL */
 #elif (defined(_XBT_WIN32) && !defined(DLL_EXPORT) && !defined(DLL_STATIC))
 #  define XBT_EXPORT_NO_IMPORT(type)  type
 #  define XBT_IMPORT_NO_EXPORT(type)  __declspec(dllimport) type
 #  define XBT_PUBLIC_DATA(type)       extern __declspec(dllimport) type
+#  define XBT_PUBLIC_CLASS            class __declspec(dllimport)
+
 
 /* UNIX build */
 #else
 #  define XBT_EXPORT_NO_IMPORT(type)  type
 #  define XBT_IMPORT_NO_EXPORT(type)  type
 #  define XBT_PUBLIC_DATA(type)       extern type
+#  define XBT_PUBLIC_CLASS            class
+
 #endif
 
 #if !defined (max) && !defined(__cplusplus)
index 791be48..ba925ee 100644 (file)
@@ -138,7 +138,7 @@ XBT_PUBLIC(lmm_constraint_t) lmm_constraint_new(lmm_system_t sys, void *id,
  * 
  * @param cnst The constraint to share
  */
-void lmm_constraint_shared(lmm_constraint_t cnst);
+XBT_PUBLIC(void) lmm_constraint_shared(lmm_constraint_t cnst);
 
 /**
  * @brief Check if a constraint is shared (shared by default)
@@ -146,7 +146,7 @@ void lmm_constraint_shared(lmm_constraint_t cnst);
  * @param cnst The constraint to share
  * @return 1 if shared, 0 otherwise
  */
-int lmm_constraint_is_shared(lmm_constraint_t cnst);
+XBT_PUBLIC(int) lmm_constraint_is_shared(lmm_constraint_t cnst);
 
 /**
  * @brief Free a constraint
@@ -154,7 +154,7 @@ int lmm_constraint_is_shared(lmm_constraint_t cnst);
  * @param sys The system associated to the constraint
  * @param cnst The constraint to free
  */
-void lmm_constraint_free(lmm_system_t sys, lmm_constraint_t cnst);
+XBT_PUBLIC(void) lmm_constraint_free(lmm_system_t sys, lmm_constraint_t cnst);
 
 /**
  * @brief Get the usage of the constraint after the last lmm solve
@@ -162,7 +162,7 @@ void lmm_constraint_free(lmm_system_t sys, lmm_constraint_t cnst);
  * @param cnst A constraint
  * @return The usage of the constraint
  */
-double lmm_constraint_get_usage(lmm_constraint_t cnst);
+XBT_PUBLIC(double) lmm_constraint_get_usage(lmm_constraint_t cnst);
 
 /**
  * @brief Create a new Linear MaxMin variable
@@ -231,7 +231,7 @@ XBT_PUBLIC(void) lmm_expand(lmm_system_t sys, lmm_constraint_t cnst,
  * @param var A variable
  * @param value The value to add to the coefficient associated to the variable in the constraint
  */
-void lmm_expand_add(lmm_system_t sys, lmm_constraint_t cnst,
+XBT_PUBLIC(void) lmm_expand_add(lmm_system_t sys, lmm_constraint_t cnst,
                     lmm_variable_t var, double value);
 
 /**
@@ -242,7 +242,7 @@ void lmm_expand_add(lmm_system_t sys, lmm_constraint_t cnst,
  * @param num The rank of constraint we want to get
  * @return The numth constraint
  */
-lmm_constraint_t lmm_get_cnst_from_var(lmm_system_t sys,
+XBT_PUBLIC(lmm_constraint_t) lmm_get_cnst_from_var(lmm_system_t sys,
                                        lmm_variable_t var, int num);
 
 /**
@@ -253,7 +253,7 @@ lmm_constraint_t lmm_get_cnst_from_var(lmm_system_t sys,
  * @param num The rank of constraint we want to get
  * @return The numth constraint
  */
-double lmm_get_cnst_weight_from_var(lmm_system_t sys, lmm_variable_t var,
+XBT_PUBLIC(double) lmm_get_cnst_weight_from_var(lmm_system_t sys, lmm_variable_t var,
                                     int num);
 
 /**
@@ -263,7 +263,7 @@ double lmm_get_cnst_weight_from_var(lmm_system_t sys, lmm_variable_t var,
  * @param var A variable
  * @return The number of constraint associated to the variable
  */
-int lmm_get_number_of_cnst_from_var(lmm_system_t sys, lmm_variable_t var);
+XBT_PUBLIC(int) lmm_get_number_of_cnst_from_var(lmm_system_t sys, lmm_variable_t var);
 
 /**
  * @brief Get a var associated to a constraint 
@@ -274,7 +274,7 @@ int lmm_get_number_of_cnst_from_var(lmm_system_t sys, lmm_variable_t var);
  * @param elem A element of constraint of the constraint or NULL
  * @return A variable associated to a constraint
  */
-lmm_variable_t lmm_get_var_from_cnst(lmm_system_t sys,
+XBT_PUBLIC(lmm_variable_t) lmm_get_var_from_cnst(lmm_system_t sys,
                                      lmm_constraint_t cnst,
                                      lmm_element_t * elem);
 
@@ -284,7 +284,7 @@ lmm_variable_t lmm_get_var_from_cnst(lmm_system_t sys,
  * @param sys A system
  * @return The first active constraint
  */
-lmm_constraint_t lmm_get_first_active_constraint(lmm_system_t sys);
+XBT_PUBLIC(lmm_constraint_t) lmm_get_first_active_constraint(lmm_system_t sys);
 
 /**
  * @brief Get the next active constraint of a constraint in a system
@@ -294,7 +294,7 @@ lmm_constraint_t lmm_get_first_active_constraint(lmm_system_t sys);
  * 
  * @return The next active constraint
  */
-lmm_constraint_t lmm_get_next_active_constraint(lmm_system_t sys,
+XBT_PUBLIC(lmm_constraint_t) lmm_get_next_active_constraint(lmm_system_t sys,
                                                 lmm_constraint_t cnst);
 
 #ifdef HAVE_LATENCY_BOUND_TRACKING
@@ -307,7 +307,7 @@ XBT_PUBLIC(int) lmm_is_variable_limited_by_latency(lmm_variable_t var);
  * @param cnst A constraint
  * @return The data associated to the constraint
  */
-void *lmm_constraint_id(lmm_constraint_t cnst);
+XBT_PUBLIC(void *) lmm_constraint_id(lmm_constraint_t cnst);
 
 /**
  * @brief Get the data associated to a variable
@@ -315,7 +315,7 @@ void *lmm_constraint_id(lmm_constraint_t cnst);
  * @param var A variable
  * @return The data associated to the variable
  */
-void *lmm_variable_id(lmm_variable_t var);
+XBT_PUBLIC(void *) lmm_variable_id(lmm_variable_t var);
 
 /**
  * @brief Update the value of element linking the constraint and the variable
@@ -325,7 +325,7 @@ void *lmm_variable_id(lmm_variable_t var);
  * @param var A variable
  * @param value The new value
  */
-void lmm_update(lmm_system_t sys, lmm_constraint_t cnst,
+XBT_PUBLIC(void) lmm_update(lmm_system_t sys, lmm_constraint_t cnst,
                 lmm_variable_t var, double value);
 
 /**
@@ -335,7 +335,7 @@ void lmm_update(lmm_system_t sys, lmm_constraint_t cnst,
  * @param var A constraint
  * @param bound The new bound
  */
-void lmm_update_variable_bound(lmm_system_t sys, lmm_variable_t var,
+XBT_PUBLIC(void) lmm_update_variable_bound(lmm_system_t sys, lmm_variable_t var,
                                double bound);
 
 /**
@@ -355,7 +355,7 @@ XBT_PUBLIC(void) lmm_update_variable_weight(lmm_system_t sys,
  * @param var A variable
  * @return The weight of the variable
  */
-double lmm_get_variable_weight(lmm_variable_t var);
+XBT_PUBLIC(double) lmm_get_variable_weight(lmm_variable_t var);
 
 /**
  * @brief Update a constraint bound
@@ -375,7 +375,7 @@ XBT_PUBLIC(void) lmm_update_constraint_bound(lmm_system_t sys,
  * @param cnst A constraint
  * @return [description]
  */
-int lmm_constraint_used(lmm_system_t sys, lmm_constraint_t cnst);
+XBT_PUBLIC(int) lmm_constraint_used(lmm_system_t sys, lmm_constraint_t cnst);
 
 /**
  * @brief Solve the lmm system
index 1cb5514..24d8a2c 100644 (file)
@@ -62,7 +62,7 @@ extern xbt_dict_t watched_hosts_lib;
 #ifdef __cplusplus
 extern "C" {
 #endif
-void SIMIX_clean(void);
+XBT_PUBLIC(void) SIMIX_clean(void);
 #ifdef __cplusplus
 }
 #endif
index cd953f5..4991eb4 100644 (file)
@@ -28,31 +28,31 @@ typedef CpuPlugin *CpuPluginPtr;
 /*************
  * Callbacks *
  *************/
-CpuPtr getActionCpu(CpuActionPtr action);
+XBT_PUBLIC(CpuPtr) getActionCpu(CpuActionPtr action);
 
 /** @ingroup SURF_callbacks
  * @brief Callbacks handler which emit the callbacks after Cpu creation *
  * @details Callback functions have the following signature: `void(CpuPtr)`
  */
-extern surf_callback(void, CpuPtr) cpuCreatedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, CpuPtr)) cpuCreatedCallbacks;
 
 /** @ingroup SURF_callbacks
  * @brief Callbacks handler which emit the callbacks after Cpu destruction *
  * @details Callback functions have the following signature: `void(CpuPtr)`
  */
-extern surf_callback(void, CpuPtr) cpuDestructedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, CpuPtr)) cpuDestructedCallbacks;
 
 /** @ingroup SURF_callbacks
  * @brief Callbacks handler which emit the callbacks after Cpu State changed *
  * @details Callback functions have the following signature: `void(CpuActionPtr action, e_surf_resource_state_t old, e_surf_resource_state_t current)`
  */
-extern surf_callback(void, CpuPtr, e_surf_resource_state_t, e_surf_resource_state_t) cpuStateChangedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, CpuPtr, e_surf_resource_state_t, e_surf_resource_state_t)) cpuStateChangedCallbacks;
 
 /** @ingroup SURF_callbacks
  * @brief Callbacks handler which emit the callbacks after CpuAction State changed *
  * @details Callback functions have the following signature: `void(CpuActionPtr action, e_surf_action_state_t old, e_surf_action_state_t current)`
  */
-extern surf_callback(void, CpuActionPtr, e_surf_action_state_t, e_surf_action_state_t) cpuActionStateChangedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, CpuActionPtr, e_surf_action_state_t, e_surf_action_state_t)) cpuActionStateChangedCallbacks;
 
 /*********
  * Model *
index 05792b2..f85abe1 100644 (file)
@@ -30,31 +30,31 @@ typedef NetworkAction *NetworkActionPtr;
  * @brief Callbacks handler which emit the callbacks after NetworkLink creation
  * @details Callback functions have the following signature: `void(NetworkLinkPtr)`
  */
-extern surf_callback(void, NetworkLinkPtr) networkLinkCreatedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, NetworkLinkPtr)) networkLinkCreatedCallbacks;
 
 /** @ingroup SURF_callbacks
  * @brief Callbacks handler which emit the callbacks after NetworkLink destruction
  * @details Callback functions have the following signature: `void(NetworkLinkPtr)`
  */
-extern surf_callback(void, NetworkLinkPtr) networkLinkDestructedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, NetworkLinkPtr)) networkLinkDestructedCallbacks;
 
 /** @ingroup SURF_callbacks
  * @brief Callbacks handler which emit the callbacks after NetworkLink State changed
  * @details Callback functions have the following signature: `void(NetworkLinkActionPtr action, e_surf_resource_state_t old, e_surf_resource_state_t current)`
  */
-extern surf_callback(void, NetworkLinkPtr, e_surf_resource_state_t, e_surf_resource_state_t) networkLinkStateChangedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, NetworkLinkPtr, e_surf_resource_state_t, e_surf_resource_state_t)) networkLinkStateChangedCallbacks;
 
 /** @ingroup SURF_callbacks
  * @brief Callbacks handler which emit the callbacks after NetworkAction State changed
  * @details Callback functions have the following signature: `void(NetworkActionPtr action, e_surf_action_state_t old, e_surf_action_state_t current)`
  */
-extern surf_callback(void, NetworkActionPtr, e_surf_action_state_t, e_surf_action_state_t) networkActionStateChangedCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, NetworkActionPtr, e_surf_action_state_t, e_surf_action_state_t)) networkActionStateChangedCallbacks;
 
 /** @ingroup SURF_callbacks
  * @brief Callbacks handler which emit the callbacks after communication created
  * @details Callback functions have the following signature: `void(NetworkActionPtr action, RoutingEdgePtr src, RoutingEdgePtr dst, double size, double rate)`
  */
-extern surf_callback(void, NetworkActionPtr, RoutingEdgePtr src, RoutingEdgePtr dst, double size, double rate) networkCommunicateCallbacks;
+XBT_PUBLIC_DATA( surf_callback(void, NetworkActionPtr, RoutingEdgePtr src, RoutingEdgePtr dst, double size, double rate)) networkCommunicateCallbacks;
 
 /*********
  * Tools *
index 36b1977..e5e44a6 100644 (file)
@@ -115,7 +115,7 @@ XBT_PUBLIC_DATA(xbt_dynar_t) model_list;
  * @brief SURF model interface class
  * @details A model is an object which handle the interactions between its Resources and its Actions
  */
-class Model {
+XBT_PUBLIC_CLASS Model {
 public:
   /** 
    * @brief Model constructor
@@ -252,7 +252,7 @@ typedef struct {
  * @brief SURF resource interface class
  * @details A resource represent an element of a component (e.g.: a link for the network)
  */
-class Resource {
+XBT_PUBLIC_CLASS Resource {
 public:
   /** 
    * @brief Resource constructor
@@ -389,7 +389,7 @@ void surf_action_lmm_update_index_heap(void *action, int i);
  * @brief SURF action interface class
  * @details An action is an event generated by a resource (e.g.: a communication for the network)
  */
-class Action : public actionHook, public actionLmmHook {
+XBT_PUBLIC_CLASS Action : public actionHook, public actionLmmHook {
 private:
   /**
    * @brief Common initializations for the constructors
index 3650cf8..ac65fee 100644 (file)
@@ -154,7 +154,7 @@ public:
 /** @ingroup SURF_routing_interface
  * @brief The class representing a whole routing platform
  */
-class RoutingPlatf {
+XBT_PUBLIC_CLASS RoutingPlatf {
 public:
   ~RoutingPlatf();
   AsPtr p_root;