population_set_replacement_method: New function.
[libpopulation.git] / src / population.h
index d2cf2be..cc513d4 100644 (file)
@@ -12,6 +12,9 @@ typedef int   (*pi_rate_f) (const void *);
 typedef void *(*pi_copy_f) (const void *);
 typedef void  (*pi_free_f) (void *);
 
+typedef int   (*pi_serialize_f) (void *, char **, size_t *);
+typedef void *(*pi_unserialize_f) (char *, size_t);
+
 /*
  * (Opaque) data types
  */
@@ -21,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