summaryrefslogtreecommitdiff
path: root/docs/tutorial/tut_mongo_sync_connect.h
diff options
context:
space:
mode:
Diffstat (limited to 'docs/tutorial/tut_mongo_sync_connect.h')
-rw-r--r--docs/tutorial/tut_mongo_sync_connect.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/docs/tutorial/tut_mongo_sync_connect.h b/docs/tutorial/tut_mongo_sync_connect.h
new file mode 100644
index 0000000..1fb8b4a
--- /dev/null
+++ b/docs/tutorial/tut_mongo_sync_connect.h
@@ -0,0 +1,49 @@
+/** @page tut_mongo_sync_connect Connecting to MongoDB
+ *
+ * The next step in our journey is to connect to MongoDB: to a single
+ * server and to a replicaset alike.
+ *
+ * Our first task is to connect to a MongoDB server, listening
+ * on localhost's 27017 port. And we don't care whether it is a master
+ * or a secondary, so we set the slave_ok argument to TRUE:
+ *
+ * @dontinclude tut_mongo_sync.c
+ * @skip void
+ * @until mongo_sync_disconnect
+ * @until }
+ *
+ * It's fairly straightforward: error handling is done using errno
+ * values, because that saves us from inventing our own statuses:
+ * POSIX provides us with plenty, and the C library uses errno
+ * extensively well. So does libmongo-client!
+ *
+ * Next up, is connecting to a replicaset:
+ *
+ * @until return;
+ * @until }
+ *
+ * Wait a minute! Does this look familiar? Isn't it @b exactly the
+ * same as in the former example (apart from the host name)? It sure
+ * is! There really is no difference between connecting to a single
+ * server and to a replica set when using the Sync API. It hides all
+ * the boring things from the user.
+ *
+ * However, if the server is a replicaset, we can add seeds: seeds are
+ * hosts that are not listed in the replicaset's public config
+ * (meaning they're hidden), but we still want to be able to use them,
+ * if so need be.
+ *
+ * It's not neccessary to add seeds, if the replica set itself
+ * advertises secondaries: the library will discover those, and
+ * reconnect to them, if automatic reconnection is turned on. Lets
+ * just do that!
+ *
+ * @until }
+ *
+ * Then we can add the seeds:
+ * @until }
+ * @until }
+ *
+ * And that's about it! We wrap up our function, and we're done!
+ * @until }
+ */