X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/8b170c65c7f1daa87221caaffee907b6cf73b01d..00ae4a50c96340ea9a1f097f4b26dc57b122a86e:/src/surf/network_interface.hpp diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index 37241e44bc..f85abe1ab3 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -30,25 +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)` + */ +XBT_PUBLIC_DATA( surf_callback(void, NetworkActionPtr, RoutingEdgePtr src, RoutingEdgePtr dst, double size, double rate)) networkCommunicateCallbacks; /********* * Tools * @@ -216,6 +222,11 @@ public: */ virtual double getBandwidth(); + /** + * @brief Update the bandwidth in bytes per second of current NetworkLink + */ + virtual void updateBandwidth(double value, double date=surf_get_clock())=0; + /** * @brief Get the latency in seconds of current NetworkLink * @@ -223,6 +234,11 @@ public: */ virtual double getLatency(); + /** + * @brief Update the latency in seconds of current NetworkLink + */ + virtual void updateLatency(double value, double date=surf_get_clock())=0; + /** * @brief Check if the NetworkLink is shared * @details [long description]