Changeset 158

Show
Ignore:
Timestamp:
01/19/08 22:48:26 (9 months ago)
Author:
cyrusdaboo
Message:

Support local searching.

Location:
Mulberry/branches/v4.1d1/Sources_Common/VCard_Store
Files:
2 added
2 modified

Legend:

Unmodified
Added
Removed
  • Mulberry/branches/v4.1d1/Sources_Common/VCard_Store/Clients/CLocalVCardClient.cpp

    r149 r158  
    3232 
    3333#include "CVCardMapper.h" 
     34#include "CVCardSearch.h" 
    3435 
    3536#include "CVCardAddressBook.h" 
     37#include "CVCardDefinitions.h" 
    3638#include "CVCardVCard.h" 
    3739 
     
    791793        { 
    792794                // Fetch all matching addresses 
    793                 //SearchAddressBook(adbk, nick_name, CAdbkAddress::eNickName, NULL, NULL); 
     795                CAdbkAddress::CAddressFields fields; 
     796                fields.push_back(CAdbkAddress::eNickName); 
     797                SearchAddressBook(adbk, nick_name, fields, NULL, NULL); 
    794798        } 
    795799        catch (...) 
     
    836840 
    837841                // Fetch all addresses 
    838                 //SearchAddressBook(adbk, matchit, fields, &addr_list, NULL); 
     842                SearchAddressBook(adbk, matchit, fields, &addr_list, NULL); 
    839843        } 
    840844        catch (...) 
     
    978982        return result; 
    979983} 
     984 
     985void CLocalVCardClient::SearchAddressBook(CAddressBook* adbk, const cdstring& pattern, const CAdbkAddress::CAddressFields& fields, 
     986                                                                                        CAddressList* addr_list, CGroupList* grp_list) 
     987{ 
     988        // Map adbk field to vCard property 
     989        cdstrvect prop_names; 
     990        for(CAdbkAddress::CAddressFields::const_iterator iter = fields.begin(); iter != fields.end(); iter++) 
     991        { 
     992                switch(*iter) 
     993                { 
     994                case CAdbkAddress::eName: 
     995                        prop_names.push_back(vCard::cVCardProperty_FN); 
     996                        break; 
     997                case CAdbkAddress::eNickName: 
     998                        prop_names.push_back(vCard::cVCardProperty_NICKNAME); 
     999                        break; 
     1000                case CAdbkAddress::eEmail: 
     1001                        prop_names.push_back(vCard::cVCardProperty_EMAIL); 
     1002                        break; 
     1003                case CAdbkAddress::eCompany: 
     1004                        prop_names.push_back(vCard::cVCardProperty_ORG); 
     1005                        break; 
     1006                case CAdbkAddress::eAddress: 
     1007                        prop_names.push_back(vCard::cVCardProperty_ADR); 
     1008                        break; 
     1009                case CAdbkAddress::ePhoneWork: 
     1010                        prop_names.push_back(vCard::cVCardProperty_TEL); 
     1011                        break; 
     1012                case CAdbkAddress::ePhoneHome: 
     1013                        prop_names.push_back(vCard::cVCardProperty_TEL); 
     1014                        break; 
     1015                case CAdbkAddress::eFax: 
     1016                        prop_names.push_back(vCard::cVCardProperty_TEL); 
     1017                        break; 
     1018                case CAdbkAddress::eURL: 
     1019                        prop_names.push_back(vCard::cVCardProperty_URL); 
     1020                        break; 
     1021                case CAdbkAddress::eNotes: 
     1022                        prop_names.push_back(vCard::cVCardProperty_NOTE); 
     1023                        break; 
     1024                } 
     1025        } 
     1026 
     1027        // Get name for new file 
     1028        cdstring fpath = MapAdbkName(adbk); 
     1029         
     1030        // Make sure it already exists 
     1031        if (!::fileexists(fpath)) 
     1032        { 
     1033                //throw CGeneralException(-1, "Address Book file does not exist"); 
     1034                throw CGeneralException(-1); 
     1035        } 
     1036         
     1037        // Read address book from file 
     1038        cdifstream is(fpath); 
     1039        vCard::CVCardAddressBook temp; 
     1040        temp.Parse(is); 
     1041 
     1042        vcardstore::SearchVCards(temp, pattern, prop_names, adbk, addr_list); 
     1043 
     1044} 
  • Mulberry/branches/v4.1d1/Sources_Common/VCard_Store/Clients/CLocalVCardClient.h

    r149 r158  
    130130        void Append(CAddressBook* adbk, const CAddressList* add_addrs, const CGroupList* add_grps); 
    131131 
     132        void SearchAddressBook (CAddressBook* adbk, 
     133                                                        const cdstring& pattern, 
     134                                                        const CAdbkAddress::CAddressFields& fields, 
     135                                                        CAddressList* addr_list, 
     136                                                        CGroupList* grp_list); 
     137 
     138 
    132139private: 
    133140                        void    InitLocalClient();