Store backends now consist of a type followed by extra information.
[bluesky.git] / bluesky / store-kv.cc
index c1b0524..6b863d8 100644 (file)
@@ -58,15 +58,27 @@ static void kvstore_task(gpointer a, gpointer b)
     bluesky_store_async_unref(async);
 }
 
-static gpointer kvstore_new()
+static gpointer kvstore_new(const gchar *path)
 {
+    /* TODO: Right now we leak this memory.  We should probably clean up in
+     * kvstore_destroy, but it's not a big deal. */
+    gchar **target = g_strsplit(path, ":", 0);
+    const gchar *host = "127.0.0.1", *port = "9090";
+    if (target[0] != NULL) {
+        host = target[0];
+        if (target[1] != NULL) {
+            port = target[1];
+        }
+    }
+
     static volatile gsize once = 0;
     if (g_once_init_enter(&once)) {
         thread_pool = g_thread_pool_new(kvstore_task, NULL, -1, FALSE, NULL);
         g_once_init_leave(&once, 1);
     }
 
-    KeyValueClient *client = new KeyValueClient("127.0.0.1", "9090");
+    g_print("kvstore: %s port %s\n", host, port);
+    KeyValueClient *client = new KeyValueClient(host, port);
     return client;
 }