Property definitions

mongodb $ NativeMongoDb :: defaultinit
# Wrapper for `mongoc_database_t`.
#
# `mongoc_database_t` provides access to a MongoDB database.
# This handle is useful for actions a particular database object.
# It is not a container for `mongoc_collection_t` structures.
#
# See [`mongoc_database_t`](http://api.mongodb.org/c/current/mongoc_database_t.html).
extern class NativeMongoDb `{ mongoc_database_t * `}

	# Wrapper for `mongoc_client_get_database()`.
	#
	# Get a newly allocated `mongoc_database_t` for the database named name.
	#
	# Database are automatically created on the MongoDB server upon insertion of
	# the first document into a collection.
	# There is no need to create a database manually.
	new(client: NativeMongoClient, db_name: CString) `{
		return mongoc_client_get_database(client, db_name);
	`}

	# Wrapper for `mongoc_database_get_collection_names()`.
	#
	# Fetches a `NULL` terminated array of `NULL-byte` terminated `char*` strings
	# containing the names of all of the collections in database.
	fun collection_names: nullable NativeCStringArray
		import set_mongoc_error, NativeCStringArray, NativeCStringArray.as nullable `{
		bson_error_t error;
		char **strv;
		if((strv = mongoc_database_get_collection_names(self, &error))) {
			return NativeCStringArray_as_nullable(strv);
		}
		NativeMongoDb_set_mongoc_error(self, &error);
		return null_NativeCStringArray();
	`}

	# Wrapper for `mongoc_database_get_collection()`.
	#
	# Allocates a new `mongoc_collection_t` structure for the collection named
	# `name` in database.
	fun collection(name: CString): NativeMongoCollection `{
		return mongoc_database_get_collection(self, name);
	`}

	# Wrapper for `mongoc_database_has_collection()`.
	#
	# This function checks to see if a collection exists on the MongoDB server
	# within database.
	fun has_collection(name: CString): Bool import set_mongoc_error `{
		bson_error_t error;
		if(!mongoc_database_has_collection(self, name, &error)) {
			NativeMongoDb_set_mongoc_error(self, &error);
			return false;
		}
		return true;
	`}

	# Wrapper for `mongoc_database_drop()`.
	#
	# This function attempts to drop a database on the MongoDB server.
	fun drop: Bool import set_mongoc_error `{
		bson_error_t error;
		if(!mongoc_database_drop(self, &error)) {
			NativeMongoDb_set_mongoc_error(self, &error);
			return false;
		}
		return true;
	`}

	# Wrapper for `mongoc_database_destroy()`.
	#
	# This instance should not be used beyond this point!
	fun destroy `{ mongoc_database_destroy(self); `}

	# Utility method to set `Sys.last_mongoc_error`.
	fun set_mongoc_error(err: BSONError) do sys.last_mongoc_error = err
end
lib/mongodb/native_mongodb.nit:216,1--291,3