pi_free_f free;
pi_copy_f copy;
+ /* Optional serialization */
+ pi_serialize_f serialize;
+ pi_unserialize_f unserialize;
+
individual_t fittest;
individual_t *individuals;
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;
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
* 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);
/*
* Methods