X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fpopulation.h;h=cc513d4f0a4b652ca7bd45e19aa8ec96cc349d90;hb=HEAD;hp=53cd5c86994be932b59ea68631ea57409d391d99;hpb=fb5eeea19c692eff4feb261a63f23e115a196d2b;p=libpopulation.git diff --git a/src/population.h b/src/population.h index 53cd5c8..cc513d4 100644 --- a/src/population.h +++ b/src/population.h @@ -12,8 +12,8 @@ typedef int (*pi_rate_f) (const void *); typedef void *(*pi_copy_f) (const void *); typedef void (*pi_free_f) (void *); -typedef int (*pi_serialize) (void *, char **, size_t *); -typedef void *(*pi_unserialize) (char * size_t); +typedef int (*pi_serialize_f) (void *, char **, size_t *); +typedef void *(*pi_unserialize_f) (char *, size_t); /* * (Opaque) data types @@ -24,13 +24,25 @@ typedef struct population_s population_t; /* * Constructor and destructor */ -population_t *population_create (pi_rate_f rate, pi_copy_f copy, pi_free_f f); +population_t *population_create (pi_rate_f rate, + pi_copy_f copy, pi_free_f f); void population_destroy (population_t *p); /* * Object configuration */ int population_set_size (population_t *p, size_t population_size); +int population_set_serialization (population_t *p, + pi_serialize_f serialize, pi_unserialize_f unserialize); + +#define POPULATION_REPLACEMENT_EXPLOIT 1 +#define POPULATION_REPLACEMENT_EXPLORE 2 +int population_set_replacement_method (population_t *p, int method); + +#define POPULATION_DEFAULT_PORT "46835" +int population_add_peer (population_t *p, const char *node, const char *port); +int population_start_listen_thread (population_t *p, + const char *node, const char *port); /* * Methods