Files @ 62e6bdab3c02
Branch filter:

Location: libtransport.git/backends/libircclient-qt/session.cpp - annotation

HanzZ
call malloc_trim also in PurpleAccount destructor
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
8e03fbec4701
1ebe5535c4f3
0a33a3100eb9
1ebe5535c4f3
0a33a3100eb9
0a33a3100eb9
2a40419b2bc4
1ebe5535c4f3
1ebe5535c4f3
52991c925d39
52991c925d39
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
2a40419b2bc4
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
0a33a3100eb9
1ebe5535c4f3
1ebe5535c4f3
0a33a3100eb9
1ebe5535c4f3
1ebe5535c4f3
0a33a3100eb9
0a33a3100eb9
8e03fbec4701
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
457d19d1ec41
457d19d1ec41
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
1ebe5535c4f3
1ebe5535c4f3
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
164704c8aa6c
1ebe5535c4f3
1ebe5535c4f3
457d19d1ec41
457d19d1ec41
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
ec94eefaf4aa
ec94eefaf4aa
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
1ebe5535c4f3
1ebe5535c4f3
a1eba9bedbbd
a1eba9bedbbd
a1eba9bedbbd
a1eba9bedbbd
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
2add374fbd61
2add374fbd61
2add374fbd61
2add374fbd61
2add374fbd61
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
0a33a3100eb9
52991c925d39
52991c925d39
52991c925d39
a1eba9bedbbd
a1eba9bedbbd
a1eba9bedbbd
a1eba9bedbbd
a1eba9bedbbd
a1eba9bedbbd
0a33a3100eb9
0a33a3100eb9
0a33a3100eb9
0a33a3100eb9
0a33a3100eb9
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
8e03fbec4701
0a33a3100eb9
0a33a3100eb9
0a33a3100eb9
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
1ebe5535c4f3
/*
 * Copyright (C) 2008-2009 J-P Nurmi jpnurmi@gmail.com
 *
 * This example is free, and not covered by LGPL license. There is no
 * restriction applied to their modification, redistribution, using and so on.
 * You can study them, modify them, use them in your own program - either
 * completely or partially. By using it you may give me some credits in your
 * program, but you don't have to.
 */

#include "session.h"
#include <QtCore>
#include <iostream>
#include "Swiften/Elements/StatusShow.h"

MyIrcSession::MyIrcSession(const std::string &user, NetworkPlugin *np, QObject* parent) : Irc::Session(parent)
{
	this->np = np;
	this->user = user;
	connect(this, SIGNAL(disconnected()), SLOT(on_disconnected()));
}

void MyIrcSession::on_connected(){
	std::cout << "connected:\n";
}

void MyIrcSession::on_disconnected()
{
    std::cout << "disconnected:\n";
    np->handleDisconnected(user, "", 0, "");
}

void MyIrcSession::on_bufferAdded(Irc::Buffer* buffer)
{
    qDebug() << "buffer added:" << buffer->receiver();
}

void MyIrcSession::on_bufferRemoved(Irc::Buffer* buffer)
{
    qDebug() << "buffer removed:" << buffer->receiver();
}

Irc::Buffer* MyIrcSession::createBuffer(const QString& receiver)
{
    return new MyIrcBuffer(receiver, user, np, this);
}

