| Home · All Classes · All Namespaces · Modules · Functions · Files

contact-messenger/sender.cpp
#include "sender.h"
#include "_gen/sender.moc.hpp"
#include <TelepathyQt/Account>
#include <TelepathyQt/Debug>
#include <TelepathyQt/Constants>
#include <TelepathyQt/ContactMessenger>
#include <TelepathyQt/PendingSendMessage>
#include <TelepathyQt/Types>
#include <QCoreApplication>
Sender::Sender(const QString &accountPath,
const QString &contactIdentifier, const QString &message)
{
Tp::AccountPtr acc = Tp::Account::create(TP_QT_ACCOUNT_MANAGER_BUS_NAME,
accountPath);
messenger = Tp::ContactMessenger::create(acc, contactIdentifier);
connect(messenger->sendMessage(message),
SIGNAL(finished(Tp::PendingOperation*)),
SLOT(onSendMessageFinished(Tp::PendingOperation*)));
}
Sender::~Sender()
{
}
void Sender::onSendMessageFinished(Tp::PendingOperation *op)
{
if (op->isError()) {
qDebug() << "Error sending message:" << op->errorName() << "-" << op->errorMessage();
QCoreApplication::exit(1);
return;
}
Tp::PendingSendMessage *psm = qobject_cast<Tp::PendingSendMessage *>(op);
qDebug() << "Message sent, token is" << psm->sentMessageToken();
QCoreApplication::exit(0);
}
int main(int argc, char **argv)
{
QCoreApplication app(argc, argv);
Tp::registerTypes();
Tp::enableDebug(true);
Tp::enableWarnings(true);
if (argc < 4) {
qDebug() << "Usage: contact-messenger account_path contact_id message";
return -1;
}
Sender *sender = new Sender(QLatin1String(argv[1]), QLatin1String(argv[2]),
QLatin1String(argv[3]));
int ret = app.exec();
delete sender;
return ret;
}