void GfxDataField::setValue(float value)
{
    prepDrawText(x,y,fntsize);
    checkShrinkage((char)tft->print(value,place));
}
void GfxDataField::setUnknown()
{
    prepDrawText(x,y,fntsize);
    checkShrinkage((char)tft->print(F("?")));
}
Beispiel #3
0
struct gbStatusTbl* gbBuildState(struct sqlConnection *conn,
                                 struct gbSelect* select, 
                                 struct dbLoadOptions* options,
                                 float maxShrinkage,
                                 char* tmpDir,
                                 int verboseLevel,
                                 boolean extFileUpdate,
                                 boolean* maxShrinkageExceeded)
/* Load status table and find of state of all genbank entries in the release
 * compared to the database. */
{
struct gbStatusTbl* statusTbl;
struct selectStatusData ssData;
unsigned selectFlags = (select->type | select->release->srcDb);
ZeroVar(&ssData);

gOptions = options;
*maxShrinkageExceeded = FALSE;
gbVerbose = verboseLevel;
gErrorCnt = 0;

loadNonCoding = dbLoadNonCoding(sqlGetDatabase(conn), select);
if (loadNonCoding)
    gbVerbMsg(1, "NOTE: loading non-coding");

gbVerbEnter(3, "build state table");
gbVerbMsg(4, "reading gbSeq accessions");
ssData.select = select;
ssData.seqHash = seqTblLoadAcc(conn, select);

gbVerbMsg(4, "reading gbStatus");
statusTbl = gbStatusTblSelectLoad(conn, selectFlags, select->accPrefix,
                                  selectStatus, &ssData,
                                  tmpDir, extFileUpdate, (gbVerbose >= 4));
findNewEntries(select, statusTbl);

/* Don't allow deletes when select criteria has changed */
if ((ssData.orgCatDelCnt > 0) && !(gOptions->flags & DBLOAD_LARGE_DELETES))
    errAbort("%u entries deleted due to organism category no longer being selected, specify -allowLargeDeletes to override",
             ssData.orgCatDelCnt);

/* check shrinkage unless override */
if ((gOptions->flags & DBLOAD_LARGE_DELETES) == 0)
    {
    if (!checkShrinkage(select, maxShrinkage, statusTbl))
        *maxShrinkageExceeded = TRUE;
    }

/* don't do other setup if we are going to stop on maxShrinkageExceeded */
if (!*maxShrinkageExceeded)
    {
    gbVerbMsg(4, "checking for orphans");
    findOrphans(conn, select, ssData.seqHash, statusTbl);

    if (((gOptions->flags & DBLOAD_INITIAL) == 0))
        {
        gbVerbMsg(4, "checking for type change");
        checkForTypeChange(conn, select, statusTbl);
        }
    }

#ifdef DUMP_HASH_STATS
hashPrintStats(ssData.seqHash, "stateSeq", stderr);
#endif
hashFree(&ssData.seqHash);

gbVerbLeave(3, "build state table");

/* always print stats */
fprintf(stderr, "gbLoadRna: selected %s: delete=%u seqChg=%u metaChg=%u extChg=%u new=%u orphan=%u derived=%u noChg=%u\n",
        gbSelectDesc(select), statusTbl->numDelete, statusTbl->numSeqChg,
        statusTbl->numMetaChg, statusTbl->numExtChg, statusTbl->numNew,
        statusTbl->numOrphan, statusTbl->numRebuildDerived, 
        statusTbl->numNoChg);

/* this doesn't include large delete errors */
if (gErrorCnt > 0)
    errAbort("Errors detecting when constructing state table");
return statusTbl;
}