- XBT_OUT;
-}
-
-/**
- * gras_trp_send:
- *
- * Send a bunch of bytes from on socket
- * (stable if we know the storage will keep as is until the next trp_flush)
- */
-void
-gras_trp_send(gras_socket_t sd, char *data, long int size, int stable) {
- xbt_assert0(sd->outgoing,"Socket not suited for data send");
- (*sd->plugin->send)(sd,data,size,stable);
-}
-/**
- * gras_trp_chunk_recv:
- *
- * Receive a bunch of bytes from a socket
- */
-void
-gras_trp_recv(gras_socket_t sd, char *data, long int size) {
- xbt_assert0(sd->incoming,"Socket not suited for data receive");
- (sd->plugin->recv)(sd,data,size);
-}
-
-/**
- * gras_trp_flush:
- *
- * Make sure all pending communications are done
- */
-void
-gras_trp_flush(gras_socket_t sd) {
- if (sd->plugin->flush)
- (sd->plugin->flush)(sd);
-}
-
-gras_trp_plugin_t
-gras_trp_plugin_get_by_name(const char *name){
- return xbt_dict_get(_gras_trp_plugins,name);
-}
-
-int gras_socket_my_port (gras_socket_t sock) {
- return sock->port;
-}
-int gras_socket_peer_port(gras_socket_t sock) {
- return sock->peer_port;
-}
-char *gras_socket_peer_name(gras_socket_t sock) {
- return sock->peer_name;
-}
-char *gras_socket_peer_proc(gras_socket_t sock) {
- return sock->peer_proc;
-}
-
-void gras_socket_peer_proc_set(gras_socket_t sock,char*peer_proc) {
- sock->peer_proc = peer_proc;
-}
-
-/** \brief Check if the provided socket is a measurement one (or a regular one) */
-int gras_socket_is_meas(gras_socket_t sock) {
- return sock->meas;
-}
-
-/** \brief Send a chunk of (random) data over a measurement socket
- *
- * @param peer measurement socket to use for the experiment
- * @param timeout timeout (in seconds)
- * @param msg_size size of each chunk sent over the socket (in bytes).
- * @param msg_amount how many of these packets you want to send.
- *
- * Calls to gras_socket_meas_send() and gras_socket_meas_recv() on
- * each side of the socket should be paired.
- *
- * The exchanged data is zeroed to make sure it's initialized, but
- * there is no way to control what is sent (ie, you cannot use these
- * functions to exchange data out of band).
- *
- * @warning: in SimGrid version 3.1 and previous, the numerical arguments
- * were the total amount of data to send and the msg_size. This
- * was changed for the fool wanting to send more than MAXINT
- * bytes in a fat pipe.
- */
-void gras_socket_meas_send(gras_socket_t peer,
- unsigned int timeout,
- unsigned long int msg_size,
- unsigned long int msg_amount) {
- char *chunk=NULL;
- unsigned long int sent_sofar;
-
- XBT_IN;
-
- if (gras_if_RL())
- chunk=xbt_malloc0(msg_size);
-
- xbt_assert0(peer->meas,"Asked to send measurement data on a regular socket");
- xbt_assert0(peer->outgoing,"Socket not suited for data send (was created with gras_socket_server(), not gras_socket_client())");
-
- for (sent_sofar=0; sent_sofar < msg_amount; sent_sofar++) {
- CDEBUG5(gras_trp_meas,"Sent %lu msgs of %lu (size of each: %ld) to %s:%d",
- sent_sofar,msg_amount,msg_size,
- gras_socket_peer_name(peer), gras_socket_peer_port(peer));
- (*peer->plugin->raw_send)(peer,chunk,msg_size);
- }
- CDEBUG5(gras_trp_meas,"Sent %lu msgs of %lu (size of each: %ld) to %s:%d",
- sent_sofar,msg_amount,msg_size,
- gras_socket_peer_name(peer), gras_socket_peer_port(peer));
-
- if (gras_if_RL())
- free(chunk);
-
- XBT_OUT;