diff options
Diffstat (limited to 'utilities.cpp')
-rw-r--r-- | utilities.cpp | 109 |
1 files changed, 80 insertions, 29 deletions
diff --git a/utilities.cpp b/utilities.cpp index 986edbc..99c6603 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -38,9 +38,10 @@ int GetJabberInterface(WPARAM, LPARAM) //get interface for all jabber accounts, PROTOACCOUNT **accounts; ProtoEnumAccounts(&count, &accounts); list <JabberAccount*>::iterator p; + Accounts.clear(); Accounts.push_back(new JabberAccount); p = Accounts.begin(); - (*p)->AccountNumber = 0; + (*p)->setAccountNumber(0); for(int i = 0; i < count; i++) //get only jabber accounts from all accounts { char *tmp = mir_u2a(accounts[i]->tszAccountName); @@ -48,10 +49,12 @@ int GetJabberInterface(WPARAM, LPARAM) //get interface for all jabber accounts, int a = 0; if(JIftmp) { - (*p)->JabberInterface = JIftmp; - (*p)->AccountName = accounts[i]->tszAccountName; - (*p)->AccountNumber = a; - (*p)->hIqHandler = (*p)->hMessageHandler = (*p)->hPrescenseHandler = INVALID_HANDLE_VALUE; + (*p)->setJabberInterface(JIftmp); + (*p)->setAccountName(accounts[i]->tszAccountName); + (*p)->setAccountNumber(a); + (*p)->setIqHandler(INVALID_HANDLE_VALUE); + (*p)->setMessageHandler(INVALID_HANDLE_VALUE); + (*p)->setPrescenseHandler(INVALID_HANDLE_VALUE); a++; p++; Accounts.push_back(new JabberAccount); @@ -75,18 +78,16 @@ int HandleDbNewContact(WPARAM w, LPARAM l) { if(!(*p)) break; - IJabberSysInterface *ijsys = (*p)->JabberInterface->Sys(); - LPTSTR tmp = ijsys->ContactToJID(HANDLE(w)); + LPTSTR tmp = (*p)->getJabberInterface()->Sys()->ContactToJID(HANDLE(w)); if(tmp) { if(_tcsstr(_T(JUICK_JID), tmp)) { - if((*p)->hPrescenseHandler == INVALID_HANDLE_VALUE && (*p)->hMessageHandler == INVALID_HANDLE_VALUE && (*p)->hIqHandler == INVALID_HANDLE_VALUE) + if((*p)->getPrescenseHandler() == INVALID_HANDLE_VALUE && (*p)->getMessageHandler() == INVALID_HANDLE_VALUE && (*p)->getIqHandler() == INVALID_HANDLE_VALUE) { - IJabberNetInterface *ijnet = (*p)->JabberInterface->Net(); - (*p)->hPrescenseHandler = ijnet->AddPresenceHandler((JABBER_HANDLER_FUNC)PrescenseHandler); - (*p)->hMessageHandler = ijnet->AddMessageHandler((JABBER_HANDLER_FUNC)MessageHandler, JABBER_MESSAGE_TYPE_ANY, 0, 0); - (*p)->hIqHandler = ijnet->AddIqHandler((JABBER_HANDLER_FUNC)IqHandler, JABBER_IQ_TYPE_ANY, 0, 0); + (*p)->setPrescenseHandler((*p)->getJabberInterface()->Net()->AddPresenceHandler((JABBER_HANDLER_FUNC)PrescenseHandler)); + (*p)->setMessageHandler((*p)->getJabberInterface()->Net()->AddMessageHandler((JABBER_HANDLER_FUNC)MessageHandler, JABBER_MESSAGE_TYPE_ANY, 0, 0)); + (*p)->setIqHandler((*p)->getJabberInterface()->Net()->AddIqHandler((JABBER_HANDLER_FUNC)IqHandler, JABBER_IQ_TYPE_ANY, 0, 0)); } } } @@ -100,18 +101,16 @@ int HandleDbContactDeleted(WPARAM w, LPARAM l) { if(!(*p)) break; - IJabberSysInterface *ijsys = (*p)->JabberInterface->Sys(); - LPTSTR tmp = ijsys->ContactToJID(HANDLE(w)); + LPTSTR tmp = (*p)->getJabberInterface()->Sys()->ContactToJID(HANDLE(w)); if(tmp) { if(_tcsstr(_T(JUICK_JID), tmp)) { - if((*p)->hPrescenseHandler != INVALID_HANDLE_VALUE && (*p)->hMessageHandler != INVALID_HANDLE_VALUE && (*p)->hIqHandler != INVALID_HANDLE_VALUE) + if((*p)->getPrescenseHandler() != INVALID_HANDLE_VALUE && (*p)->getMessageHandler() != INVALID_HANDLE_VALUE && (*p)->getIqHandler() != INVALID_HANDLE_VALUE) { - IJabberNetInterface *ijnet = (*p)->JabberInterface->Net(); - ijnet->RemoveHandler((*p)->hPrescenseHandler); - ijnet->RemoveHandler((*p)->hMessageHandler); - ijnet->RemoveHandler((*p)->hIqHandler); + (*p)->getJabberInterface()->Net()->RemoveHandler((*p)->getPrescenseHandler()); + (*p)->getJabberInterface()->Net()->RemoveHandler((*p)->getMessageHandler()); + (*p)->getJabberInterface()->Net()->RemoveHandler((*p)->getIqHandler()); } } } @@ -126,20 +125,19 @@ void FindJuickAccounts() { if(!(*p)) break; - IJabberSysInterface *ijsys = (*p)->JabberInterface->Sys(); - if(ijsys->ContactFromJID(_T(JUICK_JID))) //i should use this contact handler + if((*p)->getJabberInterface()->Sys()->ContactFromJID(_T(JUICK_JID))) //i should use this contact handler { - if((*p)->hPrescenseHandler == INVALID_HANDLE_VALUE && (*p)->hMessageHandler == INVALID_HANDLE_VALUE && (*p)->hIqHandler == INVALID_HANDLE_VALUE) + if((*p)->getPrescenseHandler() == INVALID_HANDLE_VALUE && (*p)->getMessageHandler() == INVALID_HANDLE_VALUE && (*p)->getIqHandler() == INVALID_HANDLE_VALUE) { - IJabberNetInterface *ijnet = (*p)->JabberInterface->Net(); - (*p)->hPrescenseHandler = ijnet->AddPresenceHandler((JABBER_HANDLER_FUNC)PrescenseHandler); - (*p)->hMessageHandler = ijnet->AddMessageHandler((JABBER_HANDLER_FUNC)MessageHandler, JABBER_MESSAGE_TYPE_ANY, 0, 0); - (*p)->hIqHandler = ijnet->AddIqHandler((JABBER_HANDLER_FUNC)IqHandler, JABBER_IQ_TYPE_ANY, 0, 0); + (*p)->setPrescenseHandler((*p)->getJabberInterface()->Net()->AddPresenceHandler((JABBER_HANDLER_FUNC)PrescenseHandler)); + (*p)->setMessageHandler((*p)->getJabberInterface()->Net()->AddMessageHandler((JABBER_HANDLER_FUNC)MessageHandler, JABBER_MESSAGE_TYPE_ANY, 0, 0)); + (*p)->setIqHandler((*p)->getJabberInterface()->Net()->AddIqHandler((JABBER_HANDLER_FUNC)IqHandler, JABBER_IQ_TYPE_ANY, 0, 0)); } } } } + static JABBER_HANDLER_FUNC PrescenseHandler(IJabberInterface *ji, HXML node, void *pUserData) { return FALSE; @@ -158,13 +156,66 @@ static JABBER_HANDLER_FUNC IqHandler(IJabberInterface *ji, HXML node, void *pUse return FALSE; } +//JabberAccount class implementation -JabberAccount::JabberAccount() +void JabberAccount::setAccountName(TCHAR *Name) +{ + AccountName = Name; +} +void JabberAccount::setAccountNumber(int Number) +{ + AccountNumber = Number; +} +void JabberAccount::setJabberInterface(IJabberInterface *JIf) +{ + JabberInterface = JIf; +} +void JabberAccount::setPrescenseHandler(HANDLE hHandler) { - AccountName = _T(""); - AccountNumber = 0; + hPrescenseHandler = hHandler; +} +void JabberAccount::setMessageHandler(HANDLE hHandler) +{ + hMessageHandler = hHandler; +} +void JabberAccount::setIqHandler(HANDLE hHandler) +{ + hIqHandler = hHandler; +} +TCHAR *JabberAccount::getAccountName() +{ + return AccountName; } +int JabberAccount::getAccountNumber() +{ + return AccountNumber; +} +IJabberInterface *JabberAccount::getJabberInterface() +{ + return JabberInterface; +} +HANDLE JabberAccount::getMessageHandler() +{ + return hMessageHandler; +} +HANDLE JabberAccount::getPrescenseHandler() +{ + return hPrescenseHandler; +} +HANDLE JabberAccount::getIqHandler() +{ + return hIqHandler; +} +HANDLE JabberAccount::getJuickContact() +{ + HANDLE hContact; + if(hContact = JabberInterface->Sys()->ContactFromJID(_T(JUICK_JID))) + return hContact; + return INVALID_HANDLE_VALUE; //TODO: implement this +} + +//end JabberAccount class implementation char *date() |