All pastes #924901 Raw Edit

Untitled

public c v1 · immutable
·published 2008-03-01 20:26 UTC
rendered paste body
bool om_reg_db_save_newuser(OM_REG_DATA om_reg_data){    OM_SDB *node;    int user_index_num;    //create environment    if(om_reg_data.user_db->ret = db_env_create(&(om_reg_data.user_db->envp), 0)){        om_db_checkerr(om_reg_data.user_db, "Create env for submitting new user.");        return false;    }    //open environment    if(om_reg_data.user_db->ret = om_db_openenv(om_reg_data.user_db)){        om_db_checkerr(om_reg_data.user_db, "Opening env for submitting new user.");        return false;    }    //propogate open environment to all the database structs:    om_reg_data.user_index->envp = om_reg_data.user_db->envp;    for(node = om_reg_data.user_db->om_sdb; node != NULL; node = node->node){        node->om_db->envp = om_reg_data.user_db->envp;    }    //create user_index db    if(om_reg_data.user_index->ret = db_create(&(om_reg_data.user_index->dbp), om_reg_data.user_index->envp, 0)){        om_db_checkerr(om_reg_data.user_index, "Create user_index db to submit a new user.");        return false;    }    //open user_index db    if(om_reg_data.user_index->ret = om_db_opendb(om_reg_data.user_index)){        om_db_checkerr(om_reg_data.user_index, "Opening user_index db to submit a new user.");        return false;    }    //OM_USER_INDEX_KEY    //begin transaction    if(om_reg_data.user_index->ret = om_reg_data.user_index->envp->txn_begin(                om_reg_data.user_index->envp,                 NULL,                 om_reg_data.user_index->txn,                 0)){        om_db_checkerr(om_reg_data.user_index, "Begin user_index txn to submit a new user.");        return false;    }    //get current and determine next index number    if(om_reg_data.user_index->ret = om_reg_data.user_index->dbp->get(                om_reg_data.user->dbp,                NULL,                 &key,                 &data,                 0)){        om_db_checkerr(om_reg_data.user_index, "Get user_index txn to submit a new user.");        return false;    }    om_reg_data.user_index->dbp->get    //store new index number    //close user_index db    //update user db struct    //primary and secondary db, start transaction    //put data    //commit transcation, close secondary db and primary db, and environment    return true;}