summaryrefslogtreecommitdiff
path: root/utilities.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'utilities.cpp')
-rw-r--r--utilities.cpp109
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()