IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 20, 2006, 5:33:47 PM (20 years ago)
Author:
jhoblitt
Message:

VERSION 0.0.51

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ippdb/src/ippdb.c

    r9684 r9705  
    65996599static void detRunRowFree(detRunRow *object);
    66006600
    6601 detRunRow *detRunRowAlloc(psS32 det_id, psS32 iteration, const char *det_type, const char *state)
     6601detRunRow *detRunRowAlloc(psS32 det_id, psS32 iteration, const char *det_type, const char *state, const char *exp_type, const char *filter, psF32 airmass, psF32 exp_time, psF32 ccd_temp, psF64 posang, const char *object, psTime* registered, psTime* use_begin, psTime* use_end)
    66026602{
    66036603    detRunRow       *_object;
     
    66106610    _object->det_type = psStringCopy(det_type);
    66116611    _object->state = psStringCopy(state);
     6612    _object->exp_type = psStringCopy(exp_type);
     6613    _object->filter = psStringCopy(filter);
     6614    _object->airmass = airmass;
     6615    _object->exp_time = exp_time;
     6616    _object->ccd_temp = ccd_temp;
     6617    _object->posang = posang;
     6618    _object->object = psStringCopy(object);
     6619    _object->registered = psTimeCopy(registered);
     6620    _object->use_begin = psTimeCopy(use_begin);
     6621    _object->use_end = psTimeCopy(use_end);
    66126622
    66136623    return _object;
     
    66186628    psFree(object->det_type);
    66196629    psFree(object->state);
     6630    psFree(object->exp_type);
     6631    psFree(object->filter);
     6632    psFree(object->object);
     6633    psFree(object->registered);
     6634    psFree(object->use_begin);
     6635    psFree(object->use_end);
    66206636}
    66216637
     
    66436659        return false;
    66446660    }
     6661    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, "64")) {
     6662        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
     6663        psFree(md);
     6664        return false;
     6665    }
     6666    if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, "255")) {
     6667        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
     6668        psFree(md);
     6669        return false;
     6670    }
     6671    if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, 0.0)) {
     6672        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     6673        psFree(md);
     6674        return false;
     6675    }
     6676    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_time", PS_DATA_F32, NULL, 0.0)) {
     6677        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
     6678        psFree(md);
     6679        return false;
     6680    }
     6681    if (!psMetadataAdd(md, PS_LIST_TAIL, "ccd_temp", PS_DATA_F32, NULL, 0.0)) {
     6682        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     6683        psFree(md);
     6684        return false;
     6685    }
     6686    if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, 0.0)) {
     6687        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
     6688        psFree(md);
     6689        return false;
     6690    }
     6691    if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, "64")) {
     6692        psError(PS_ERR_UNKNOWN, false, "failed to add item object");
     6693        psFree(md);
     6694        return false;
     6695    }
     6696    psTime* registered = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_TAI);
     6697    if (!psMetadataAdd(md, PS_LIST_TAIL, "registered", PS_DATA_TIME, NULL, registered)) {
     6698        psFree(registered);
     6699        psError(PS_ERR_UNKNOWN, false, "failed to add item registered");
     6700        psFree(md);
     6701        return false;
     6702    }
     6703    psFree(registered);
     6704    psTime* use_begin = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_TAI);
     6705    if (!psMetadataAdd(md, PS_LIST_TAIL, "use_begin", PS_DATA_TIME, NULL, use_begin)) {
     6706        psFree(use_begin);
     6707        psError(PS_ERR_UNKNOWN, false, "failed to add item use_begin");
     6708        psFree(md);
     6709        return false;
     6710    }
     6711    psFree(use_begin);
     6712    psTime* use_end = psTimeFromISO("0001-01-01T00:00:00", PS_TIME_TAI);
     6713    if (!psMetadataAdd(md, PS_LIST_TAIL, "use_end", PS_DATA_TIME, NULL, use_end)) {
     6714        psFree(use_end);
     6715        psError(PS_ERR_UNKNOWN, false, "failed to add item use_end");
     6716        psFree(md);
     6717        return false;
     6718    }
     6719    psFree(use_end);
    66456720
    66466721    bool status = psDBCreateTable(dbh, DETRUN_TABLE_NAME, md);
     
    66566731}
    66576732
    6658 bool detRunInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *det_type, const char *state)
     6733bool detRunInsert(psDB * dbh, psS32 det_id, psS32 iteration, const char *det_type, const char *state, const char *exp_type, const char *filter, psF32 airmass, psF32 exp_time, psF32 ccd_temp, psF64 posang, const char *object, psTime* registered, psTime* use_begin, psTime* use_end)
    66596734{
    66606735    psMetadata *md = psMetadataAlloc();
     
    66766751    if (!psMetadataAdd(md, PS_LIST_TAIL, "state", PS_DATA_STRING, NULL, state)) {
    66776752        psError(PS_ERR_UNKNOWN, false, "failed to add item state");
     6753        psFree(md);
     6754        return false;
     6755    }
     6756    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, exp_type)) {
     6757        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
     6758        psFree(md);
     6759        return false;
     6760    }
     6761    if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, filter)) {
     6762        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
     6763        psFree(md);
     6764        return false;
     6765    }
     6766    if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, airmass)) {
     6767        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     6768        psFree(md);
     6769        return false;
     6770    }
     6771    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_time", PS_DATA_F32, NULL, exp_time)) {
     6772        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
     6773        psFree(md);
     6774        return false;
     6775    }
     6776    if (!psMetadataAdd(md, PS_LIST_TAIL, "ccd_temp", PS_DATA_F32, NULL, ccd_temp)) {
     6777        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     6778        psFree(md);
     6779        return false;
     6780    }
     6781    if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, posang)) {
     6782        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
     6783        psFree(md);
     6784        return false;
     6785    }
     6786    if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, object)) {
     6787        psError(PS_ERR_UNKNOWN, false, "failed to add item object");
     6788        psFree(md);
     6789        return false;
     6790    }
     6791    if (!psMetadataAdd(md, PS_LIST_TAIL, "registered", PS_DATA_TIME, NULL, registered)) {
     6792        psError(PS_ERR_UNKNOWN, false, "failed to add item registered");
     6793        psFree(md);
     6794        return false;
     6795    }
     6796    if (!psMetadataAdd(md, PS_LIST_TAIL, "use_begin", PS_DATA_TIME, NULL, use_begin)) {
     6797        psError(PS_ERR_UNKNOWN, false, "failed to add item use_begin");
     6798        psFree(md);
     6799        return false;
     6800    }
     6801    if (!psMetadataAdd(md, PS_LIST_TAIL, "use_end", PS_DATA_TIME, NULL, use_end)) {
     6802        psError(PS_ERR_UNKNOWN, false, "failed to add item use_end");
    66786803        psFree(md);
    66796804        return false;
     
    67026827bool detRunInsertObject(psDB *dbh, detRunRow *object)
    67036828{
    6704     return detRunInsert(dbh, object->det_id, object->iteration, object->det_type, object->state);
     6829    return detRunInsert(dbh, object->det_id, object->iteration, object->det_type, object->state, object->exp_type, object->filter, object->airmass, object->exp_time, object->ccd_temp, object->posang, object->object, object->registered, object->use_begin, object->use_end);
    67056830}
    67066831
     
    67956920        return false;
    67966921    }
     6922    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_type", PS_DATA_STRING, NULL, object->exp_type)) {
     6923        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_type");
     6924        psFree(md);
     6925        return false;
     6926    }
     6927    if (!psMetadataAdd(md, PS_LIST_TAIL, "filter", PS_DATA_STRING, NULL, object->filter)) {
     6928        psError(PS_ERR_UNKNOWN, false, "failed to add item filter");
     6929        psFree(md);
     6930        return false;
     6931    }
     6932    if (!psMetadataAdd(md, PS_LIST_TAIL, "airmass", PS_DATA_F32, NULL, object->airmass)) {
     6933        psError(PS_ERR_UNKNOWN, false, "failed to add item airmass");
     6934        psFree(md);
     6935        return false;
     6936    }
     6937    if (!psMetadataAdd(md, PS_LIST_TAIL, "exp_time", PS_DATA_F32, NULL, object->exp_time)) {
     6938        psError(PS_ERR_UNKNOWN, false, "failed to add item exp_time");
     6939        psFree(md);
     6940        return false;
     6941    }
     6942    if (!psMetadataAdd(md, PS_LIST_TAIL, "ccd_temp", PS_DATA_F32, NULL, object->ccd_temp)) {
     6943        psError(PS_ERR_UNKNOWN, false, "failed to add item ccd_temp");
     6944        psFree(md);
     6945        return false;
     6946    }
     6947    if (!psMetadataAdd(md, PS_LIST_TAIL, "posang", PS_DATA_F64, NULL, object->posang)) {
     6948        psError(PS_ERR_UNKNOWN, false, "failed to add item posang");
     6949        psFree(md);
     6950        return false;
     6951    }
     6952    if (!psMetadataAdd(md, PS_LIST_TAIL, "object", PS_DATA_STRING, NULL, object->object)) {
     6953        psError(PS_ERR_UNKNOWN, false, "failed to add item object");
     6954        psFree(md);
     6955        return false;
     6956    }
     6957    if (!psMetadataAdd(md, PS_LIST_TAIL, "registered", PS_DATA_TIME, NULL, object->registered)) {
     6958        psError(PS_ERR_UNKNOWN, false, "failed to add item registered");
     6959        psFree(md);
     6960        return false;
     6961    }
     6962    if (!psMetadataAdd(md, PS_LIST_TAIL, "use_begin", PS_DATA_TIME, NULL, object->use_begin)) {
     6963        psError(PS_ERR_UNKNOWN, false, "failed to add item use_begin");
     6964        psFree(md);
     6965        return false;
     6966    }
     6967    if (!psMetadataAdd(md, PS_LIST_TAIL, "use_end", PS_DATA_TIME, NULL, object->use_end)) {
     6968        psError(PS_ERR_UNKNOWN, false, "failed to add item use_end");
     6969        psFree(md);
     6970        return false;
     6971    }
    67976972
    67986973
     
    68246999        return false;
    68257000    }
    6826 
    6827     return detRunRowAlloc(det_id, iteration, det_type, state);
     7001    char* exp_type = psMetadataLookupPtr(&status, md, "exp_type");
     7002    if (!status) {
     7003        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_type");
     7004        return false;
     7005    }
     7006    char* filter = psMetadataLookupPtr(&status, md, "filter");
     7007    if (!status) {
     7008        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item filter");
     7009        return false;
     7010    }
     7011    psF32 airmass = psMetadataLookupF32(&status, md, "airmass");
     7012    if (!status) {
     7013        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item airmass");
     7014        return false;
     7015    }
     7016    psF32 exp_time = psMetadataLookupF32(&status, md, "exp_time");
     7017    if (!status) {
     7018        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item exp_time");
     7019        return false;
     7020    }
     7021    psF32 ccd_temp = psMetadataLookupF32(&status, md, "ccd_temp");
     7022    if (!status) {
     7023        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item ccd_temp");
     7024        return false;
     7025    }
     7026    psF64 posang = psMetadataLookupF64(&status, md, "posang");
     7027    if (!status) {
     7028        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item posang");
     7029        return false;
     7030    }
     7031    char* object = psMetadataLookupPtr(&status, md, "object");
     7032    if (!status) {
     7033        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item object");
     7034        return false;
     7035    }
     7036    psTime* registered = psMetadataLookupPtr(&status, md, "registered");
     7037    if (!status) {
     7038        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item registered");
     7039        return false;
     7040    }
     7041    psTime* use_begin = psMetadataLookupPtr(&status, md, "use_begin");
     7042    if (!status) {
     7043        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item use_begin");
     7044        return false;
     7045    }
     7046    psTime* use_end = psMetadataLookupPtr(&status, md, "use_end");
     7047    if (!status) {
     7048        psError(PS_ERR_UNKNOWN, true, "failed to lookup value for item use_end");
     7049        return false;
     7050    }
     7051
     7052    return detRunRowAlloc(det_id, iteration, det_type, state, exp_type, filter, airmass, exp_time, ccd_temp, posang, object, registered, use_begin, use_end);
    68287053}
    68297054psArray *detRunSelectRowObjects(psDB *dbh, const psMetadata *where, unsigned long long limit)
Note: See TracChangeset for help on using the changeset viewer.