MyIrcBuffer::MyIrcBuffer(const QString& receiver, const std::string &user, NetworkPlugin *np, Irc::Session* parent)
    : Irc::Buffer(receiver, parent)
{
	this->np = np;
	this->user = user;
	p = (MyIrcSession *) parent;
    connect(this, SIGNAL(receiverChanged(QString)), SLOT(on_receiverChanged(QString)));
    connect(this, SIGNAL(joined(QString)), SLOT(on_joined(QString)));
    connect(this, SIGNAL(parted(QString, QString)), SLOT(on_parted(QString, QString)));
    connect(this, SIGNAL(quit(QString, QString)), SLOT(on_quit(QString, QString)));
    connect(this, SIGNAL(nickChanged(QString, QString)), SLOT(on_nickChanged(QString, QString)));
    connect(this, SIGNAL(modeChanged(QString, QString, QString)), SLOT(on_modeChanged(QString, QString, QString)));
    connect(this, SIGNAL(topicChanged(QString, QString)), SLOT(on_topicChanged(QString, QString)));
    connect(this, SIGNAL(invited(QString, QString, QString)), SLOT(on_invited(QString, QString, QString)));
    connect(this, SIGNAL(kicked(QString, QString, QString)), SLOT(on_kicked(QString, QString, QString)));
    connect(this, SIGNAL(messageReceived(QString, QString, Irc::Buffer::MessageFlags)),
                  SLOT(on_messageReceived(QString, QString, Irc::Buffer::MessageFlags)));
    connect(this, SIGNAL(noticeReceived(QString, QString, Irc::Buffer::MessageFlags)),
                  SLOT(on_noticeReceived(QString, QString, Irc::Buffer::MessageFlags)));
    connect(this, SIGNAL(ctcpRequestReceived(QString, QString, Irc::Buffer::MessageFlags)),
                  SLOT(on_ctcpRequestReceived(QString, QString, Irc::Buffer::MessageFlags)));
    connect(this, SIGNAL(ctcpReplyReceived(QString, QString, Irc::Buffer::MessageFlags)),
                  SLOT(on_ctcpReplyReceived(QString, QString, Irc::Buffer::MessageFlags)));
    connect(this, SIGNAL(ctcpActionReceived(QString, QString, Irc::Buffer::MessageFlags)),
                  SLOT(on_ctcpActionReceived(QString, QString, Irc::Buffer::MessageFlags)));
    connect(this, SIGNAL(numericMessageReceived(QString, uint, QStringList)), SLOT(on_numericMessageReceived(QString, uint, QStringList)));
    connect(this, SIGNAL(unknownMessageReceived(QString, QStringList)), SLOT(on_unknownMessageReceived(QString, QStringList)));
}

void MyIrcBuffer::on_receiverChanged(const QString& receiver)
{
    qDebug() << "receiver changed:" << receiver;
}

int MyIrcBuffer::correctNickname(std::string &nickname) {
	int flags = 0;
	switch(nickname.at(0)) {
		case '@': nickname = nickname.substr(1); flags = 1; break;
		case '+': nickname = nickname.substr(1); break;
		default: break;
	}
	return flags;
}

void MyIrcBuffer::on_joined(const QString& origin) {
	qDebug() << "joined:" << receiver() << origin;
	int flags = 0;
	std::string nickname = origin.toStdString();
	flags = correctNickname(nickname);
	np->handleParticipantChanged(user, origin.toStdString(), receiver().toStdString(), flags, Swift::StatusShow::Online);
}

void MyIrcBuffer::on_parted(const QString& origin, const QString& message) {
	qDebug() << "parted:" << receiver() << origin << message;
	int flags = 0;
	std::string nickname = origin.toStdString();
	flags = correctNickname(nickname);
	np->handleParticipantChanged(user, nickname, receiver().toStdString(), flags, Swift::StatusShow::None, message.toStdString());
}

void MyIrcBuffer::on_quit(const QString& origin, const QString& message)
{
    qDebug() << "quit:" << receiver() << origin << message;
	on_parted(origin, message);
}

void MyIrcBuffer::on_nickChanged(const QString& origin, const QString& nick) {
	qDebug() << "nick changed:" << receiver() << origin << nick;
	std::string nickname = origin.toStdString();
	int flags = p->m_modes[receiver().toStdString() + nickname];
	std::cout << receiver().toStdString() + nickname << " " << flags <<  "\n";
	np->handleParticipantChanged(user, nickname, receiver().toStdString(), flags, Swift::StatusShow::Online, "", nick.toStdString());
}

