42 #if !defined(MONGO_ENV_STANDARD) && (defined(__APPLE__) || defined(__linux) || defined(__unix) || defined(__posix))
54 #define MONGO_ERROR -1
56 #define MONGO_DEFAULT_PORT 27017
58 #define MONGO_DEFAULT_MAX_BSON_SIZE 4 * 1024 * 1024
60 #define MONGO_ERR_LEN 128
62 #ifndef MAXHOSTNAMELEN
63 #define MAXHOSTNAMELEN 256
829 const char *
user,
const char *
pass );
842 const char *
user,
const char *
pass );
938 #if defined(_RPMMGO_INTERNAL)
944 #if defined(__LCLINT__)
963 #define rpmmgoUnlink(_mgo) \
964 ((rpmmgo)rpmioUnlinkPoolItem((rpmioItem)(_mgo), __FUNCTION__, __FILE__, __LINE__))
974 #define rpmmgoLink(_mgo) \
975 ((rpmmgo)rpmioLinkPoolItem((rpmioItem)(_mgo), __FUNCTION__, __FILE__, __LINE__))
986 #define rpmmgoFree(_mgo) \
987 ((rpmmgo)rpmioFreePoolItem((rpmioItem)(_mgo), __FUNCTION__, __FILE__, __LINE__))
int conn_timeout_ms
Connection timeout in milliseconds.
MONGO_EXPORT int mongo_get_err(mongo *conn)
int w
Number of total replica write copies to complete including the primary.
int options
Bitfield containing cursor options.
MONGO_EXPORT void mongo_write_concern_set_wtimeout(mongo_write_concern *write_concern, int wtimeout)
MONGO_EXPORT void mongo_replica_set_add_seed(mongo *conn, const char *host, int port)
SOCKET sock
Socket file descriptor.
const char const char * coll
mongo_error_t const char * errstr
An error occurred while reading or writing on the socket.
const bson * query
Bitfield containing cursor options.
int max_bson_size
Largest BSON object allowed on this connection.
const char const char * cmd
mongo_host_port * seeds
List of seeds provided by the user.
MONGO_EXPORT int mongo_cursor_destroy(mongo_cursor *cursor)
const char const bson mongo_write_concern * custom_write_concern
MONGO_EXPORT const char * mongo_get_primary(mongo *conn)
#define MONGO_EXTERN_C_END
The command returned with 'ok' value of 0.
MONGO_EXPORT bson * mongo_write_concern_get_cmd(mongo_write_concern *write_concern)
MONGO_EXPORT SOCKET mongo_get_socket(mongo *conn)
MONGO_EXPORT int mongo_connect(mongo *conn, const char *host, int port)
const char const bson * cond
MONGO_EXPORT int mongo_remove(mongo *conn, const char *ns, const bson *cond, mongo_write_concern *custom_write_concern)
MONGO_EXPORT void mongo_cursor_set_fields(mongo_cursor *cursor, const bson *fields)
struct mongo_write_concern mongo_write_concern
MONGO_EXPORT const char * mongo_get_host(mongo *conn, int i)
mongo_write_concern * write_concern
MONGO_EXPORT int mongo_check_connection(mongo *conn)
const char const char * field
MONGO_EXPORT void mongo_cursor_set_limit(mongo_cursor *cursor, int limit)
const char * ns
owned by cursor
MONGO_EXPORT int mongo_write_concern_get_fsync(mongo_write_concern *write_concern)
bson * cmd
The BSON object representing the getlasterror command.
BSON object has not been finished.
MONGO_EXPORT void mongo_replset_init(mongo *conn, const char *name)
#define MONGO_EXTERN_C_START
MONGO_EXPORT int mongo_find_one(mongo *conn, const char *ns, const bson *query, const bson *fields, bson *out)
MONGO_EXPORT const char * mongo_cursor_data(mongo_cursor *cursor)
BSON not valid for the specified op.
MONGO_EXPORT int mongo_set_op_timeout(mongo *conn, int millis)
int op_timeout_ms
Read and write timeout in milliseconds.
int lasterrcode
getlasterror code from the server.
mongo_replica_set * replica_set
replica_set object if connected to a replica set.
const char const char int size
Given rs name doesn't match this replica set.
Allow reads even if a shard is down.
MONGO_EXPORT mongo_write_concern * mongo_write_concern_alloc(void)
int limit
Bitfield containing cursor options.
The server returned an '$err' object, indicating query failure.
MONGO_EXPORT void mongo_init_sockets(void)
MONGO_EXPORT void mongo_write_concern_set_w(mongo_write_concern *write_concern, int w)
mongo_error_t const char int errorcode
mongo * conn
connection is not owned by cursor
mongo_reply_fields fields
char errstr[128]
String version of error.
MONGO_EXPORT int mongo_get_host_count(mongo *conn)
MONGO_EXPORT int mongo_cmd_drop_collection(mongo *conn, const char *db, const char *collection, bson *out)
MONGO_EXPORT void mongo_disconnect(mongo *conn)
MONGO_EXPORT void mongo_cmd_reset_error(mongo *conn, const char *db)
MONGO_EXPORT void mongo_write_concern_init(mongo_write_concern *write_concern)
MONGO_EXPORT mongo_cursor * mongo_cursor_alloc(void)
The cursor has timed out or is not recognized.
Tailable cursor still alive but no data.
const char const bson * command
const char const bson * data
MONGO_EXPORT void mongo_clear_errors(mongo *conn)
MONGO_EXPORT void mongo_cursor_set_query(mongo_cursor *cursor, const bson *query)
rpmmgo rpmmgoNew(const char *fn, int flags)
Create and load a mongo wrapper.
MONGO_EXPORT void mongo_replset_add_seed(mongo *conn, const char *host, int port)
MONGO_EXPORT void mongo_write_concern_destroy(mongo_write_concern *write_concern)
Free the write_concern object (specifically, the BSON object that it holds).
const char const bson const bson int limit
int seen
Number returned so far.
The name for the ns (database or collection) is invalid.
MONGO_EXPORT void __mongo_set_error(mongo *conn, mongo_error_t err, const char *str, int errcode)
int flags
Flags on this connection object.
mongo_host_port * primary
Primary connection info.
int errcode
Most recent errno or WSAGetLastError().
MONGO_EXPORT int mongo_write_concern_get_j(mongo_write_concern *write_concern)
MONGO_EXPORT int mongo_insert_batch(mongo *conn, const char *ns, const bson **bsons, int count, mongo_write_concern *custom_write_concern, int flags)
mongo_reply * reply
reply is owned by cursor
Allow queries on a non-primary node.
MONGO_EXPORT void mongo_write_concern_set_fsync(mongo_write_concern *write_concern, int fsync)
MONGO_EXPORT int mongo_cursor_next(mongo_cursor *cursor)
MONGO_EXPORT int mongo_cmd_get_last_error(mongo *conn, const char *db, bson *out)
MONGO_EXPORT int mongo_is_connected(mongo *conn)
mongo_cursor_error_t err
Errors on this cursor.
const char const bson const bson int int skip
const char const bson const bson * fields
const char const char const char * pass
BSON object exceeds max BSON size.
const char const char * user
int mongo_env_close_socket(SOCKET socket)
MONGO_EXPORT int mongo_insert(mongo *conn, const char *ns, const bson *bson, mongo_write_concern *custom_write_concern)
Write with given write_concern returned an error.
MONGO_EXPORT int mongo_cmd_get_prev_error(mongo *conn, const char *db, bson *out)
MONGO_EXPORT int mongo_run_command(mongo *conn, const char *db, const bson *command, bson *out)
char * name
Name of the replica set.
MONGO_EXPORT int mongo_cmd_drop_db(mongo *conn, const char *db)
const char const bson const bson * op
const char const char * collection
const char const char int arg
MONGO_EXPORT void mongo_init(mongo *conn)
MONGO_EXPORT int mongo_simple_str_command(mongo *conn, const char *db, const char *cmdstr, const char *arg, bson *out)
MONGO_EXPORT int mongo_replica_set_client(mongo *conn)
char lasterrstr[128]
getlasterror string from the server.
MONGO_EXPORT int mongo_update(mongo *conn, const char *ns, const bson *cond, const bson *op, int flags, mongo_write_concern *custom_write_concern)
MONGO_EXPORT int mongo_simple_int_command(mongo *conn, const char *db, const char *cmdstr, int arg, bson *out)
const char const bson int mongo_write_concern int flags
Can't find primary in replica set.
MONGO_EXPORT bson_bool_t mongo_create_simple_index(mongo *conn, const char *ns, const char *field, int options, bson *out)
MONGO_EXPORT void mongo_write_concern_set_j(mongo_write_concern *write_concern, int j)
The response is not the expected length.
MONGO_EXPORT void mongo_set_write_concern(mongo *conn, mongo_write_concern *write_concern)
Momentarily block for more data.
mongo_host_port * hosts
List of host/ports given by the replica set.
Could not create a socket.
bson_bool_t connected
Connection status.
int wtimeout
Number of milliseconds before replication timeout.
MONGO_EXPORT void mongo_cursor_set_options(mongo_cursor *cursor, int options)
int skip
Bitfield containing cursor options.
MONGO_EXPORT bson_bool_t mongo_cmd_authenticate(mongo *conn, const char *db, const char *user, const char *pass)
int flags
Flags used internally by this drivers.
An error occured while calling getaddrinfo().
Create a tailable cursor.
#define rpmmgoUnlink(_mgo)
MONGO_EXPORT double mongo_count(mongo *conn, const char *db, const char *coll, const bson *query)
const char const bson * query
MONGO_EXPORT void mongo_replica_set_init(mongo *conn, const char *name)
const char const bson * key
struct mongo_host_port mongo_host_port
const bson * fields
Bitfield containing cursor options.
const char const bson const bson bson * out
const char const char int int max
Initial query has been sent.
int j
If non-zero, block until the journal sync.
MONGO_EXPORT int mongo_create_capped_collection(mongo *conn, const char *db, const char *collection, int size, int max, bson *out)
MONGO_EXPORT void mongo_cursor_init(mongo_cursor *cursor, mongo *conn, const char *ns)
Warning: connected to a non-master node (read-only).
MONGO_EXPORT const bson * mongo_cursor_bson(mongo_cursor *cursor)
MONGO_EXPORT const char * mongo_write_concern_get_mode(mongo_write_concern *write_concern)
MONGO_EXPORT void mongo_cursor_set_skip(mongo_cursor *cursor, int skip)
MONGO_EXPORT int mongo_validate_ns(mongo *conn, const char *ns)
MONGO_EXPORT void mongo_write_concern_dealloc(mongo_write_concern *write_concern)
void mongo_parse_host(const char *host_string, mongo_host_port *host_port)
Utility function for converting a host-port string to a mongo_host_port.
MONGO_EXPORT void mongo_destroy(mongo *conn)
struct mongo_host_port * next
bson_bool_t primary_connected
Primary node connection status.
MONGO_EXPORT int mongo_write_concern_get_w(mongo_write_concern *write_concern)
MONGO_EXPORT void mongo_cursor_dealloc(mongo_cursor *cursor)
MONGO_EXPORT int mongo_replset_connect(mongo *conn)
const char * mode
Either "majority" or a getlasterrormode.
bson current
This cursor's current bson object.
MONGO_EXPORT int mongo_cmd_add_user(mongo *conn, const char *db, const char *user, const char *pass)
mongo_error_t err
Most recent driver error code.
MONGO_EXPORT void mongo_write_concern_set_mode(mongo_write_concern *write_concern, const char *mode)
An error occured while calling connect().
MONGO_EXPORT int mongo_client(mongo *conn, const char *host, int port)
Stream in multiple 'more' packages.
MONGO_EXPORT int mongo_write_concern_get_wtimeout(mongo_write_concern *write_concern)
const char const bson const bson int int int options
MONGO_EXPORT int mongo_get_server_err(mongo *conn)
The cursor has no more results.
MONGO_EXPORT int mongo_create_index(mongo *conn, const char *ns, const bson *key, const char *name, int options, bson *out)
MONGO_EXPORT int mongo_reconnect(mongo *conn)
Supplied write concern object is invalid.
MONGO_EXPORT int mongo_get_op_timeout(mongo *conn)
mongo_cursor_destroy should free cursor.
int fsync
Same a j with journaling enabled; otherwise, call fsync.
MONGO_EXPORT const char * mongo_get_server_err_string(mongo *conn)
MONGO_EXPORT bson_bool_t mongo_cmd_ismaster(mongo *conn, bson *realout)
const char const bson int num
mongo_write_concern * write_concern
The default write concern.
MONGO_EXPORT mongo * mongo_alloc(void)
MONGO_EXPORT void mongo_dealloc(mongo *conn)
MONGO_EXPORT mongo_cursor * mongo_find(mongo *conn, const char *ns, const bson *query, const bson *fields, int limit, int skip, int options)
MONGO_EXPORT int mongo_write_concern_finish(mongo_write_concern *write_concern)
Something is wrong with the BSON provided.