From: Augustin Degomme Date: Fri, 4 Apr 2014 14:38:22 +0000 (+0200) Subject: add XBT_PUBLIC_CLASS macro, and a bunch of XBT_PUBLIC declarations X-Git-Tag: v3_11~156 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/28e0e67cf29da1423d9932ec05870d08394af669 add XBT_PUBLIC_CLASS macro, and a bunch of XBT_PUBLIC declarations This should make surf-java swig bindings compile on Win32 --- diff --git a/include/xbt/misc.h b/include/xbt/misc.h index 14e48b056b..3be8fc11f4 100644 --- a/include/xbt/misc.h +++ b/include/xbt/misc.h @@ -171,6 +171,8 @@ # 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) @@ -178,6 +180,8 @@ # 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)) @@ -185,6 +189,8 @@ # 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 @@ -192,6 +198,8 @@ # 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) diff --git a/src/include/surf/maxmin.h b/src/include/surf/maxmin.h index 791be489af..ba925ee13d 100644 --- a/src/include/surf/maxmin.h +++ b/src/include/surf/maxmin.h @@ -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 diff --git a/src/simix/smx_private.h b/src/simix/smx_private.h index 1cb5514f45..24d8a2c020 100644 --- a/src/simix/smx_private.h +++ b/src/simix/smx_private.h @@ -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 diff --git a/src/surf/cpu_interface.hpp b/src/surf/cpu_interface.hpp index cd953f58ee..4991eb462b 100644 --- a/src/surf/cpu_interface.hpp +++ b/src/surf/cpu_interface.hpp @@ -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 * diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index 05792b2117..f85abe1ab3 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -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 * diff --git a/src/surf/surf_interface.hpp b/src/surf/surf_interface.hpp index 36b1977761..e5e44a6877 100644 --- a/src/surf/surf_interface.hpp +++ b/src/surf/surf_interface.hpp @@ -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 diff --git a/src/surf/surf_routing.hpp b/src/surf/surf_routing.hpp index 3650cf8b1a..ac65feedf3 100644 --- a/src/surf/surf_routing.hpp +++ b/src/surf/surf_routing.hpp @@ -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;