libmongo-client 0.1.4
src/mongo-sync.h
Go to the documentation of this file.
00001 /* mongo-sync.h - libmongo-client synchronous wrapper API
00002  * Copyright 2011 Gergely Nagy <algernon@balabit.hu>
00003  *
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  *
00008  *     http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
00015  */
00016 
00021 #ifndef LIBMONGO_SYNC_H
00022 #define LIBMONGO_SYNC_H 1
00023 
00024 #include <mongo-client.h>
00025 
00026 #include <glib.h>
00027 
00028 G_BEGIN_DECLS
00029 
00034 #define MONGO_SYNC_DEFAULT_MAX_INSERT_SIZE 4 * 1000 * 1000
00035 
00051 typedef struct _mongo_sync_connection mongo_sync_connection;
00052 
00066 mongo_sync_connection *mongo_sync_connect (const gchar *host,
00067                                            gint port,
00068                                            gboolean slaveok);
00069 
00081 gboolean mongo_sync_conn_seed_add (mongo_sync_connection *conn,
00082                                    const gchar *host, gint port);
00083 
00098 mongo_sync_connection *mongo_sync_reconnect (mongo_sync_connection *conn,
00099                                              gboolean force_master);
00100 
00107 void mongo_sync_disconnect (mongo_sync_connection *conn);
00108 
00115 gboolean mongo_sync_conn_get_slaveok (const mongo_sync_connection *conn);
00116 
00124 gboolean mongo_sync_conn_set_slaveok (mongo_sync_connection *conn,
00125                                       gboolean slaveok);
00126 
00133 gboolean mongo_sync_conn_get_safe_mode (const mongo_sync_connection *conn);
00134 
00149 gboolean mongo_sync_conn_set_safe_mode (mongo_sync_connection *conn,
00150                                         gboolean safe_mode);
00151 
00158 gboolean mongo_sync_conn_get_auto_reconnect (const mongo_sync_connection *conn);
00159 
00175 gboolean mongo_sync_conn_set_auto_reconnect (mongo_sync_connection *conn,
00176                                              gboolean auto_reconnect);
00177 
00184 gint32 mongo_sync_conn_get_max_insert_size (mongo_sync_connection *conn);
00185 
00198 gboolean mongo_sync_conn_set_max_insert_size (mongo_sync_connection *conn,
00199                                               gint32 max_size);
00200 
00215 gboolean mongo_sync_cmd_update (mongo_sync_connection *conn,
00216                                 const gchar *ns,
00217                                 gint32 flags, const bson *selector,
00218                                 const bson *update);
00219 
00231 gboolean mongo_sync_cmd_insert (mongo_sync_connection *conn,
00232                                 const gchar *ns, ...) G_GNUC_NULL_TERMINATED;
00233 
00234 
00247 gboolean mongo_sync_cmd_insert_n (mongo_sync_connection *conn,
00248                                   const gchar *ns, gint32 n,
00249                                   const bson **docs);
00250 
00267 mongo_packet *mongo_sync_cmd_query (mongo_sync_connection *conn,
00268                                     const gchar *ns, gint32 flags,
00269                                     gint32 skip, gint32 ret, const bson *query,
00270                                     const bson *sel);
00271 
00284 mongo_packet *mongo_sync_cmd_get_more (mongo_sync_connection *conn,
00285                                        const gchar *ns,
00286                                        gint32 ret, gint64 cursor_id);
00287 
00298 gboolean mongo_sync_cmd_delete (mongo_sync_connection *conn, const gchar *ns,
00299                                 gint32 flags, const bson *sel);
00300 
00311 gboolean mongo_sync_cmd_kill_cursors (mongo_sync_connection *conn,
00312                                       gint32 n, ...);
00313 
00327 mongo_packet *mongo_sync_cmd_custom (mongo_sync_connection *conn,
00328                                      const gchar *db,
00329                                      const bson *command);
00330 
00344 gdouble mongo_sync_cmd_count (mongo_sync_connection *conn,
00345                               const gchar *db, const gchar *coll,
00346                               const bson *query);
00347 
00349 enum
00350   {
00352     MONGO_COLLECTION_DEFAULTS = 0,
00354     MONGO_COLLECTION_CAPPED = 1 << 0,
00356     MONGO_COLLECTION_CAPPED_MAX = 1 << 1,
00358     MONGO_COLLECTION_AUTO_INDEX_ID = 1 << 2,
00360     MONGO_COLLECTION_SIZED = 1 << 3,
00361   };
00362 
00384 gboolean mongo_sync_cmd_create (mongo_sync_connection *conn,
00385                                 const gchar *db, const gchar *coll,
00386                                 gint flags, ...);
00387 
00398 bson *mongo_sync_cmd_exists (mongo_sync_connection *conn,
00399                              const gchar *db, const gchar *coll);
00400 
00411 gboolean mongo_sync_cmd_drop (mongo_sync_connection *conn,
00412                               const gchar *db, const gchar *coll);
00413 
00427 gboolean mongo_sync_cmd_get_last_error (mongo_sync_connection *conn,
00428                                         const gchar *db, gchar **error);
00429 
00437 gboolean mongo_sync_cmd_reset_error (mongo_sync_connection *conn,
00438                                      const gchar *db);
00439 
00446 gboolean mongo_sync_cmd_is_master (mongo_sync_connection *conn);
00447 
00455 gboolean mongo_sync_cmd_ping (mongo_sync_connection *conn);
00456 
00466 gboolean mongo_sync_cmd_user_add (mongo_sync_connection *conn,
00467                                   const gchar *db,
00468                                   const gchar *user,
00469                                   const gchar *pw);
00470 
00479 gboolean mongo_sync_cmd_user_remove (mongo_sync_connection *conn,
00480                                      const gchar *db,
00481                                      const gchar *user);
00482 
00492 gboolean mongo_sync_cmd_authenticate (mongo_sync_connection *conn,
00493                                       const gchar *db,
00494                                       const gchar *user,
00495                                       const gchar *pw);
00496 
00498 enum
00499   {
00500     MONGO_INDEX_UNIQUE = 0x01, 
00501     MONGO_INDEX_DROP_DUPS = 0x02, 
00503     MONGO_INDEX_BACKGROUND = 0x04, 
00505     MONGO_INDEX_SPARSE = 0x08, 
00506   };
00507 
00517 gboolean mongo_sync_cmd_index_create (mongo_sync_connection *conn,
00518                                       const gchar *ns,
00519                                       const bson *key,
00520                                       gint options);
00521 
00530 gboolean mongo_sync_cmd_index_drop (mongo_sync_connection *conn,
00531                                     const gchar *ns,
00532                                     const bson *key);
00533 
00541 gboolean mongo_sync_cmd_index_drop_all (mongo_sync_connection *conn,
00542                                         const gchar *ns);
00543 
00546 G_END_DECLS
00547 
00548 #endif
 All Data Structures Files Functions Variables Enumerations Enumerator Defines