Show
Ignore:
Timestamp:
01/13/08 12:24:39 (11 months ago)
Author:
cyrusdaboo
Message:

Support address book queries on multiple fields in a single request.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • Mulberry/branches/v4.1d1/Sources_Common/Mail/INET_Clients/IMSP/CIMSPClient.cp

    r148 r149  
    10191019                                                                        const cdstring& name, 
    10201020                                                                        CAdbkAddress::EAddressMatch match, 
    1021                                                                         CAdbkAddress::EAddressField field, 
     1021                                                                        const CAdbkAddress::CAddressFields& fields, 
    10221022                                                                        CAddressList& addr_list) 
    10231023{ 
     
    10311031                mSearchResults = &addr_list; 
    10321032 
    1033                 cdstring criteria; 
    1034                 switch(field) 
    1035                 { 
    1036                 case CAdbkAddress::eName: 
    1037                         criteria = cADDRESS_NAME; 
    1038                         break; 
    1039                 case CAdbkAddress::eNickName: 
    1040                         criteria = cADDRESS_ALIAS; 
    1041                         break; 
    1042                 case CAdbkAddress::eEmail: 
    1043                         criteria = cADDRESS_EMAIL; 
    1044                         break; 
    1045                 case CAdbkAddress::eCompany: 
    1046                         criteria = cADDRESS_COMPANY; 
    1047                         break; 
    1048                 case CAdbkAddress::eAddress: 
    1049                         criteria = cADDRESS_ADDRESS; 
    1050                         break; 
    1051                 case CAdbkAddress::ePhoneWork: 
    1052                         criteria = cADDRESS_PHONE_WORK; 
    1053                         break; 
    1054                 case CAdbkAddress::ePhoneHome: 
    1055                         criteria = cADDRESS_PHONE_HOME; 
    1056                         break; 
    1057                 case CAdbkAddress::eFax: 
    1058                         criteria = cADDRESS_FAX; 
    1059                         break; 
    1060                 case CAdbkAddress::eURL: 
    1061                         criteria = cADDRESS_URLS; 
    1062                         break; 
    1063                 case CAdbkAddress::eNotes: 
    1064                         criteria = cADDRESS_NOTES; 
    1065                         break; 
    1066                 default:; 
    1067                 } 
    1068  
    10691033                cdstring lookup(name); 
    10701034                CAdbkAddress::ExpandMatch(match, lookup); 
     
    10761040                INETSendString(cSpace); 
    10771041                INETSendString(adbk->GetName(), eQueueProcess); 
    1078                 INETSendString(cSpace); 
    1079                 INETSendString(criteria); 
    1080                 INETSendString(cSpace); 
    1081                 INETSendString(lookup, eQueueProcess); 
     1042                for(CAdbkAddress::CAddressFields::const_iterator iter = fields.begin(); iter != fields.end(); iter++) 
     1043                { 
     1044                        cdstring criteria; 
     1045                        switch(*iter) 
     1046                        { 
     1047                        case CAdbkAddress::eName: 
     1048                                criteria = cADDRESS_NAME; 
     1049                                break; 
     1050                        case CAdbkAddress::eNickName: 
     1051                                criteria = cADDRESS_ALIAS; 
     1052                                break; 
     1053                        case CAdbkAddress::eEmail: 
     1054                                criteria = cADDRESS_EMAIL; 
     1055                                break; 
     1056                        case CAdbkAddress::eCompany: 
     1057                                criteria = cADDRESS_COMPANY; 
     1058                                break; 
     1059                        case CAdbkAddress::eAddress: 
     1060                                criteria = cADDRESS_ADDRESS; 
     1061                                break; 
     1062                        case CAdbkAddress::ePhoneWork: 
     1063                                criteria = cADDRESS_PHONE_WORK; 
     1064                                break; 
     1065                        case CAdbkAddress::ePhoneHome: 
     1066                                criteria = cADDRESS_PHONE_HOME; 
     1067                                break; 
     1068                        case CAdbkAddress::eFax: 
     1069                                criteria = cADDRESS_FAX; 
     1070                                break; 
     1071                        case CAdbkAddress::eURL: 
     1072                                criteria = cADDRESS_URLS; 
     1073                                break; 
     1074                        case CAdbkAddress::eNotes: 
     1075                                criteria = cADDRESS_NOTES; 
     1076                                break; 
     1077                        default:; 
     1078                        } 
     1079 
     1080                        INETSendString(cSpace); 
     1081                        INETSendString(criteria); 
     1082                        INETSendString(cSpace); 
     1083                        INETSendString(lookup, eQueueProcess); 
     1084                } 
    10821085                INETFinishSend(); 
    10831086