}
-// set Data : For the Moment , we will consider Data as asimple String ( char * )
-void rb_task_set_data(VALUE class,VALUE task,VALUE data)
-{
- const char *str_data = RSTRING(data)->ptr;
- m_task_t tk;
- Data_Get_Struct(task, s_m_task_t, tk);
- tk->data = (void*)str_data;
-
-}
-
-// get Data
-VALUE rb_task_get_data(VALUE class,VALUE task)
-{
- m_task_t tk;
- Data_Get_Struct(task, s_m_task_t, tk);
- return rb_str_new2(tk->data);
-
-}
-
-
//Get Computation Size
VALUE rb_task_comp(VALUE class,VALUE task) {
double size;
// Wrap Ruby Value to m_task_t struct
m_task_t tk;
Data_Get_Struct(task, s_m_task_t, tk);
+ MSG_task_set_data(tk,(void*)task);
DEBUG1("Sending task %p",tk);
rv = MSG_task_send(tk,RSTRING(mailbox)->ptr);
if(rv != MSG_OK)
MSG_task_receive(ptask,RSTRING(mailbox)->ptr);
task = *ptask;
free(ptask);
- return Data_Wrap_Struct(class, 0, rb_task_free, task);
+ return (VALUE)MSG_task_get_data(task);
}
// It Return a Native Process ( m_process_t )
//Task Methods
rb_define_module_function(rb_task,"new",(rb_meth)rb_task_new,3);
- rb_define_module_function(rb_task,"setData",(rb_meth)rb_task_set_data,2);
- rb_define_module_function(rb_task,"data",(rb_meth)rb_task_get_data,1);
rb_define_module_function(rb_task,"compSize",(rb_meth)rb_task_comp,1);
rb_define_module_function(rb_task,"name",(rb_meth)rb_task_name,1);
rb_define_module_function(rb_task,"execute",(rb_meth)rb_task_execute,1);
void rb_task_free(m_task_t tk);
// New Method >>> Data NULL
VALUE rb_task_new(VALUE Class, VALUE name,VALUE comp_size,VALUE comm_size);
-void rb_task_set_data(VALUE Class,VALUE task,VALUE data); // Data as a String
-VALUE rb_task_get_data(VALUE Class,VALUE task);
VALUE rb_task_comp(VALUE Class,VALUE task); // Get Computation Size
VALUE rb_task_name(VALUE Class,VALUE task);
VALUE rb_task_execute(VALUE Class,VALUE task);