Files
@ 952d4edf0cbb
Branch filter:
Location: CSY/reowolf/examples/0_forward/alice.c - annotation
952d4edf0cbb
1.3 KiB
text/x-csrc
first C example
952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb 952d4edf0cbb | #include <stdio.h>
#include <string.h>
#include "../../reowolf.h"
int main() {
// ALICE
char* pdl ="\
primitive forward(in i, out o) {\
while(true) synchronous {\
put(o, get(i));\
}\
}";
char msg_buf[128];
memset(msg_buf, 0, 128);
printf("input a message to send:");
if (fgets(msg_buf, 128-1, stdin) == NULL) {
printf("LINE READ BAD\n");
return 1;
}
int msg_len = strlen(msg_buf);
msg_buf[msg_len-1] = 0;
printf("sending msg `%s`\n", msg_buf);
Connector* c = connector_new();
if (connector_configure(c, pdl, "forward")) {
printf("CONFIG FAILED: %s\n", connector_error_peek());
return 1;
}
if (connector_bind_native(c, 0)) {
printf("BIND0 FAILED: %s\n", connector_error_peek());
return 1;
}
if (connector_bind_passive(c, 1, "127.0.0.1:7000")) {
printf("BIND1 FAILED: %s\n", connector_error_peek());
return 1;
}
printf("connecting... \n");
if (connector_connect(c, 10000)) {
printf("CONNECT FAILED: %s\n", connector_error_peek());
return 1;
}
int i;
for (i = 0; i < 3; i++) {
if (connector_put(c, 0, msg_buf, msg_len)) {
printf("CONNECT PUT: %s\n", connector_error_peek());
return 1;
}
if (connector_sync(c, 10000)) {
printf("SYNC FAILED: %s\n", connector_error_peek());
return 1;
}
printf("SEND OK\n");
}
printf("OK\n");
connector_destroy(c);
return 0;
}
|