/***** Communication Requests *****/
-/* Constructors and Destructor */
+XBT_PUBLIC(void) SIMIX_req_comm_send(smx_rdv_t rdv, double task_size,
+ double rate, void *src_buff,
+ size_t src_buff_size,
+ int (*match_fun)(void *, void *),
+ void *data, double timeout);
+
XBT_PUBLIC(smx_action_t) SIMIX_req_comm_isend(smx_rdv_t rdv, double task_size,
- double rate, void *src_buff,
- size_t src_buff_size,
- int (*match_fun)(void *, void *),
- void *data, int detached);
+ double rate, void *src_buff,
+ size_t src_buff_size,
+ int (*match_fun)(void *, void *),
+ void *data, int detached);
+
+XBT_PUBLIC(void) SIMIX_req_comm_recv(smx_rdv_t rdv, void *dst_buff,
+ size_t * dst_buff_size,
+ int (*match_fun)(void *, void *),
+ void *data, double timeout);
XBT_PUBLIC(smx_action_t) SIMIX_req_comm_irecv(smx_rdv_t rdv, void *dst_buff,
- size_t * dst_buff_size,
- int (*match_fun)(void *, void *),
- void *data);
+ size_t * dst_buff_size,
+ int (*match_fun)(void *, void *),
+ void *data);
XBT_PUBLIC(void) SIMIX_req_comm_destroy(smx_action_t comm);
-/* Communication handling */
XBT_INLINE XBT_PUBLIC(void) SIMIX_req_comm_cancel(smx_action_t comm);
/* FIXME: waitany is going to be a vararg function, and should take a timeout */
XBT_PUBLIC(e_smx_state_t) SIMIX_req_comm_get_state(smx_action_t comm);
XBT_PUBLIC(void *) SIMIX_req_comm_get_src_data(smx_action_t comm);
XBT_PUBLIC(void *) SIMIX_req_comm_get_dst_data(smx_action_t comm);
-XBT_PUBLIC(void *) SIMIX_req_comm_get_src_buff(smx_action_t comm);
-XBT_PUBLIC(void *) SIMIX_req_comm_get_dst_buff(smx_action_t comm);
-XBT_PUBLIC(size_t) SIMIX_req_comm_get_src_buff_size(smx_action_t comm);
-XBT_PUBLIC(size_t) SIMIX_req_comm_get_dst_buff_size(smx_action_t comm);
XBT_PUBLIC(smx_process_t) SIMIX_req_comm_get_src_proc(smx_action_t comm);
XBT_PUBLIC(smx_process_t) SIMIX_req_comm_get_dst_proc(smx_action_t comm);
XBT_PUBLIC(void) SIMIX_req_comm_set_copy_data_callback(void (*callback)(smx_action_t,size_t));