From: mquinson Date: Fri, 9 Jun 2006 14:48:20 +0000 (+0000) Subject: Switch to xbt_matrix_t X-Git-Tag: v3.3~2991 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/2d3f7295504ccdb4ec0662e80344870128d3cc7f Switch to xbt_matrix_t git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2367 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/examples/gras/mmrpc/mmrpc.h b/examples/gras/mmrpc/mmrpc.h index d33d1c8eaa..781d05a25c 100644 --- a/examples/gras/mmrpc/mmrpc.h +++ b/examples/gras/mmrpc/mmrpc.h @@ -14,16 +14,6 @@ #define MATSIZE 128 -GRAS_DEFINE_TYPE(s_matrix, -struct s_matrix { - int lines; - int rows; - double *ctn GRAS_ANNOTE(size, lines*rows); -};) -typedef struct s_matrix matrix_t; - -void mat_dump(matrix_t *mat, const char* name); - /* register messages which may be sent and their payload (common to client and server) */ void mmrpc_register_messages(void); diff --git a/examples/gras/mmrpc/mmrpc_client.c b/examples/gras/mmrpc/mmrpc_client.c index 2e45edb6ff..acffc9e7f3 100644 --- a/examples/gras/mmrpc/mmrpc_client.c +++ b/examples/gras/mmrpc/mmrpc_client.c @@ -8,6 +8,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #define GRAS_DEFINE_TYPE_EXTERN +#include "xbt/matrix.h" #include "mmrpc.h" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(MatMult); @@ -17,7 +18,7 @@ int client(int argc,char *argv[]) { gras_socket_t toserver=NULL; /* peer */ gras_socket_t from; - matrix_t request[2], answer; + xbt_matrix_t request[2], answer; int i,j; @@ -56,23 +57,17 @@ int client(int argc,char *argv[]) { /* 7. Prepare and send the request to the server */ - request[0].lines=request[0].rows=request[1].lines=request[1].rows=MATSIZE; + request[0] = xbt_matrix_double_new_id(MATSIZE,MATSIZE); + request[1] = xbt_matrix_double_new_rand(MATSIZE,MATSIZE); - request[0].ctn=xbt_malloc0(sizeof(double)*MATSIZE*MATSIZE); - request[1].ctn=xbt_malloc0(sizeof(double)*MATSIZE*MATSIZE); - - for (i=0; i>>>>>>> Request sent to %s:%d <<<<<<<<", gras_socket_peer_name(toserver),gras_socket_peer_port(toserver)); @@ -80,16 +75,23 @@ int client(int argc,char *argv[]) { /* 8. Wait for the answer from the server, and deal with issues */ gras_msg_wait(6000,gras_msgtype_by_name("answer"),&from,&answer); - /* mat_dump(&answer,"C:answer");*/ - for (i=0; i>>>>>>> Got answer from %s:%d <<<<<<<<", + INFO2(">>>>>>>> Got answer from %s:%d (values are right) <<<<<<<<", gras_socket_peer_name(from),gras_socket_peer_port(from)); /* 10. Free the allocated resources, and shut GRAS down */ - free(answer.ctn); + xbt_matrix_free(request[1]); + xbt_matrix_free(answer); gras_socket_close(toserver); gras_exit(); INFO0("Done."); diff --git a/examples/gras/mmrpc/mmrpc_common.c b/examples/gras/mmrpc/mmrpc_common.c index 27dc89ef42..65719cc2b0 100644 --- a/examples/gras/mmrpc/mmrpc_common.c +++ b/examples/gras/mmrpc/mmrpc_common.c @@ -16,25 +16,14 @@ XBT_LOG_NEW_DEFAULT_CATEGORY(MatMult,"Messages specific to this example"); void mmrpc_register_messages(void) { gras_datadesc_type_t matrix_type, request_type; - matrix_type=gras_datadesc_by_symbol(s_matrix); - request_type=gras_datadesc_array_fixed("matrix_t[2]",matrix_type,2); + matrix_type=gras_datadesc_matrix(gras_datadesc_by_name("double"), + NULL); + request_type=gras_datadesc_array_fixed("s_matrix_t(double)[2]",matrix_type,2); + // gras_datadesc_by_name("xbt_matrix_t(double)"),2); + // request_type=gras_datadesc_ref("matrix_t(double)[2]",request_type); gras_msgtype_declare("answer", matrix_type); gras_msgtype_declare("request", request_type); } -void mat_dump(matrix_t *mat, const char* name) { - int i,j; - - printf(">>> Matrix %s dump (%d x %d)\n",name,mat->lines,mat->rows); - for (i=0; ilines; i++) { - printf(" "); - for (j=0; jrows; j++) - printf(" %.2f",mat->ctn[i*mat->rows + j]); - printf("\n"); - } - printf("<<< end_of_matrix %s dump\n",name); -} - - diff --git a/examples/gras/mmrpc/mmrpc_server.c b/examples/gras/mmrpc/mmrpc_server.c index 8d94a0d9c0..671b97c765 100644 --- a/examples/gras/mmrpc/mmrpc_server.c +++ b/examples/gras/mmrpc/mmrpc_server.c @@ -8,37 +8,32 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #define GRAS_DEFINE_TYPE_EXTERN +#include "xbt/matrix.h" #include "mmrpc.h" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(MatMult); -static int server_cb_request_handler(gras_msg_cb_ctx_t ctx, void *payload_data) { +typedef xbt_matrix_t request_t[2]; +static int server_cb_request_handler(gras_msg_cb_ctx_t ctx, + void *payload_data) { + gras_socket_t expeditor=gras_msg_cb_ctx_from(ctx); /* 1. Get the payload into the data variable */ - matrix_t *data=(matrix_t*)payload_data; - matrix_t result; - int i,j,k; - - /* 2. Make some room to return the result */ - result.lines = data[0].lines; - result.rows = data[1].rows; - result.ctn = xbt_malloc0(sizeof(double) * result.lines * result.rows); - - /* 3. Do the computation */ - for (i=0; i