/* {{{ rberkeley_dbcursor_get_priority */ SEXP rberkeley_dbcursor_get_priority (SEXP _dbc) { DBC *dbc; DB_CACHE_PRIORITY priority; int ret; dbc = R_ExternalPtrAddr(_dbc); if(R_ExternalPtrTag(_dbc) != install("DBC") || dbc == NULL) error("invalid 'dbc' handle"); ret = dbc->get_priority(dbc, &priority); if(ret != 0) return ScalarInteger(ret); switch(priority) { case DB_PRIORITY_VERY_LOW: return mkString("DB_PRIORITY_VERY_LOW"); break; case DB_PRIORITY_LOW: return mkString("DB_PRIORITY_LOW"); break; case DB_PRIORITY_DEFAULT: return mkString("DB_PRIORITY_DEFAULT"); break; case DB_PRIORITY_HIGH: return mkString("DB_PRIORITY_HIGH"); break; case DB_PRIORITY_VERY_HIGH: return mkString("DB_PRIORITY_VERY_HIGH"); break; default: return R_NilValue; } }
/* {{{ rberkeley_db_get_priority */ SEXP rberkeley_db_get_priority (SEXP _dbp) { error("DB->get_priority is unavailable from R"); DBC *dbp; DB_CACHE_PRIORITY priority; int ret; dbp = R_ExternalPtrAddr(_dbp); if(R_ExternalPtrTag(_dbp) != RBerkeley_DB || dbp == NULL) error("invalid 'db' handle"); /* something is wrong with this call... */ ret = dbp->get_priority(dbp, &priority); if(ret != 0) return ScalarInteger(ret); switch(priority) { case DB_PRIORITY_VERY_LOW: return mkString("DB_PRIORITY_VERY_LOW"); break; case DB_PRIORITY_LOW: return mkString("DB_PRIORITY_LOW"); break; case DB_PRIORITY_DEFAULT: return mkString("DB_PRIORITY_DEFAULT"); break; case DB_PRIORITY_HIGH: return mkString("DB_PRIORITY_HIGH"); break; case DB_PRIORITY_VERY_HIGH: return mkString("DB_PRIORITY_VERY_HIGH"); break; default: return R_NilValue; } }