Changeset 14414
- Timestamp:
- Aug 6, 2007, 1:54:24 PM (19 years ago)
- File:
-
- 1 edited
-
trunk/psLib/src/types/psMetadataConfig.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/types/psMetadataConfig.c
r14030 r14414 11 11 * @author Joshua Hoblitt, University of Hawaii 2006-2007 12 12 * 13 * @version $Revision: 1.13 7$ $Name: not supported by cvs2svn $14 * @date $Date: 2007-0 7-06 02:07:57$13 * @version $Revision: 1.138 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2007-08-06 23:54:24 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 678 678 psS32 status = 0; 679 679 psMetadata* md = NULL; 680 psF64 tempDbl = 0.0;681 bool tempBool = false;682 psS64 tempInt = 0;683 psU64 tempUint = 0;684 psVector* tempVec = NULL;685 char* tempStr = NULL;686 680 psArray* nonUniqueKeys = NULL; 687 681 psMetadata* tempMeta = NULL; 688 682 p_psParseLevelInfo* nextLevelInfo = NULL; 689 psTime *mTime;690 psTimeType timeType = PS_TIME_TAI;691 683 692 684 long level = psArrayLength(levelArray) - 1; … … 845 837 } 846 838 839 #define PARSE_ADD_CASE(NAME, TYPE, PARSEFUNC) \ 840 case PS_DATA_##NAME: { \ 841 ps##TYPE value = PARSEFUNC(strValue, &status); \ 842 if (!status) { \ 843 addStatus = psMetadataAdd##TYPE(md, PS_LIST_TAIL, keyName, flags, strComment, value); \ 844 } else { \ 845 psError(PS_ERR_IO, true, \ 846 _("Failed to parse the value '%s' of metadata item %s, type %s."), \ 847 strValue, keyName, strType); \ 848 returnValue = false; \ 849 } \ 850 break; \ 851 } 852 847 853 // Need to add item to metadata so get pointer to metadata 848 854 status = 0; … … 850 856 nonUniqueKeys = ((p_psParseLevelInfo*)(levelArray->data[level]))->nonUniqueKeyArray; 851 857 switch(mdType) { 852 case PS_DATA_STRING: 853 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, 854 mdType | flags, 855 strComment, strValue); 856 break; 857 case PS_DATA_BOOL: 858 tempBool = parseBool(strValue, &status); 859 if(!status) { 860 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, 861 mdType | flags, 862 strComment, tempBool); 863 } else { 864 psError(PS_ERR_IO, true, 865 _("Failed to parse the value '%s' of metadata item %s, type %s."), 858 PARSE_ADD_CASE(BOOL, Bool, parseBool); 859 PARSE_ADD_CASE(F32, F32, parseDouble); 860 PARSE_ADD_CASE(F64, F64, parseDouble); 861 PARSE_ADD_CASE(S8, S8, parseSignedInt); 862 PARSE_ADD_CASE(S16, S16, parseSignedInt); 863 PARSE_ADD_CASE(S32, S32, parseSignedInt); 864 PARSE_ADD_CASE(S64, S64, parseSignedInt); 865 PARSE_ADD_CASE(U8, U8, parseUnsignedInt); 866 PARSE_ADD_CASE(U16, U16, parseUnsignedInt); 867 PARSE_ADD_CASE(U32, U32, parseUnsignedInt); 868 PARSE_ADD_CASE(U64, U64, parseUnsignedInt); 869 case PS_DATA_STRING: 870 addStatus = psMetadataAddStr(md, PS_LIST_TAIL, keyName, flags, strComment, strValue); 871 break; 872 case PS_DATA_TIME: { 873 psTimeType timeType = PS_TIME_TAI; 874 if(!strncmp(strType, "UTC", 3)) { 875 timeType = PS_TIME_UTC; 876 } else if(!strncmp(strType, "TAI", 3)) { 877 timeType = PS_TIME_TAI; 878 } else if(!strncmp(strType, "UT1", 3)) { 879 timeType = PS_TIME_UT1; 880 } else if(!strncmp(strType, "TT", 3)) { 881 timeType = PS_TIME_TT; 882 } 883 884 psTime *mTime = parseTime(strValue, timeType, &status); 885 if(!status) { 886 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, 887 mdType | flags, 888 strComment, mTime); 889 } else { 890 psError(PS_ERR_IO, true, 891 _("Failed to parse the value '%s' of metadata item %s, type %s."), 866 892 strValue, keyName, strType); 867 returnValue = false; 868 } 869 break; 870 case PS_DATA_F32: 871 case PS_DATA_F64: 872 tempDbl = parseDouble(strValue, &status); 873 if(!status) { 874 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, 875 mdType | flags, 876 strComment, tempDbl); 877 } else { 878 psError(PS_ERR_IO, true, 879 _("Failed to parse the value '%s' of metadata item %s, type %s."), 893 returnValue = false; 894 } 895 psFree(mTime); 896 break; 897 } 898 case PS_DATA_VECTOR: { 899 psVector *tempVec = parseVector(strValue, vectorType, &status); 900 if(!status) { 901 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName+1, 902 mdType | flags, 903 strComment, tempVec); 904 } else { 905 psError(PS_ERR_IO, true, 906 _("Failed to parse the value '%s' of metadata item %s, type %s."), 880 907 strValue, keyName, strType); 881 returnValue = false; 882 } 883 break; 884 case PS_DATA_S8: 885 tempInt = (psS8) parseSignedInt(strValue, &status); 886 if(!status) { 887 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, mdType | flags, 888 strComment, tempInt); 889 } else { 890 psError(PS_ERR_IO, true, 891 _("Failed to parse the value '%s' of metadata item %s, type %s."), 892 strValue, keyName, strType); 893 returnValue = false; 894 } 895 break; 896 case PS_DATA_S16: 897 tempInt = (psS16) parseSignedInt(strValue, &status); 898 if(!status) { 899 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, mdType | flags, 900 strComment, tempInt); 901 } else { 902 psError(PS_ERR_IO, true, 903 _("Failed to parse the value '%s' of metadata item %s, type %s."), 904 strValue, keyName, strType); 905 returnValue = false; 906 } 907 break; 908 case PS_DATA_S32: 909 tempInt = (psS32) parseSignedInt(strValue, &status); 910 if(!status) { 911 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, mdType | flags, 912 strComment, tempInt); 913 } else { 914 psError(PS_ERR_IO, true, 915 _("Failed to parse the value '%s' of metadata item %s, type %s."), 916 strValue, keyName, strType); 917 returnValue = false; 918 } 919 break; 920 case PS_DATA_S64: 921 tempInt = (psS64) parseSignedInt(strValue, &status); 922 if(!status) { 923 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, mdType | flags, 924 strComment, tempInt); 925 } else { 926 psError(PS_ERR_IO, true, 927 _("Failed to parse the value '%s' of metadata item %s, type %s."), 928 strValue, keyName, strType); 929 returnValue = false; 930 } 931 break; 932 case PS_DATA_U8: 933 tempUint = (psU8)parseUnsignedInt(strValue, &status); 934 if(!status) { 935 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, mdType | flags, 936 strComment, tempUint); 937 } else { 938 psError(PS_ERR_IO, true, 939 _("Failed to parse the value '%s' of metadata item %s, type %s."), 940 strValue, keyName, strType); 941 returnValue = false; 942 } 943 break; 944 case PS_DATA_U16: 945 tempUint = (psU16)parseUnsignedInt(strValue, &status); 946 if(!status) { 947 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, mdType | flags, 948 strComment, tempUint); 949 } else { 950 psError(PS_ERR_IO, true, 951 _("Failed to parse the value '%s' of metadata item %s, type %s."), 952 strValue, keyName, strType); 953 returnValue = false; 954 } 955 break; 956 case PS_DATA_U32: 957 tempUint = (psU32)parseUnsignedInt(strValue, &status); 958 if(!status) { 959 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, mdType | flags, 960 strComment, tempUint); 961 } else { 962 psError(PS_ERR_IO, true, 963 _("Failed to parse the value '%s' of metadata item %s, type %s."), 964 strValue, keyName, strType); 965 returnValue = false; 966 } 967 break; 968 case PS_DATA_U64: 969 tempUint = (psU64)parseUnsignedInt(strValue, &status); 970 if(!status) { 971 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, mdType | flags, 972 strComment, tempUint); 973 } else { 974 psError(PS_ERR_IO, true, 975 _("Failed to parse the value '%s' of metadata item %s, type %s."), 976 strValue, keyName, strType); 977 returnValue = false; 978 } 979 break; 980 case PS_DATA_TIME: 981 if(!strncmp(strType, "UTC", 3)) { 982 timeType = PS_TIME_UTC; 983 } else if(!strncmp(strType, "TAI", 3)) { 984 timeType = PS_TIME_TAI; 985 } else if(!strncmp(strType, "UT1", 3)) { 986 timeType = PS_TIME_UT1; 987 } else if(!strncmp(strType, "TT", 3)) { 988 timeType = PS_TIME_TT; 989 } 990 991 mTime = parseTime(strValue, timeType, &status); 992 if(!status) { 993 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName, 994 mdType | flags, 995 strComment, mTime); 996 } else { 997 psError(PS_ERR_IO, true, 998 _("Failed to parse the value '%s' of metadata item %s, type %s."), 999 strValue, keyName, strType); 1000 returnValue = false; 1001 } 1002 psFree(mTime); 1003 break; 1004 case PS_DATA_VECTOR: 1005 tempVec = parseVector(strValue, vectorType, &status); 1006 if(!status) { 1007 addStatus = psMetadataAdd(md, PS_LIST_TAIL, keyName+1, 1008 mdType | flags, 1009 strComment, tempVec); 1010 } else { 1011 psError(PS_ERR_IO, true, 1012 _("Failed to parse the value '%s' of metadata item %s, type %s."), 1013 strValue, keyName, strType); 1014 returnValue = false; 1015 } 1016 psFree(tempVec); 1017 break; 908 returnValue = false; 909 } 910 psFree(tempVec); 911 break; 912 } 1018 913 case PS_DATA_METADATA_MULTI: 1019 914 // Add key to non-unique array of keys … … 1027 922 } 1028 923 } 1029 tempStr = psStringCopy(keyName);924 psString tempStr = psStringCopy(keyName); 1030 925 nonUniqueKeys = psArrayAdd(nonUniqueKeys,0,tempStr); 1031 926 addStatus = true; … … 1547 1442 break; 1548 1443 case PS_DATA_STRING: { 1549 bool valid = false;1550 if (item->data.str && strlen(item->data.str) > 0) {1551 char *p = item->data.str;1552 while (*p && isblank(*p)) p++;1553 if (*p) valid = true;1554 }1555 if (valid) {1556 psStringAppend(&content, "%-15s %-8s %-15s",1557 item->name, "STR", item->data.str);1558 } else {1559 psStringAppend(&content, "%-15s %-8s %-15s",1560 item->name, "STR", "NULL");1561 }1562 if (item->comment && strncmp(item->comment,"",2)) {1563 psStringAppend(&content, " # %s", item->comment);1564 }1565 psStringAppend(&content, " \n");1566 break;1444 bool valid = false; 1445 if (item->data.str && strlen(item->data.str) > 0) { 1446 char *p = item->data.str; 1447 while (*p && isblank(*p)) p++; 1448 if (*p) valid = true; 1449 } 1450 if (valid) { 1451 psStringAppend(&content, "%-15s %-8s %-15s", 1452 item->name, "STR", item->data.str); 1453 } else { 1454 psStringAppend(&content, "%-15s %-8s %-15s", 1455 item->name, "STR", "NULL"); 1456 } 1457 if (item->comment && strncmp(item->comment,"",2)) { 1458 psStringAppend(&content, " # %s", item->comment); 1459 } 1460 psStringAppend(&content, " \n"); 1461 break; 1567 1462 } 1568 1463 case PS_DATA_METADATA: {
Note:
See TracChangeset
for help on using the changeset viewer.
