X-Git-Url: https://git.octo.it/?p=libpopulation.git;a=blobdiff_plain;f=src%2Flibpopulation.c;h=42d1cb1871372ccc4b79b751931791dcb631054b;hp=f5379a069d25613d786cba145c7c223005231791;hb=00bb95ea0c77d776efebda521c57b8d272e2d908;hpb=fb5eeea19c692eff4feb261a63f23e115a196d2b diff --git a/src/libpopulation.c b/src/libpopulation.c index f5379a0..42d1cb1 100644 --- a/src/libpopulation.c +++ b/src/libpopulation.c @@ -88,6 +88,10 @@ struct population_s pi_free_f free; pi_copy_f copy; + /* Optional serialization */ + pi_serialize_f serialize; + pi_unserialize_f unserialize; + individual_t fittest; individual_t *individuals; @@ -212,6 +216,21 @@ int population_set_size (population_t *p, /* {{{ */ return (0); } /* }}} */ +int population_set_serialization (population_t *p, + pi_serialize_f serialize, pi_unserialize_f unserialize) /* {{{ */ +{ + if (p == NULL) + return (-1); + + pthread_mutex_lock (&p->lock); + + p->serialize = serialize; + p->unserialize = unserialize; + + pthread_mutex_unlock (&p->lock); + return (0); +} /* }}} int population_set_serialization */ + void *population_get_random (population_t *p) /* {{{ */ { void *ret = NULL;