diff --git a/examples/pres_1/amy.c b/examples/pres_1/amy.c index 094d3f0765a40b15029345cfc54c03cd70db8a62..c49a14f216856ddbcaa991388b02c88cf466cb45 100644 --- a/examples/pres_1/amy.c +++ b/examples/pres_1/amy.c @@ -1,35 +1,37 @@ + #include "../../reowolf.h" #include "../utility.c" + + int main(int argc, char** argv) { - // Create a connector... + char msgbuf[64]; + // ask user what message to send + size_t msglen = get_user_msg(msgbuf, sizeof(msgbuf)); + + // Create a connector, configured with our (trivial) protocol. Arc_ProtocolDescription * pd = protocol_description_parse("", 0); char logpath[] = "./pres_1_amy.txt"; Connector * c = connector_new_logging(pd, logpath, sizeof(logpath)-1); - printf("Error str `%s`\n", reowolf_error_peek(NULL)); + rw_err_peek(c); // ... with 1 outgoing network connection PortId p0; char addr_str[] = "127.0.0.1:8000"; - connector_add_net_port( - c, &p0, addr_str, sizeof(addr_str)-1, Polarity_Getter, EndpointPolarity_Active); - printf("Error str `%s`\n", reowolf_error_peek(NULL)); + connector_add_net_port(c, &p0, addr_str, sizeof(addr_str)-1, + Polarity_Putter, EndpointPolarity_Passive); + rw_err_peek(c); - // Connect! Begin communication. 5000ms timeout + // Connect with peers (5000ms timeout). connector_connect(c, 5000); - printf("Error str `%s`\n", reowolf_error_peek(NULL)); + rw_err_peek(c); - // Ask to receive a message... - connector_get(c, p0); - printf("Error str `%s`\n", reowolf_error_peek(NULL)); + // Prepare a message to send + connector_put_bytes(c, p0, msgbuf, msglen); + rw_err_peek(c); - // ... or timeout within 1000ms. + // ... reach new consistent state within 1000ms deadline. connector_sync(c, 1000); - printf("Error str `%s`\n", reowolf_error_peek(NULL)); - - // Print the message we received - size_t msg_len; - const char * msg_ptr = connector_gotten_bytes(c, p0, &msg_len); - printf("Got msg `%.*s`\n", msg_len, msg_ptr); + rw_err_peek(c); printf("Exiting\n"); protocol_description_destroy(pd);