Wrapper for mongoc_cursor_t.

mongoc_cursor_t provides access to a MongoDB query cursor. It wraps up the wire protocol negotation required to initiate a query and retreive an unknown number of documents.

Cursors are lazy, meaning that no network traffic occurs until the first call to mongoc_cursor_next().

At that point we can:

  • Retreive more records with repeated calls to mongoc_cursor_next().
  • Test for more records with mongoc_cursor_more().
  • Retrieve the document under the cursor with mongoc_cursor_current().

See mongoc_cursor_t.

Introduced properties

fun current: NativeBSON

mongodb :: NativeMongoCursor :: current

Wrapper for mongoc_cursor_current().
fun destroy

mongodb :: NativeMongoCursor :: destroy

Wrapper for mongoc_cursor_destroy().
fun next: Bool

mongodb :: NativeMongoCursor :: next

Wrapper for mongoc_cursor_next().

Redefined properties

redef type SELF: NativeMongoCursor

mongodb $ NativeMongoCursor :: SELF

Type of this instance, automatically specialized in every class

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
fun address_is_null: Bool

core :: Pointer :: address_is_null

Is the address behind this Object at NULL?
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun current: NativeBSON

mongodb :: NativeMongoCursor :: current

Wrapper for mongoc_cursor_current().
fun destroy

mongodb :: NativeMongoCursor :: destroy

Wrapper for mongoc_cursor_destroy().
fun free

core :: Pointer :: free

Free the memory pointed by this pointer
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
fun next: Bool

mongodb :: NativeMongoCursor :: next

Wrapper for mongoc_cursor_next().
init nul: Pointer

core :: Pointer :: nul

C NULL pointer
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
package_diagram mongodb::NativeMongoCursor NativeMongoCursor core::Pointer Pointer mongodb::NativeMongoCursor->core::Pointer core::Object Object core::Pointer->core::Object ...core::Object ... ...core::Object->core::Object

Ancestors

interface Object

core :: Object

The root of the class hierarchy.

Parents

extern class Pointer

core :: Pointer

Pointer classes are used to manipulate extern C structures.

Class definitions

mongodb $ NativeMongoCursor
# Wrapper for `mongoc_cursor_t`.
#
# `mongoc_cursor_t` provides access to a MongoDB query cursor.
# It wraps up the wire protocol negotation required to initiate a query and
# retreive an unknown number of documents.
#
# Cursors are lazy, meaning that no network traffic occurs until the first call
# to mongoc_cursor_next().
#
# At that point we can:
# * Retreive more records with repeated calls to `mongoc_cursor_next()`.
# * Test for more records with `mongoc_cursor_more()`.
# * Retrieve the document under the cursor with `mongoc_cursor_current()`.
#
# See [`mongoc_cursor_t`](http://api.mongodb.org/c/current/mongoc_cursor_t.html).
extern class NativeMongoCursor `{ mongoc_cursor_t* `}

	# Wrapper for `mongoc_cursor_current()`.
	#
	# Fetches the cursors current document or NULL if there has been an error.
	fun current: NativeBSON `{
		// As said in documentation, BSON objects should not be freed manually.
		bson_t* bson = (bson_t*) mongoc_cursor_current(self);
		// Copy BSON so we can let the GC free it automatically.
		return bson_copy(bson);
	`}

	# Wrapper for `mongoc_cursor_next()`.
	#
	# This function shall iterate the underlying cursor, setting `current` to the next
	# document.
	#
	# This function is a blocking function.
	fun next: Bool `{
		const bson_t *doc;
		return mongoc_cursor_next(self, &doc);
	`}

	# Wrapper for `mongoc_cursor_destroy()`.
	#
	# This instance should not be used beyond this point!
	fun destroy `{ mongoc_cursor_destroy(self); `}
end
lib/mongodb/native_mongodb.nit:518,1--560,3