Files @ 1f2d007ac1cc
Branch filter:

Location: CSY/reowolf/examples/6_constraint_solve/main.c

Christopher Esterhuyse
fleshed out examples
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include "../../reowolf.h"
#include "../utility.c"

int main(int arg_c, char * argv[]) {
	int index;
	if (arg_c != 2) {
		printf("Expected one arg: which peer I am in 0..4");
		return 1;
	}
	index = atoi(argv[1]);
	printf("I am peer %d\n", index);
	
	const char* addrs[] = {
		"127.0.0.1:7000",
		"127.0.0.1:7001",
		"127.0.0.1:7002",
		"127.0.0.1:7003",
		"127.0.0.1:7004",
		"127.0.0.1:7005",
	};

	char * pdl = buffer_pdl("eg_protocols.pdl");
	
	Connector* c = connector_new();
	printf("configuring...\n");

	check("config ", connector_configure(c, pdl, "xor_three"));
	int i, j;
	int addr_index = 0;
	int port = 0;
	for (i = 0; i < 4; i++) {
		for (j = i+1; j < 4; j++) {
			if (i==index) {
				printf("ports %d and %d are for a passive channel to peer %d over addr %s\n", port, port+1, j, addrs[addr_index]);
				check("bind an ", connector_bind_native(c, port));
				port++;
				check("bind a  ", connector_bind_active(c, port, addrs[addr_index]));
				port++;
			} else if (j==index) {
				printf("ports %d and %d are for an active channel to peer %d over addr %s\n", port, port+1, i, addrs[addr_index]);
				check("bind p  ", connector_bind_passive(c, port, addrs[addr_index]));
				port++;
				check("bind pn ", connector_bind_native(c, port));
				port++;
			}
			addr_index++;
		}
	}
	check("connect", connector_connect(c, 5000));
	
	for (i = 0; i < 4; i++) {
		if (i == index) continue;
		// another batch
		for (j = 0; j < 4; j++) {
			
		}
	}
	connector_sync();
	
	printf("destroying...\n");
	connector_destroy(c);
	printf("exiting...\n");
	free(pdl);
	return 0;
}