-
-
- if ( /* Bandwidth */
- (errcode=gras_msgtype_register(GRASMSG_BW_REQUEST,"BW request",2,
- msgHostDesc,msgHostLen,
- BwExp_Desc,BwExp_Len)) ||
- (errcode=gras_msgtype_register(GRASMSG_BW_RESULT, "BW result",2,
- msgErrorDesc,msgErrorLen,
- msgResultDesc,msgResultLen /* first=seconds, second=bw */)) ||
-
- (errcode=gras_msgtype_register(GRASMSG_BW_HANDSHAKE, "BW handshake",1,
- BwExp_Desc,BwExp_Len)) ||
- (errcode=gras_msgtype_register(GRASMSG_BW_HANDSHAKED, "BW handshake ACK",1,
- BwExp_Desc,BwExp_Len)) ||
-
- /* Saturation */
- (errcode=gras_msgtype_register(GRASMSG_SAT_START,"SAT_START",2,
- msgHostDesc,msgHostLen,
- SatExp_Desc,SatExp_Len)) ||
- (errcode=gras_msgtype_register(GRASMSG_SAT_STARTED, "SAT_STARTED",1,
- msgErrorDesc,msgErrorLen)) ||
-
- (errcode=gras_msgtype_register(GRASMSG_SAT_BEGIN,"SAT_BEGIN",1,
- SatExp_Desc,SatExp_Len)) ||
- (errcode=gras_msgtype_register(GRASMSG_SAT_BEGUN, "SAT_BEGUN",2,
- msgErrorDesc,msgErrorLen,
- SatExp_Desc,SatExp_Len)) ||
-
- (errcode=gras_msgtype_register(GRASMSG_SAT_END,"SAT_END",0)) ||
- (errcode=gras_msgtype_register(GRASMSG_SAT_ENDED, "SAT_ENDED",1,
- msgErrorDesc,msgErrorLen)) ||
-
- (errcode=gras_msgtype_register(GRASMSG_SAT_STOP,"SAT_STOP",0)) ||
- (errcode=gras_msgtype_register(GRASMSG_SAT_STOPPED, "SAT_STOPPED",1,
- msgErrorDesc,msgErrorLen)) )
- {
-
- fprintf(stderr,"GRASBW: Unable register the messages (got error %s)\n",
- gras_error_name(errcode));
- return errcode;
- }
-
- if ((errcode=gras_cb_register(GRASMSG_BW_HANDSHAKE,-1,&grasbw_cbBWHandshake)) ||
- (errcode=gras_cb_register(GRASMSG_BW_REQUEST,-1,&grasbw_cbBWRequest)) ||
-
- (errcode=gras_cb_register(GRASMSG_SAT_START,-1,&grasbw_cbSatStart)) ||
- (errcode=gras_cb_register(GRASMSG_SAT_BEGIN,-1,&grasbw_cbSatBegin)) ) {
-
- fprintf(stderr,"GRASBW: Unable register the callbacks (got error %s)\n",
- gras_error_name(errcode));
- return errcode;
- }
-
- return no_error;
+ gras_datadesc_type_t *bw_request_desc, *bw_res_desc, *sat_request_desc;
+
+ amok_base_init();
+
+ /* Build the datatype descriptions */
+ bw_request_desc = gras_datadesc_struct("bw_request_t");
+ gras_datadesc_struct_append(bw_request_desc,"host",gras_datadesc_by_name("gras_host_t*"));
+ gras_datadesc_struct_append(bw_request_desc,"buf_size",gras_datadesc_by_name("unsigned int"));
+ gras_datadesc_struct_append(bw_request_desc,"exp_size",gras_datadesc_by_name("unsigned int"));
+ gras_datadesc_struct_append(bw_request_desc,"msg_size",gras_datadesc_by_name("unsigned int"));
+ gras_datadesc_struct_close(bw_request_desc);
+ bw_request_desc = gras_datadesc_ref("bw_request_t*",bw_request_desc);
+
+ bw_res_desc = gras_datadesc_struct("bw_res_t");
+ gras_datadesc_struct_append(bw_res_desc,"err",gras_datadesc_by_name("amok_remoterr_t"));
+ gras_datadesc_struct_append(bw_res_desc,"timestamp",gras_datadesc_by_name("unsigned int"));
+ gras_datadesc_struct_append(bw_res_desc,"seconds",gras_datadesc_by_name("double"));
+ gras_datadesc_struct_append(bw_res_desc,"bw",gras_datadesc_by_name("double"));
+ gras_datadesc_struct_close(bw_res_desc);
+ bw_res_desc = gras_datadesc_ref("bw_res_t*",bw_res_desc);
+
+ sat_request_desc = gras_datadesc_struct("sat_request_desc");
+ gras_datadesc_struct_append(sat_request_desc,"host",gras_datadesc_by_name("gras_host_t"));
+ gras_datadesc_struct_append(sat_request_desc,"msg_size",gras_datadesc_by_name("unsigned int"));
+ gras_datadesc_struct_append(sat_request_desc,"timeout",gras_datadesc_by_name("unsigned int"));
+ gras_datadesc_struct_close(sat_request_desc);
+ sat_request_desc = gras_datadesc_ref("sat_request_t*",sat_request_desc);
+
+ /* Register the bandwidth messages */
+ gras_msgtype_declare("BW request", bw_request_desc);
+ gras_msgtype_declare("BW result", bw_res_desc);
+ gras_msgtype_declare("BW handshake", bw_request_desc);
+ gras_msgtype_declare("BW handshake ACK", bw_request_desc);
+
+ /* Register the saturation messages */
+ gras_msgtype_declare("SAT start", sat_request_desc);
+ gras_msgtype_declare("SAT started", gras_datadesc_by_name("amok_remoterr_t"));
+ gras_msgtype_declare("SAT begin", sat_request_desc);
+ gras_msgtype_declare("SAT begun", gras_datadesc_by_name("amok_remoterr_t"));
+ gras_msgtype_declare("SAT end", NULL);
+ gras_msgtype_declare("SAT ended", gras_datadesc_by_name("amok_remoterr_t"));
+ gras_msgtype_declare("SAT stop", NULL);
+ gras_msgtype_declare("SAT stopped", gras_datadesc_by_name("amok_remoterr_t"));
+
+ /* Register the callbacks */
+ gras_cb_register(gras_msgtype_by_name("BW request"),
+ &amok_bw_cb_bw_request);
+ gras_cb_register(gras_msgtype_by_name("BW handshake"),
+ &amok_bw_cb_bw_handshake);
+
+ gras_cb_register(gras_msgtype_by_name("SAT start"),
+ &amok_bw_cb_sat_start);
+ gras_cb_register(gras_msgtype_by_name("SAT begin"),
+ &amok_bw_cb_sat_begin);