Files
@ ef37386d0c6f
Branch filter:
Location: CSY/reowolf/examples/pres_2/bob.c - annotation
ef37386d0c6f
1.3 KiB
text/x-csrc
Put expression types of procedures in type table
Before we annotated the AST. But that is silly in hindsight:
certain operations have a completely different meaning when applied
in a polymorphic context (i.e. the field index determined by a
select expression).
Before we annotated the AST. But that is silly in hindsight:
certain operations have a completely different meaning when applied
in a polymorphic context (i.e. the field index determined by a
select expression).
a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee 14c1a07d148a 14c1a07d148a a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee 8df425c3752e a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee a3c92705eeee 8df425c3752e | #include "../../reowolf.h"
#include "../utility.c"
int main(int argc, char** argv) {
// Create a connector, configured with a protocol defined in a file
char * pdl = buffer_pdl("./eg_protocols.pdl");
Arc_ProtocolDescription * pd = protocol_description_parse(pdl, strlen(pdl));
char logpath[] = "./pres_2_bob.txt";
Connector * c = connector_new_logging(pd, logpath, sizeof(logpath)-1);
rw_err_peek(c);
// ... with 1 outgoing network connection
PortId ports[3];
FfiSocketAddr addr = {{127,0,0,1}, 8000};
connector_add_net_port(c, &ports[0], addr, Polarity_Getter, EndpointPolarity_Active);
connector_add_port_pair(c, &ports[1], &ports[2]);
connector_add_component(c, "pres_2", 6, ports, 2);
rw_err_peek(c);
// Connect with peers (5000ms timeout).
connector_connect(c, 5000);
rw_err_peek(c);
// Prepare to receive a message.
connector_get(c, ports[2]);
rw_err_peek(c);
// ... reach new consistent state within 1000ms deadline.
connector_sync(c, 1000);
rw_err_peek(c);
// Read our received message
size_t msg_len;
const char * msg_ptr = connector_gotten_bytes(c, ports[2], &msg_len);
printf("Got msg `%.*s`\n", (int) msg_len, msg_ptr);
printf("Exiting\n");
protocol_description_destroy(pd);
connector_destroy(c);
free(pdl);
sleep(1.0);
return 0;
}
|