int _mongoc_read_prefs_score (const mongoc_read_prefs_t *read_prefs, const mongoc_cluster_node_t *node) { bson_return_val_if_fail(read_prefs, -1); bson_return_val_if_fail(node, -1); if (!node->primary && !node->secondary) { /* recovering, arbiter, or removed: see RSOther and RSGhost in * the Server Discovery And Monitoring Spec */ return -1; } switch (read_prefs->mode) { case MONGOC_READ_PRIMARY: return _mongoc_read_prefs_score_primary(read_prefs, node); case MONGOC_READ_PRIMARY_PREFERRED: return _mongoc_read_prefs_score_primary_preferred(read_prefs, node); case MONGOC_READ_SECONDARY: return _mongoc_read_prefs_score_secondary(read_prefs, node); case MONGOC_READ_SECONDARY_PREFERRED: return _mongoc_read_prefs_score_secondary_preferred(read_prefs, node); case MONGOC_READ_NEAREST: return _mongoc_read_prefs_score_nearest(read_prefs, node); default: BSON_ASSERT(false); return -1; } }
int _mongoc_read_prefs_score (const mongoc_read_prefs_t *read_prefs, const mongoc_cluster_node_t *node) { bson_return_val_if_fail(read_prefs, -1); bson_return_val_if_fail(node, -1); switch (read_prefs->mode) { case MONGOC_READ_PRIMARY: return _mongoc_read_prefs_score_primary(read_prefs, node); case MONGOC_READ_PRIMARY_PREFERRED: return _mongoc_read_prefs_score_primary_preferred(read_prefs, node); case MONGOC_READ_SECONDARY: return _mongoc_read_prefs_score_secondary(read_prefs, node); case MONGOC_READ_SECONDARY_PREFERRED: return _mongoc_read_prefs_score_secondary_preferred(read_prefs, node); case MONGOC_READ_NEAREST: return _mongoc_read_prefs_score_nearest(read_prefs, node); default: BSON_ASSERT(false); return -1; } }