summaryrefslogtreecommitdiff
path: root/protocols/Skype/src/skype_subclassing.cpp
blob: 04b4a82b747d9909d11b2766635bb8c938782b12 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include "skype_subclassing.h"

Account* CSkype::newAccount(int oid) 
{ 
	return new CAccount(oid, this); 
}

CAccount::CAccount(unsigned int oid, SERootObject* root) : Account(oid, root) 
{
	this->isLoggedOut = true;
}

void CAccount::OnChange(int prop)
{
  if (prop == Account::P_STATUS)
  {
	  Account::STATUS loginStatus;
	  this->GetPropStatus(loginStatus);
	  if (loginStatus == Account::LOGGED_IN)  
		  this->isLoggedOut = false;
		
		if (loginStatus == Account::LOGGED_OUT) 
		{ 
			this->isLoggedOut = true; 
			Account::LOGOUTREASON whyLogout;
			this->GetPropLogoutreason(whyLogout);
			/*if (whyLogout != Account::LOGOUT_CALLED)
			{
				printf("%s\n", (const char*)tostring(whyLogout));
			}*/
		}
	}
};

void CAccount::BlockWhileLoggingIn()
{
  while (this->isLoggedOut) 
	  Sleep(1); 
}

void CAccount::BlockWhileLoggingOut()
{
  while ( !this->isLoggedOut) 
	  Sleep(1);
};