[Igarden-commit] Garden/source/SourceMaterialDB AttributeDictionary.cpp, 1.41.2.1, 1.41.2.2 Attrib
Status: Beta
Brought to you by:
jlbedell
|
From: Jeffrey B. <jlb...@us...> - 2006-12-12 00:50:51
|
Update of /cvsroot/igarden/Garden/source/SourceMaterialDB In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv27064 Modified Files: Tag: Release_branch_v1 AttributeDictionary.cpp AttributeDictionary.h Log Message: Improve performance of startup by only merging source material when changed. Index: AttributeDictionary.cpp =================================================================== RCS file: /cvsroot/igarden/Garden/source/SourceMaterialDB/AttributeDictionary.cpp,v retrieving revision 1.41.2.1 retrieving revision 1.41.2.2 diff -C2 -d -r1.41.2.1 -r1.41.2.2 *** AttributeDictionary.cpp 2 Nov 2006 23:47:32 -0000 1.41.2.1 --- AttributeDictionary.cpp 12 Dec 2006 00:50:46 -0000 1.41.2.2 *************** *** 903,935 **** case kAttrSuppliers: { - const char *ptr2, *ptrNext; - char uidStr[64]; - RGDateTime dateObj; - XGUUID uid; - - dateObj.Now(); - for(ptr2 = txt; ptr2 != NULL; ) - { - ptrNext = strchr(ptr2, ','); - if(ptrNext != NULL) - { - strncpy(uidStr, ptr2, ptrNext-ptr2); - uidStr[ptrNext-ptr2] = 0; - } - else - strcpy(uidStr, ptr2); - StringToUUID(uidStr, uid); - if(SourceMaterialFile::GetSourceDatabase()->LookupSupplier(uid) != NULL) - persist->SetDatedReference(attrID, uid, dateObj); - ptr2 = ptrNext; - if(ptr2 != NULL) - { - ptr2++; - while(*ptr2 == ' ') - ptr2++; - if(*ptr2 == '\0') - ptr2 = NULL; - } - } } break; --- 903,906 ---- *************** *** 938,941 **** --- 909,946 ---- } } + + void AttributeDictionary::ConvertXMLToSupplierValue(const char *txt, attributeID_t attrID, RGDateTime &date, Persist* persist) + { + attributeType_t type = _infoValues[attrID].typeVal; + MyAssert(type == kAttrSuppliers); + const char *ptr2, *ptrNext; + char uidStr[64]; + XGUUID uid; + + for(ptr2 = txt; ptr2 != NULL; ) + { + ptrNext = strchr(ptr2, ','); + if(ptrNext != NULL) + { + strncpy(uidStr, ptr2, ptrNext-ptr2); + uidStr[ptrNext-ptr2] = 0; + } + else + strcpy(uidStr, ptr2); + StringToUUID(uidStr, uid); + if(SourceMaterialFile::GetSourceDatabase()->LookupSupplier(uid) != NULL) + persist->SetDatedReference(attrID, uid, date); + ptr2 = ptrNext; + if(ptr2 != NULL) + { + ptr2++; + while(*ptr2 == ' ') + ptr2++; + if(*ptr2 == '\0') + ptr2 = NULL; + } + } + } + #endif *************** *** 1066,1070 **** ViewClass* vc4 = ViewClass::GetViewClass(kVariantsCID); vc4->AddProperty(kFieldVariantName, kTagFieldVariantName, kStringField); ! ViewClass* vc6 = ViewClass::GetViewClass(kInstanceAttributesCID); --- 1071,1075 ---- ViewClass* vc4 = ViewClass::GetViewClass(kVariantsCID); vc4->AddProperty(kFieldVariantName, kTagFieldVariantName, kStringField); ! vc4->AddProperty(kFieldSuppliers, "suppliers", kIndexedField); ViewClass* vc6 = ViewClass::GetViewClass(kInstanceAttributesCID); Index: AttributeDictionary.h =================================================================== RCS file: /cvsroot/igarden/Garden/source/SourceMaterialDB/AttributeDictionary.h,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -C2 -d -r1.9 -r1.9.2.1 *** AttributeDictionary.h 1 Feb 2006 23:54:32 -0000 1.9 --- AttributeDictionary.h 12 Dec 2006 00:50:46 -0000 1.9.2.1 *************** *** 76,79 **** --- 76,80 ---- static long ConvertXMLToBitfield(const char *txt, attributeID_t attrID); static long ConvertXMLToBitfieldRange(const char *txt, attributeID_t attrID); + static void ConvertXMLToSupplierValue(const char *txt, attributeID_t attrID, RGDateTime &date, Persist* persist); // attributes |