static bool _mongoc_cursor_cursorid_get_more (mongoc_cursor_t *cursor) { mongoc_cursor_cursorid_t *cid; mongoc_server_stream_t *server_stream; bson_t command; bool ret; ENTRY; cid = (mongoc_cursor_cursorid_t *)cursor->iface_data; BSON_ASSERT (cid); server_stream = _mongoc_cursor_fetch_stream (cursor); if (!server_stream) { RETURN (false); } if (_use_find_command (cursor, server_stream)) { if (!_mongoc_cursor_prepare_getmore_command (cursor, &command)) { mongoc_server_stream_cleanup (server_stream); RETURN (false); } ret = _mongoc_cursor_cursorid_refresh_from_command (cursor, &command); bson_destroy (&command); } else { ret = _mongoc_cursor_op_getmore (cursor, server_stream); cid->in_reader = ret; } mongoc_server_stream_cleanup (server_stream); RETURN (ret); }
bool _mongoc_cursor_cursorid_prime (mongoc_cursor_t *cursor) { cursor->sent = true; cursor->operation_id = ++cursor->client->cluster.operation_id; return _mongoc_cursor_cursorid_refresh_from_command (cursor, &cursor->query); }