/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
-#define GRAS_DEFINE_TYPE_EXTERN
+#define XBT_DEFINE_TYPE_EXTERN
#include "xbt/matrix.h"
#include "mmrpc.h"
void *payload_data)
{
- gras_socket_t expeditor = gras_msg_cb_ctx_from(ctx);
+ xbt_socket_t expeditor = gras_msg_cb_ctx_from(ctx);
/* 1. Get the payload into the data variable */
xbt_matrix_t *request = (xbt_matrix_t *) payload_data;
return 0;
} /* end_of_server_cb_request_handler */
+static xbt_socket_t try_gras_socket_server(int port)
+{
+ volatile xbt_socket_t sock = NULL;
+ TRY {
+ sock = gras_socket_server(port);
+ }
+ CATCH_ANONYMOUS {
+ RETHROWF("Unable to establish a server socket: %s");
+ }
+ return sock;
+}
+
int server(int argc, char *argv[])
{
- xbt_ex_t e;
- gras_socket_t sock = NULL;
+ xbt_socket_t sock = NULL;
int port = 4002;
/* 1. Init the GRAS infrastructure */
port = atoi(argv[1]);
}
- /* 3. Create my master socket */
- XBT_INFO("Launch server (port=%d)", port);
- TRY {
- sock = gras_socket_server(port);
- }
- CATCH(e) {
- RETHROW0("Unable to establish a server socket: %s");
- }
-
- /* 4. Register the known messages and payloads. */
+ /* 3. Register the known messages and payloads. */
mmrpc_register_messages();
- /* 5. Register my callback */
+ /* 4. Register my callback */
gras_cb_register("request", &server_cb_request_handler);
+ /* 5. Create my master socket */
+ XBT_INFO("Launch server (port=%d)", port);
+ sock = try_gras_socket_server(port);
+
/* 6. Wait up to 10 minutes for an incomming message to handle */
gras_msg_handle(600.0);