jay/jay.cpp

39 lines
1.1 KiB
C++

// SPDX-FileCopyrightText: 2024 Yury Gubich <blue@macaw.me>
// SPDX-License-Identifier: GPL-3.0-or-later
#include "jay.h"
Jay::Jay(const std::string& jid, const std::string& password) :
client(jid, password),
loggers()
{
client.registerMessageHandler(this);
client.setTls(gloox::TLSPolicy::TLSOptional);
client.setSASLMechanisms(gloox::SaslMechScramSha1);
}
Jay::~Jay() {
loggers.clear();
}
void Jay::run() {
if (client.connect(false)) {
// Run the event loop
gloox::ConnectionError ce = gloox::ConnNoError;
while (ce == gloox::ConnNoError)
ce = client.recv();
std::cout << "Connection terminated with error: " << ce << std::endl;
}
}
void Jay::handleMessage(const gloox::Message& message, gloox::MessageSession* session) {
std::cout << "Received message: " << message.body() << std::endl;
// Implement your response logic here
}
Logger* Jay::addLogger(gloox::LogLevel level) {
loggers.emplace_back(std::make_unique<Logger>(client.logInstance(), level));
return loggers.back().get();
}