Changeset - 12a207a3a393
[Not reviewed]
0 5 0
HanzZ - 14 years ago 2011-09-11 12:09:07
hanzz.k@gmail.com
setUserOnline implemented in sqlite3/mysql backend
5 files changed with 22 insertions and 2 deletions:
0 comments (0 inline, 0 general)
include/transport/mysqlbackend.h
Show inline comments
 
@@ -146,6 +146,7 @@ class MySQLBackend : public StorageBackend
 
		Statement *m_updateBuddySetting;
 
		Statement *m_getBuddies;
 
		Statement *m_getBuddiesSettings;
 
		Statement *m_setUserOnline;
 
};
 

	
 
}
include/transport/sqlite3backend.h
Show inline comments
 
@@ -114,6 +114,7 @@ class SQLite3Backend : public StorageBackend
 
		sqlite3_stmt *m_updateBuddySetting;
 
		sqlite3_stmt *m_getBuddies;
 
		sqlite3_stmt *m_getBuddiesSettings;
 
		sqlite3_stmt *m_setUserOnline;
 
};
 

	
 
}
src/mysqlbackend.cpp
Show inline comments
 
@@ -275,6 +275,7 @@ MySQLBackend::~MySQLBackend(){
 
	delete m_setUserSetting;
 
	delete m_updateUserSetting;
 
	delete m_updateBuddySetting;
 
	delete m_setUserOnline;
 
	mysql_close(&m_conn);
 
}
 

	
 
@@ -313,6 +314,8 @@ bool MySQLBackend::connect() {
 
	m_setUserSetting = new Statement(&m_conn, "isis", "INSERT INTO " + m_prefix + "users_settings (user_id, var, type, value) VALUES (?,?,?,?)");
 
	m_updateUserSetting = new Statement(&m_conn, "sis", "UPDATE " + m_prefix + "users_settings SET value=? WHERE user_id=? AND var=?");
 

	
 
	m_setUserOnline = new Statement(&m_conn, "bi", "UPDATE " + m_prefix + "users SET online=?, last_login=NOW()  WHERE id=?");
 

	
 
	return true;
 
}
 

	
 
@@ -402,7 +405,8 @@ bool MySQLBackend::getUser(const std::string &barejid, UserInfo &user) {
 
}
 

	
 
void MySQLBackend::setUserOnline(long id, bool online) {
 
	
 
	*m_setUserOnline << online << id;
 
	m_setUserOnline->execute();
 
}
 

	
 
long MySQLBackend::addBuddy(long userId, const BuddyInfo &buddyInfo) {
src/rostermanager.cpp
Show inline comments
 
@@ -491,6 +491,14 @@ void RosterManager::sendUnavailablePresences(const Swift::JID &to) {
 
			m_component->getStanzaChannel()->sendPresence(presence);
 
		}
 
	}
 

	
 
	// in gateway mode, we have to send unavailable presence for transport
 
	// contact
 
	Swift::Presence::ref response = Swift::Presence::create();
 
	response->setTo(to);
 
	response->setFrom(m_component->getJID());
 
	response->setType(Swift::Presence::Unavailable);
 
	m_component->getStanzaChannel()->sendPresence(response);
 
}
 

	
 
}
src/sqlite3backend.cpp
Show inline comments
 
@@ -97,6 +97,7 @@ SQLite3Backend::~SQLite3Backend(){
 
		FINALIZE_STMT(m_setUserSetting);
 
		FINALIZE_STMT(m_updateUserSetting);
 
		FINALIZE_STMT(m_updateBuddySetting);
 
		FINALIZE_STMT(m_setUserOnline);
 
		sqlite3_close(m_db);
 
	}
 
}
 
@@ -129,6 +130,8 @@ bool SQLite3Backend::connect() {
 
	PREP_STMT(m_setUserSetting, "INSERT INTO " + m_prefix + "users_settings (user_id, var, type, value) VALUES (?,?,?,?)");
 
	PREP_STMT(m_updateUserSetting, "UPDATE " + m_prefix + "users_settings SET value=? WHERE user_id=? AND var=?");
 

	
 
	PREP_STMT(m_setUserOnline, "UPDATE " + m_prefix + "users SET online=?, last_login=DATETIME('NOW') WHERE id=?");
 

	
 
	return true;
 
}
 

	
 
@@ -239,7 +242,10 @@ bool SQLite3Backend::getUser(const std::string &barejid, UserInfo &user) {
 
}
 

	
 
void SQLite3Backend::setUserOnline(long id, bool online) {
 
	
 
	BEGIN(m_setUserOnline);
 
	BIND_INT(m_setUserOnline, (int)online);
 
	BIND_INT(m_setUserOnline, id);
 
	EXECUTE_STATEMENT(m_setUserOnline, "setUserOnline query");
 
}
 

	
 
long SQLite3Backend::addBuddy(long userId, const BuddyInfo &buddyInfo) {
0 comments (0 inline, 0 general)