add method to get card given e-mail address

This commit is contained in:
bienvenu%netscape.com 1999-08-18 04:07:55 +00:00
Родитель cdd864e6c1
Коммит e67e36fe83
3 изменённых файлов: 32 добавлений и 0 удалений

Просмотреть файл

@ -52,6 +52,8 @@ interface nsIAddrDatabase : nsIAddrDBAnnouncer {
void EditCard(in nsIAbCard card, in boolean beNotify);
void ContainsCard(in nsIAbCard card, out boolean hasCard);
void GetCardForEmailAddress(in string emailAddress, out nsIAbCard card);
void SetAnonymousStringAttribute(in string attrname, in string value);
void GetAnonymousStringAttribute(in string attrname, out string value);
void SetAnonymousIntAttribute(in string attrname, in unsigned long value);

Просмотреть файл

@ -2269,3 +2269,30 @@ nsresult nsAddrDatabase::CreateABCard(nsIMdbRow* cardRow, nsIAbCard **result)
}
NS_IMETHODIMP nsAddrDatabase::GetCardForEmailAddress(const char *emailAddress, nsIAbCard **cardResult)
{
nsresult rv = NS_OK;
if (!cardResult)
return NS_ERROR_NULL_POINTER;
mdbYarn emailAddressYarn;
emailAddressYarn.mYarn_Buf = (void *) emailAddress;
emailAddressYarn.mYarn_Fill = PL_strlen(emailAddress);
emailAddressYarn.mYarn_Form = 0;
emailAddressYarn.mYarn_Size = emailAddressYarn.mYarn_Fill;
nsIMdbRow *cardRow;
mdbOid outRowId;
mdb_err result = GetStore()->FindRow(GetEnv(), m_CardRowScopeToken,
m_PriEmailColumnToken, &emailAddressYarn, &outRowId,
&cardRow);
if (NS_SUCCEEDED(result) && cardRow)
{
rv = CreateABCard(cardRow, cardResult);
}
else
*cardResult = nsnull;
return rv;
}

Просмотреть файл

@ -86,6 +86,9 @@ public:
NS_IMETHOD DeleteCard(nsIAbCard *newCard, PRBool notify);
NS_IMETHOD EditCard(nsIAbCard *card, PRBool notify);
NS_IMETHOD ContainsCard(nsIAbCard *card, PRBool *hasCard);
NS_IMETHOD GetCardForEmailAddress(const char *emailAddress, nsIAbCard **card);
NS_IMETHOD SetAnonymousStringAttribute(const char *attrname, const char *value);
NS_IMETHOD GetAnonymousStringAttribute(const char *attrname, char** value);
NS_IMETHOD SetAnonymousIntAttribute(const char *attrname, PRUint32 value);