void MyIrcBuffer::on_modeChanged(const QString& origin, const QString& mode, const QString& args) {
	// mode changed: "#testik" "HanzZ" "+o" "hanzz_k" 
	qDebug() << "mode changed:" << receiver() << origin << mode << args;
	std::string nickname = args.toStdString();
	if (nickname.empty())
		return;
	if (mode == "+o") {
		p->m_modes[receiver().toStdString() + nickname] = 1;
	}
	else {
		p->m_modes[receiver().toStdString() + nickname] = 0;
	}
	int flags = p->m_modes[receiver().toStdString() + nickname];
	np->handleParticipantChanged(user, nickname, receiver().toStdString(), flags, Swift::StatusShow::Online, "");
}

void MyIrcBuffer::on_topicChanged(const QString& origin, const QString& topic) {
	//topic changed: "#testik" "HanzZ" "test"
	qDebug() << "topic changed:" << receiver() << origin << topic;
	np->handleSubject(user, receiver().toStdString(), topic.toStdString(), origin.toStdString());
}

void MyIrcBuffer::on_invited(const QString& origin, const QString& receiver, const QString& channel)
{
    qDebug() << "invited:" << Irc::Buffer::receiver() << origin << receiver << channel;
}

void MyIrcBuffer::on_kicked(const QString& origin, const QString& nick, const QString& message)
{
    qDebug() << "kicked:" << receiver() << origin << nick << message;
}

void MyIrcBuffer::on_messageReceived(const QString& origin, const QString& message, Irc::Buffer::MessageFlags flags) {
	qDebug() << "message received:" << receiver() << origin << message << (flags & Irc::Buffer::IdentifiedFlag ? "(identified!)" : "(not identified)");
	if (!receiver().startsWith("#") && (flags & Irc::Buffer::EchoFlag))
		return;
	np->handleMessage(user, receiver().toStdString(), message.toStdString(), origin.toStdString());
}

void MyIrcBuffer::on_noticeReceived(const QString& origin, const QString& notice, Irc::Buffer::MessageFlags flags)
{
    qDebug() << "notice received:" << receiver() << origin << notice
             << (flags & Irc::Buffer::IdentifiedFlag ? "(identified!)" : "(not identified)");
}

void MyIrcBuffer::on_ctcpRequestReceived(const QString& origin, const QString& request, Irc::Buffer::MessageFlags flags)
{
    qDebug() << "ctcp request received:" << receiver() << origin << request
             << (flags & Irc::Buffer::IdentifiedFlag ? "(identified!)" : "(not identified)");
}

void MyIrcBuffer::on_ctcpReplyReceived(const QString& origin, const QString& reply, Irc::Buffer::MessageFlags flags)
{
    qDebug() << "ctcp reply received:" << receiver() << origin << reply
             << (flags & Irc::Buffer::IdentifiedFlag ? "(identified!)" : "(not identified)");
}

void MyIrcBuffer::on_ctcpActionReceived(const QString& origin, const QString& action, Irc::Buffer::MessageFlags flags)
{
    qDebug() << "ctcp action received:" << receiver() << origin << action
             << (flags & Irc::Buffer::IdentifiedFlag ? "(identified!)" : "(not identified)");
}

void MyIrcBuffer::on_numericMessageReceived(const QString& origin, uint code, const QStringList& params)
{
	switch (code) {
		case 251:
			np->handleConnected(user);
			break;
		case 332:
			m_topicData = params.value(2).toStdString();
			break;
		case 333:
			np->handleSubject(user, params.value(1).toStdString(), m_topicData, params.value(2).toStdString());
			break;
		case 353:
			QString channel = params.value(2);
			QStringList members = params.value(3).split(" ");

			for (int i = 0; i < members.size(); i++) {
				int flags = 0;
				std::string nickname = members.at(i).toStdString();
				flags = correctNickname(nickname);
				p->m_modes[channel.toStdString() + nickname] = flags;
				std::cout << channel.toStdString() + nickname << " " << flags << "\n";
				np->handleParticipantChanged(user, nickname, channel.toStdString(), flags, Swift::StatusShow::Online);
			}
			break;
	}
    qDebug() << "numeric message received:" << receiver() << origin << code << params;
}

void MyIrcBuffer::on_unknownMessageReceived(const QString& origin, const QStringList& params)
{
    qDebug() << "unknown message received:" << receiver() << origin << params;
}