return query.trimmed();
}
-QList<AbstractSqlStorage::SqlQueryResource> AbstractSqlStorage::setupQueries()
+std::vector<AbstractSqlStorage::SqlQueryResource> AbstractSqlStorage::setupQueries()
{
- QList<SqlQueryResource> queries;
+ std::vector<SqlQueryResource> queries;
// The current schema is stored in the root folder, including setup scripts.
QDir dir = QDir(QString(":/SQL/%1/").arg(displayName()));
foreach (QFileInfo fileInfo, dir.entryInfoList(QStringList() << "setup*", QDir::NoFilter, QDir::Name)) {
- queries << SqlQueryResource(queryString(fileInfo.baseName()), fileInfo.baseName());
+ queries.emplace_back(queryString(fileInfo.baseName()), fileInfo.baseName());
}
return queries;
}
return success;
}
-QList<AbstractSqlStorage::SqlQueryResource> AbstractSqlStorage::upgradeQueries(int version)
+std::vector<AbstractSqlStorage::SqlQueryResource> AbstractSqlStorage::upgradeQueries(int version)
{
- QList<SqlQueryResource> queries;
+ std::vector<SqlQueryResource> queries;
// Upgrade queries are stored in the 'version/##' subfolders.
QDir dir = QDir(QString(":/SQL/%1/version/%2/").arg(displayName()).arg(version));
foreach (QFileInfo fileInfo, dir.entryInfoList(QStringList() << "upgrade*", QDir::NoFilter, QDir::Name)) {
- queries << SqlQueryResource(queryString(fileInfo.baseName(), version), fileInfo.baseName());
+ queries.emplace_back(queryString(fileInfo.baseName(), version), fileInfo.baseName());
}
return queries;
}
#pragma once
#include <memory>
+#include <vector>
#include <QHash>
#include <QMutex>
*
* @return List of SQL query strings and filenames
*/
- QList<SqlQueryResource> setupQueries();
+ std::vector<SqlQueryResource> setupQueries();
/**
* Gets the collection of SQL upgrade queries and filenames for a given schema version
* @param ver SQL schema version
* @return List of SQL query strings and filenames
*/
- QList<SqlQueryResource> upgradeQueries(int ver);
+ std::vector<SqlQueryResource> upgradeQueries(int ver);
bool upgradeDb();
bool watchQuery(QSqlQuery& query);
static void removeIdentity(UserId user, IdentityId identityId) { instance()->_storage->removeIdentity(user, identityId); }
- static QList<CoreIdentity> identities(UserId user) { return instance()->_storage->identities(user); }
+ static std::vector<CoreIdentity> identities(UserId user) { return instance()->_storage->identities(user); }
//! Create a Network in the Storage and store it's Id in the given NetworkInfo
/** \note This method is thredsafe.
/** \note This method is thredsafe.
*
* \param user The core user
- * \return QList<NetworkInfo>.
+ * \return std::vector<NetworkInfo>.
*/
- static inline QList<NetworkInfo> networks(UserId user) { return instance()->_storage->networks(user); }
+ static inline std::vector<NetworkInfo> networks(UserId user) { return instance()->_storage->networks(user); }
//! Get a list of Networks to restore
/** Return a list of networks the user was connected at the time of core shutdown
*
* \param user The User Id in question
*/
- static inline QList<NetworkId> connectedNetworks(UserId user) { return instance()->_storage->connectedNetworks(user); }
+ static inline std::vector<NetworkId> connectedNetworks(UserId user) { return instance()->_storage->connectedNetworks(user); }
//! Update the connected state of a network
/** \note This method is threadsafe
* \param limit if != -1 limit the returned list to a max of \limit entries
* \return The requested list of messages
*/
- static inline QList<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1)
+ static inline std::vector<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1)
{
return instance()->_storage->requestMsgs(user, bufferId, first, last, limit);
}
* \param type The Message::Types that should be returned
* \return The requested list of messages
*/
- static inline QList<Message> requestMsgsFiltered(UserId user,
+ static inline std::vector<Message> requestMsgsFiltered(UserId user,
BufferId bufferId,
MsgId first = -1,
MsgId last = -1,
* \param limit Max amount of messages
* \return The requested list of messages
*/
- static inline QList<Message> requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1)
+ static inline std::vector<Message> requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1)
{
return instance()->_storage->requestAllMsgs(user, first, last, limit);
}
* \param type The Message::Types that should be returned
* \return The requested list of messages
*/
- static inline QList<Message> requestAllMsgsFiltered(UserId user,
+ static inline std::vector<Message> requestAllMsgsFiltered(UserId user,
MsgId first = -1,
MsgId last = -1,
int limit = -1,
* \param user The user whose buffers we request
* \return A list of the BufferInfos for all buffers as requested
*/
- static inline QList<BufferInfo> requestBuffers(UserId user) { return instance()->_storage->requestBuffers(user); }
+ static inline std::vector<BufferInfo> requestBuffers(UserId user) { return instance()->_storage->requestBuffers(user); }
//! Request a list of BufferIds for a given NetworkId
/** \note This method is threadsafe.
* \param networkId The NetworkId of the network in question
* \return List of BufferIds belonging to the Network
*/
- static inline QList<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId)
+ static inline std::vector<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId)
{
return instance()->_storage->requestBufferIdsForNetwork(user, networkId);
}
#include "corebacklogmanager.h"
+#include <algorithm>
+#include <iterator>
+
#include <QDebug>
#include "core.h"
QVariantList CoreBacklogManager::requestBacklog(BufferId bufferId, MsgId first, MsgId last, int limit, int additional)
{
QVariantList backlog;
- QList<Message> msgList;
- msgList = Core::requestMsgs(coreSession()->user(), bufferId, first, last, limit);
-
- QList<Message>::const_iterator msgIter = msgList.constBegin();
- QList<Message>::const_iterator msgListEnd = msgList.constEnd();
- while (msgIter != msgListEnd) {
- backlog << qVariantFromValue(*msgIter);
- ++msgIter;
- }
+ auto msgList = Core::requestMsgs(coreSession()->user(), bufferId, first, last, limit);
+
+ std::transform(msgList.cbegin(), msgList.cend(), std::back_inserter(backlog), [](auto&& msg) {
+ return QVariant::fromValue(msg);
+ });
if (additional && limit != 0) {
MsgId oldestMessage = first;
- if (!msgList.isEmpty()) {
- if (msgList.first().msgId() < msgList.last().msgId())
- oldestMessage = msgList.first().msgId();
+ if (!msgList.empty()) {
+ if (msgList.front().msgId() < msgList.back().msgId())
+ oldestMessage = msgList.front().msgId();
else
- oldestMessage = msgList.last().msgId();
+ oldestMessage = msgList.back().msgId();
}
if (first != -1) {
// that is, if the list of messages is not truncated by the limit
if (last == oldestMessage) {
msgList = Core::requestMsgs(coreSession()->user(), bufferId, -1, last, additional);
- msgIter = msgList.constBegin();
- msgListEnd = msgList.constEnd();
- while (msgIter != msgListEnd) {
- backlog << qVariantFromValue(*msgIter);
- ++msgIter;
- }
+ std::transform(msgList.cbegin(), msgList.cend(), std::back_inserter(backlog), [](auto&& msg) {
+ return QVariant::fromValue(msg);
+ });
}
}
QVariantList CoreBacklogManager::requestBacklogFiltered(BufferId bufferId, MsgId first, MsgId last, int limit, int additional, int type, int flags)
{
QVariantList backlog;
- QList<Message> msgList;
- msgList = Core::requestMsgsFiltered(coreSession()->user(), bufferId, first, last, limit, Message::Types{type}, Message::Flags{flags});
-
- QList<Message>::const_iterator msgIter = msgList.constBegin();
- QList<Message>::const_iterator msgListEnd = msgList.constEnd();
- while (msgIter != msgListEnd) {
- backlog << qVariantFromValue(*msgIter);
- ++msgIter;
- }
+ auto msgList = Core::requestMsgsFiltered(coreSession()->user(), bufferId, first, last, limit, Message::Types{type}, Message::Flags{flags});
+
+ std::transform(msgList.cbegin(), msgList.cend(), std::back_inserter(backlog), [](auto&& msg) {
+ return QVariant::fromValue(msg);
+ });
if (additional && limit != 0) {
MsgId oldestMessage = first;
- if (!msgList.isEmpty()) {
- if (msgList.first().msgId() < msgList.last().msgId())
- oldestMessage = msgList.first().msgId();
+ if (!msgList.empty()) {
+ if (msgList.front().msgId() < msgList.back().msgId())
+ oldestMessage = msgList.front().msgId();
else
- oldestMessage = msgList.last().msgId();
+ oldestMessage = msgList.back().msgId();
}
if (first != -1) {
// that is, if the list of messages is not truncated by the limit
if (last == oldestMessage) {
msgList = Core::requestMsgsFiltered(coreSession()->user(), bufferId, -1, last, additional, Message::Types{type}, Message::Flags{flags});
- msgIter = msgList.constBegin();
- msgListEnd = msgList.constEnd();
- while (msgIter != msgListEnd) {
- backlog << qVariantFromValue(*msgIter);
- ++msgIter;
- }
+ std::transform(msgList.cbegin(), msgList.cend(), std::back_inserter(backlog), [](auto&& msg) {
+ return QVariant::fromValue(msg);
+ });
}
}
QVariantList CoreBacklogManager::requestBacklogAll(MsgId first, MsgId last, int limit, int additional)
{
QVariantList backlog;
- QList<Message> msgList;
- msgList = Core::requestAllMsgs(coreSession()->user(), first, last, limit);
-
- QList<Message>::const_iterator msgIter = msgList.constBegin();
- QList<Message>::const_iterator msgListEnd = msgList.constEnd();
- while (msgIter != msgListEnd) {
- backlog << qVariantFromValue(*msgIter);
- ++msgIter;
- }
+ auto msgList = Core::requestAllMsgs(coreSession()->user(), first, last, limit);
+
+ std::transform(msgList.cbegin(), msgList.cend(), std::back_inserter(backlog), [](auto&& msg) {
+ return QVariant::fromValue(msg);
+ });
if (additional) {
if (first != -1) {
}
else {
last = -1;
- if (!msgList.isEmpty()) {
- if (msgList.first().msgId() < msgList.last().msgId())
- last = msgList.first().msgId();
+ if (!msgList.empty()) {
+ if (msgList.front().msgId() < msgList.back().msgId())
+ last = msgList.front().msgId();
else
- last = msgList.last().msgId();
+ last = msgList.back().msgId();
}
}
msgList = Core::requestAllMsgs(coreSession()->user(), -1, last, additional);
- msgIter = msgList.constBegin();
- msgListEnd = msgList.constEnd();
- while (msgIter != msgListEnd) {
- backlog << qVariantFromValue(*msgIter);
- ++msgIter;
- }
+ std::transform(msgList.cbegin(), msgList.cend(), std::back_inserter(backlog), [](auto&& msg) {
+ return QVariant::fromValue(msg);
+ });
}
return backlog;
QVariantList CoreBacklogManager::requestBacklogAllFiltered(MsgId first, MsgId last, int limit, int additional, int type, int flags)
{
QVariantList backlog;
- QList<Message> msgList;
- msgList = Core::requestAllMsgsFiltered(coreSession()->user(), first, last, limit, Message::Types{type}, Message::Flags{flags});
-
- QList<Message>::const_iterator msgIter = msgList.constBegin();
- QList<Message>::const_iterator msgListEnd = msgList.constEnd();
- while (msgIter != msgListEnd) {
- backlog << qVariantFromValue(*msgIter);
- ++msgIter;
- }
+ auto msgList = Core::requestAllMsgsFiltered(coreSession()->user(), first, last, limit, Message::Types{type}, Message::Flags{flags});
+
+ std::transform(msgList.cbegin(), msgList.cend(), std::back_inserter(backlog), [](auto&& msg) {
+ return QVariant::fromValue(msg);
+ });
if (additional) {
if (first != -1) {
}
else {
last = -1;
- if (!msgList.isEmpty()) {
- if (msgList.first().msgId() < msgList.last().msgId())
- last = msgList.first().msgId();
+ if (!msgList.empty()) {
+ if (msgList.front().msgId() < msgList.back().msgId())
+ last = msgList.front().msgId();
else
- last = msgList.last().msgId();
+ last = msgList.back().msgId();
}
}
msgList = Core::requestAllMsgsFiltered(coreSession()->user(), -1, last, additional, Message::Types{type}, Message::Flags{flags});
- msgIter = msgList.constBegin();
- msgListEnd = msgList.constEnd();
- while (msgIter != msgListEnd) {
- backlog << qVariantFromValue(*msgIter);
- ++msgIter;
- }
+ std::transform(msgList.cbegin(), msgList.cend(), std::back_inserter(backlog), [](auto&& msg) {
+ return QVariant::fromValue(msg);
+ });
}
return backlog;
#include "corebuffersyncer.h"
+#include <algorithm>
+#include <iterator>
+#include <set>
+
#include "core.h"
#include "corenetwork.h"
#include "coresession.h"
void CoreBufferSyncer::purgeBufferIds()
{
_purgeBuffers = false;
- QList<BufferInfo> bufferInfos = Core::requestBuffers(_coreSession->user());
- QSet<BufferId> actualBuffers;
- foreach (BufferInfo bufferInfo, bufferInfos) {
- actualBuffers << bufferInfo.bufferId();
- }
+ auto bufferInfos = Core::requestBuffers(_coreSession->user());
+ std::set<BufferId> actualBuffers;
+ std::transform(bufferInfos.cbegin(), bufferInfos.cend(), std::inserter(actualBuffers, actualBuffers.end()),
+ [](auto&& bufferInfo) { return bufferInfo.bufferId(); });
QSet<BufferId> storedIds = lastSeenBufferIds().toSet() + markerLineBufferIds().toSet();
foreach (BufferId bufferId, storedIds) {
- if (!actualBuffers.contains(bufferId)) {
+ if (actualBuffers.find(bufferId) == actualBuffers.end()) {
BufferSyncer::removeBuffer(bufferId);
}
}
// migrate to db
QList<IdentityId> ids = s.identityIds();
- QList<NetworkInfo> networkInfos = Core::networks(user());
+ std::vector<NetworkInfo> networkInfos = Core::networks(user());
for (IdentityId id : ids) {
CoreIdentity identity(s.identity(id));
IdentityId newId = Core::createIdentity(user(), identity);
- QList<NetworkInfo>::iterator networkIter = networkInfos.begin();
+ auto networkIter = networkInfos.begin();
while (networkIter != networkInfos.end()) {
if (networkIter->identity == id) {
networkIter->identity = newId;
void CoreSession::restoreSessionState()
{
- QList<NetworkId> nets = Core::connectedNetworks(user());
- CoreNetwork* net = nullptr;
- for (NetworkId id : nets) {
- net = network(id);
+ for (NetworkId id : Core::connectedNetworks(user())) {
+ auto net = network(id);
Q_ASSERT(net);
net->connectToIrc();
}
});
}
-QList<BufferInfo> CoreSession::buffers() const
+std::vector<BufferInfo> CoreSession::buffers() const
{
return Core::requestBuffers(user());
}
void CoreSession::destroyNetwork(NetworkId id)
{
- QList<BufferId> removedBuffers = Core::requestBufferIdsForNetwork(user(), id);
Network* net = _networks.take(id);
if (net && Core::removeNetwork(user(), id)) {
// make sure that all unprocessed RawMessages from this network are removed
}
}
// remove buffers from syncer
- for (BufferId bufferId : removedBuffers) {
+ for (BufferId bufferId : Core::requestBufferIdsForNetwork(user(), id)) {
_bufferSyncer->removeBuffer(bufferId);
}
emit networkRemoved(id);
#pragma once
#include <utility>
+#include <vector>
#include <QHash>
#include <QSet>
public:
CoreSession(UserId, bool restoreState, bool strictIdentEnabled, QObject* parent = nullptr);
- QList<BufferInfo> buffers() const;
+ std::vector<BufferInfo> buffers() const;
inline UserId user() const { return _user; }
CoreNetwork* network(NetworkId) const;
CoreIdentity* identity(IdentityId) const;
}
}
-QList<CoreIdentity> PostgreSqlStorage::identities(UserId user)
+std::vector<CoreIdentity> PostgreSqlStorage::identities(UserId user)
{
- QList<CoreIdentity> identities;
+ std::vector<CoreIdentity> identities;
QSqlDatabase db = logDb();
if (!beginReadOnlyTransaction(db)) {
nicks << nickQuery.value(0).toString();
}
identity.setNicks(nicks);
- identities << identity;
+ identities.push_back(std::move(identity));
}
db.commit();
return identities;
return true;
}
-QList<NetworkInfo> PostgreSqlStorage::networks(UserId user)
+std::vector<NetworkInfo> PostgreSqlStorage::networks(UserId user)
{
- QList<NetworkInfo> nets;
+ std::vector<NetworkInfo> nets;
QSqlDatabase db = logDb();
if (!beginReadOnlyTransaction(db)) {
servers << server;
}
net.serverList = servers;
- nets << net;
+ nets.push_back(std::move(net));
}
db.commit();
return nets;
}
-QList<NetworkId> PostgreSqlStorage::connectedNetworks(UserId user)
+std::vector<NetworkId> PostgreSqlStorage::connectedNetworks(UserId user)
{
- QList<NetworkId> connectedNets;
+ std::vector<NetworkId> connectedNets;
QSqlDatabase db = logDb();
if (!beginReadOnlyTransaction(db)) {
watchQuery(query);
while (query.next()) {
- connectedNets << query.value(0).toInt();
+ connectedNets.emplace_back(query.value(0).toInt());
}
db.commit();
return bufferInfo;
}
-QList<BufferInfo> PostgreSqlStorage::requestBuffers(UserId user)
+std::vector<BufferInfo> PostgreSqlStorage::requestBuffers(UserId user)
{
- QList<BufferInfo> bufferlist;
+ std::vector<BufferInfo> bufferlist;
QSqlDatabase db = logDb();
if (!beginReadOnlyTransaction(db)) {
safeExec(query);
watchQuery(query);
while (query.next()) {
- bufferlist << BufferInfo(query.value(0).toInt(),
- query.value(1).toInt(),
- (BufferInfo::Type)query.value(2).toInt(),
- query.value(3).toInt(),
- query.value(4).toString());
+ bufferlist.emplace_back(query.value(0).toInt(),
+ query.value(1).toInt(),
+ (BufferInfo::Type)query.value(2).toInt(),
+ query.value(3).toInt(),
+ query.value(4).toString());
}
db.commit();
return bufferlist;
}
-QList<BufferId> PostgreSqlStorage::requestBufferIdsForNetwork(UserId user, NetworkId networkId)
+std::vector<BufferId> PostgreSqlStorage::requestBufferIdsForNetwork(UserId user, NetworkId networkId)
{
- QList<BufferId> bufferList;
+ std::vector<BufferId> bufferList;
QSqlDatabase db = logDb();
if (!beginReadOnlyTransaction(db)) {
safeExec(query);
watchQuery(query);
while (query.next()) {
- bufferList << BufferId(query.value(0).toInt());
+ bufferList.emplace_back(query.value(0).toInt());
}
db.commit();
return bufferList;
return true;
}
-QList<Message> PostgreSqlStorage::requestMsgs(UserId user, BufferId bufferId, MsgId first, MsgId last, int limit)
+std::vector<Message> PostgreSqlStorage::requestMsgs(UserId user, BufferId bufferId, MsgId first, MsgId last, int limit)
{
- QList<Message> messagelist;
+ std::vector<Message> messagelist;
QSqlDatabase db = logDb();
if (!beginReadOnlyTransaction(db)) {
query.value(7).toString(),
(Message::Flags)query.value(3).toInt());
msg.setMsgId(query.value(0).toLongLong());
- messagelist << msg;
+ messagelist.push_back(std::move(msg));
}
db.commit();
return messagelist;
}
-QList<Message> PostgreSqlStorage::requestMsgsFiltered(
+std::vector<Message> PostgreSqlStorage::requestMsgsFiltered(
UserId user, BufferId bufferId, MsgId first, MsgId last, int limit, Message::Types type, Message::Flags flags)
{
- QList<Message> messagelist;
+ std::vector<Message> messagelist;
QSqlDatabase db = logDb();
if (!beginReadOnlyTransaction(db)) {
query.value(7).toString(),
Message::Flags{query.value(3).toInt()});
msg.setMsgId(query.value(0).toLongLong());
- messagelist << msg;
+ messagelist.push_back(std::move(msg));
}
db.commit();
return messagelist;
}
-QList<Message> PostgreSqlStorage::requestAllMsgs(UserId user, MsgId first, MsgId last, int limit)
+std::vector<Message> PostgreSqlStorage::requestAllMsgs(UserId user, MsgId first, MsgId last, int limit)
{
- QList<Message> messagelist;
+ std::vector<Message> messagelist;
// requestBuffers uses it's own transaction.
QHash<BufferId, BufferInfo> bufferInfoHash;
query.value(8).toString(),
(Message::Flags)query.value(4).toInt());
msg.setMsgId(query.value(0).toLongLong());
- messagelist << msg;
+ messagelist.push_back(std::move(msg));
}
db.commit();
return messagelist;
}
-QList<Message> PostgreSqlStorage::requestAllMsgsFiltered(
+std::vector<Message> PostgreSqlStorage::requestAllMsgsFiltered(
UserId user, MsgId first, MsgId last, int limit, Message::Types type, Message::Flags flags)
{
- QList<Message> messagelist;
+ std::vector<Message> messagelist;
// requestBuffers uses it's own transaction.
QHash<BufferId, BufferInfo> bufferInfoHash;
query.value(8).toString(),
Message::Flags{query.value(4).toInt()});
msg.setMsgId(query.value(0).toLongLong());
- messagelist << msg;
+ messagelist.push_back(std::move(msg));
}
db.commit();
IdentityId createIdentity(UserId user, CoreIdentity& identity) override;
bool updateIdentity(UserId user, const CoreIdentity& identity) override;
void removeIdentity(UserId user, IdentityId identityId) override;
- QList<CoreIdentity> identities(UserId user) override;
+ std::vector<CoreIdentity> identities(UserId user) override;
/* Network handling */
NetworkId createNetwork(UserId user, const NetworkInfo& info) override;
bool updateNetwork(UserId user, const NetworkInfo& info) override;
bool removeNetwork(UserId user, const NetworkId& networkId) override;
- QList<NetworkInfo> networks(UserId user) override;
- QList<NetworkId> connectedNetworks(UserId user) override;
+ std::vector<NetworkInfo> networks(UserId user) override;
+ std::vector<NetworkId> connectedNetworks(UserId user) override;
void setNetworkConnected(UserId user, const NetworkId& networkId, bool isConnected) override;
/* persistent channels */
/* Buffer handling */
BufferInfo bufferInfo(UserId user, const NetworkId& networkId, BufferInfo::Type type, const QString& buffer = "", bool create = true) override;
BufferInfo getBufferInfo(UserId user, const BufferId& bufferId) override;
- QList<BufferInfo> requestBuffers(UserId user) override;
- QList<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId) override;
+ std::vector<BufferInfo> requestBuffers(UserId user) override;
+ std::vector<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId) override;
bool removeBuffer(const UserId& user, const BufferId& bufferId) override;
bool renameBuffer(const UserId& user, const BufferId& bufferId, const QString& newName) override;
bool mergeBuffersPermanently(const UserId& user, const BufferId& bufferId1, const BufferId& bufferId2) override;
/* Message handling */
bool logMessage(Message& msg) override;
bool logMessages(MessageList& msgs) override;
- QList<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) override;
- QList<Message> requestMsgsFiltered(UserId user,
- BufferId bufferId,
- MsgId first = -1,
- MsgId last = -1,
- int limit = -1,
- Message::Types type = Message::Types{-1},
- Message::Flags flags = Message::Flags{-1}) override;
- QList<Message> requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1) override;
- QList<Message> requestAllMsgsFiltered(UserId user,
- MsgId first = -1,
- MsgId last = -1,
- int limit = -1,
- Message::Types type = Message::Types{-1},
- Message::Flags flags = Message::Flags{-1}) override;
+ std::vector<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) override;
+ std::vector<Message> requestMsgsFiltered(UserId user,
+ BufferId bufferId,
+ MsgId first = -1,
+ MsgId last = -1,
+ int limit = -1,
+ Message::Types type = Message::Types{-1},
+ Message::Flags flags = Message::Flags{-1}) override;
+ std::vector<Message> requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1) override;
+ std::vector<Message> requestAllMsgsFiltered(UserId user,
+ MsgId first = -1,
+ MsgId last = -1,
+ int limit = -1,
+ Message::Types type = Message::Types{-1},
+ Message::Flags flags = Message::Flags{-1}) override;
/* Sysident handling */
QMap<UserId, QString> getAllAuthUserNames() override;
unlock();
}
-QList<CoreIdentity> SqliteStorage::identities(UserId user)
+std::vector<CoreIdentity> SqliteStorage::identities(UserId user)
{
- QList<CoreIdentity> identities;
+ std::vector<CoreIdentity> identities;
QSqlDatabase db = logDb();
db.transaction();
while (nickQuery.next()) {
nicks << nickQuery.value(0).toString();
}
- identity.setNicks(nicks);
- identities << identity;
+ identity.setNicks(std::move(nicks));
+ identities.push_back(std::move(identity));
}
db.commit();
}
return true;
}
-QList<NetworkInfo> SqliteStorage::networks(UserId user)
+std::vector<NetworkInfo> SqliteStorage::networks(UserId user)
{
- QList<NetworkInfo> nets;
+ std::vector<NetworkInfo> nets;
QSqlDatabase db = logDb();
db.transaction();
servers << server;
}
net.serverList = servers;
- nets << net;
+ nets.push_back(std::move(net));
}
}
}
return nets;
}
-QList<NetworkId> SqliteStorage::connectedNetworks(UserId user)
+std::vector<NetworkId> SqliteStorage::connectedNetworks(UserId user)
{
- QList<NetworkId> connectedNets;
+ std::vector<NetworkId> connectedNets;
QSqlDatabase db = logDb();
db.transaction();
watchQuery(query);
while (query.next()) {
- connectedNets << query.value(0).toInt();
+ connectedNets.emplace_back(query.value(0).toInt());
}
db.commit();
}
return bufferInfo;
}
-QList<BufferInfo> SqliteStorage::requestBuffers(UserId user)
+std::vector<BufferInfo> SqliteStorage::requestBuffers(UserId user)
{
- QList<BufferInfo> bufferlist;
+ std::vector<BufferInfo> bufferlist;
QSqlDatabase db = logDb();
db.transaction();
safeExec(query);
watchQuery(query);
while (query.next()) {
- bufferlist << BufferInfo(query.value(0).toInt(),
- query.value(1).toInt(),
- (BufferInfo::Type)query.value(2).toInt(),
- query.value(3).toInt(),
- query.value(4).toString());
+ bufferlist.emplace_back(query.value(0).toInt(),
+ query.value(1).toInt(),
+ (BufferInfo::Type)query.value(2).toInt(),
+ query.value(3).toInt(),
+ query.value(4).toString());
}
db.commit();
}
return bufferlist;
}
-QList<BufferId> SqliteStorage::requestBufferIdsForNetwork(UserId user, NetworkId networkId)
+std::vector<BufferId> SqliteStorage::requestBufferIdsForNetwork(UserId user, NetworkId networkId)
{
- QList<BufferId> bufferList;
+ std::vector<BufferId> bufferList;
QSqlDatabase db = logDb();
db.transaction();
safeExec(query);
watchQuery(query);
while (query.next()) {
- bufferList << BufferId(query.value(0).toInt());
+ bufferList.emplace_back(query.value(0).toInt());
}
db.commit();
}
return !error;
}
-QList<Message> SqliteStorage::requestMsgs(UserId user, BufferId bufferId, MsgId first, MsgId last, int limit)
+std::vector<Message> SqliteStorage::requestMsgs(UserId user, BufferId bufferId, MsgId first, MsgId last, int limit)
{
- QList<Message> messagelist;
+ std::vector<Message> messagelist;
QSqlDatabase db = logDb();
db.transaction();
query.value(7).toString(),
(Message::Flags)query.value(3).toInt());
msg.setMsgId(query.value(0).toLongLong());
- messagelist << msg;
+ messagelist.push_back(std::move(msg));
}
}
db.commit();
return messagelist;
}
-QList<Message> SqliteStorage::requestMsgsFiltered(
+std::vector<Message> SqliteStorage::requestMsgsFiltered(
UserId user, BufferId bufferId, MsgId first, MsgId last, int limit, Message::Types type, Message::Flags flags)
{
- QList<Message> messagelist;
+ std::vector<Message> messagelist;
QSqlDatabase db = logDb();
db.transaction();
query.value(7).toString(),
Message::Flags{query.value(3).toInt()});
msg.setMsgId(query.value(0).toLongLong());
- messagelist << msg;
+ messagelist.push_back(std::move(msg));
}
}
db.commit();
return messagelist;
}
-QList<Message> SqliteStorage::requestAllMsgs(UserId user, MsgId first, MsgId last, int limit)
+std::vector<Message> SqliteStorage::requestAllMsgs(UserId user, MsgId first, MsgId last, int limit)
{
- QList<Message> messagelist;
+ std::vector<Message> messagelist;
QSqlDatabase db = logDb();
db.transaction();
query.value(8).toString(),
(Message::Flags)query.value(4).toInt());
msg.setMsgId(query.value(0).toLongLong());
- messagelist << msg;
+ messagelist.push_back(std::move(msg));
}
}
db.commit();
return messagelist;
}
-QList<Message> SqliteStorage::requestAllMsgsFiltered(UserId user, MsgId first, MsgId last, int limit, Message::Types type, Message::Flags flags)
+std::vector<Message> SqliteStorage::requestAllMsgsFiltered(UserId user, MsgId first, MsgId last, int limit, Message::Types type, Message::Flags flags)
{
- QList<Message> messagelist;
+ std::vector<Message> messagelist;
QSqlDatabase db = logDb();
db.transaction();
query.value(8).toString(),
Message::Flags{query.value(4).toInt()});
msg.setMsgId(query.value(0).toLongLong());
- messagelist << msg;
+ messagelist.push_back(std::move(msg));
}
}
db.commit();
IdentityId createIdentity(UserId user, CoreIdentity& identity) override;
bool updateIdentity(UserId user, const CoreIdentity& identity) override;
void removeIdentity(UserId user, IdentityId identityId) override;
- QList<CoreIdentity> identities(UserId user) override;
+ std::vector<CoreIdentity> identities(UserId user) override;
/* Network handling */
NetworkId createNetwork(UserId user, const NetworkInfo& info) override;
bool updateNetwork(UserId user, const NetworkInfo& info) override;
bool removeNetwork(UserId user, const NetworkId& networkId) override;
- QList<NetworkInfo> networks(UserId user) override;
- QList<NetworkId> connectedNetworks(UserId user) override;
+ std::vector<NetworkInfo> networks(UserId user) override;
+ std::vector<NetworkId> connectedNetworks(UserId user) override;
void setNetworkConnected(UserId user, const NetworkId& networkId, bool isConnected) override;
/* persistent channels */
/* Buffer handling */
BufferInfo bufferInfo(UserId user, const NetworkId& networkId, BufferInfo::Type type, const QString& buffer = "", bool create = true) override;
BufferInfo getBufferInfo(UserId user, const BufferId& bufferId) override;
- QList<BufferInfo> requestBuffers(UserId user) override;
- QList<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId) override;
+ std::vector<BufferInfo> requestBuffers(UserId user) override;
+ std::vector<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId) override;
bool removeBuffer(const UserId& user, const BufferId& bufferId) override;
bool renameBuffer(const UserId& user, const BufferId& bufferId, const QString& newName) override;
bool mergeBuffersPermanently(const UserId& user, const BufferId& bufferId1, const BufferId& bufferId2) override;
/* Message handling */
bool logMessage(Message& msg) override;
bool logMessages(MessageList& msgs) override;
- QList<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) override;
- QList<Message> requestMsgsFiltered(UserId user,
- BufferId bufferId,
- MsgId first = -1,
- MsgId last = -1,
- int limit = -1,
- Message::Types type = Message::Types{-1},
- Message::Flags flags = Message::Flags{-1}) override;
- QList<Message> requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1) override;
- QList<Message> requestAllMsgsFiltered(UserId user,
- MsgId first = -1,
- MsgId last = -1,
- int limit = -1,
- Message::Types type = Message::Types{-1},
- Message::Flags flags = Message::Flags{-1}) override;
+ std::vector<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) override;
+ std::vector<Message> requestMsgsFiltered(UserId user,
+ BufferId bufferId,
+ MsgId first = -1,
+ MsgId last = -1,
+ int limit = -1,
+ Message::Types type = Message::Types{-1},
+ Message::Flags flags = Message::Flags{-1}) override;
+ std::vector<Message> requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1) override;
+ std::vector<Message> requestAllMsgsFiltered(UserId user,
+ MsgId first = -1,
+ MsgId last = -1,
+ int limit = -1,
+ Message::Types type = Message::Types{-1},
+ Message::Flags flags = Message::Flags{-1}) override;
/* Sysident handling */
QMap<UserId, QString> getAllAuthUserNames() override;
#pragma once
-#include <QList>
+#include <vector>
+
#include <QMap>
#include <QObject>
#include <QProcessEnvironment>
virtual IdentityId createIdentity(UserId user, CoreIdentity& identity) = 0;
virtual bool updateIdentity(UserId user, const CoreIdentity& identity) = 0;
virtual void removeIdentity(UserId user, IdentityId identityId) = 0;
- virtual QList<CoreIdentity> identities(UserId user) = 0;
+ virtual std::vector<CoreIdentity> identities(UserId user) = 0;
/* Network handling */
* \param user The core user
* \return QList<NetworkInfo>.
*/
- virtual QList<NetworkInfo> networks(UserId user) = 0;
+ virtual std::vector<NetworkInfo> networks(UserId user) = 0;
//! Get a list of Networks to restore
/** Return a list of networks the user was connected at the time of core shutdown
*
* \param user The User Id in question
*/
- virtual QList<NetworkId> connectedNetworks(UserId user) = 0;
+ virtual std::vector<NetworkId> connectedNetworks(UserId user) = 0;
//! Update the connected state of a network
/** \note This method is threadsafe
* \param user The user whose buffers we request
* \return A list of the BufferInfos for all buffers as requested
*/
- virtual QList<BufferInfo> requestBuffers(UserId user) = 0;
+ virtual std::vector<BufferInfo> requestBuffers(UserId user) = 0;
//! Request a list of BufferIds for a given NetworkId
/** \note This method is threadsafe.
* \param networkId The NetworkId of the network in question
* \return List of BufferIds belonging to the Network
*/
- virtual QList<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId) = 0;
+ virtual std::vector<BufferId> requestBufferIdsForNetwork(UserId user, NetworkId networkId) = 0;
//! Remove permanently a buffer and it's content from the storage backend
/** This call cannot be reverted!
* \param limit if != -1 limit the returned list to a max of \limit entries
* \return The requested list of messages
*/
- virtual QList<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) = 0;
+ virtual std::vector<Message> requestMsgs(UserId user, BufferId bufferId, MsgId first = -1, MsgId last = -1, int limit = -1) = 0;
//! Request a certain number messages stored in a given buffer, matching certain filters
/** \param buffer The buffer we request messages from
* \param type The Message::Types that should be returned
* \return The requested list of messages
*/
- virtual QList<Message> requestMsgsFiltered(UserId user,
- BufferId bufferId,
- MsgId first = -1,
- MsgId last = -1,
- int limit = -1,
- Message::Types type = Message::Types{-1},
- Message::Flags flags = Message::Flags{-1})
- = 0;
+ virtual std::vector<Message> requestMsgsFiltered(UserId user,
+ BufferId bufferId,
+ MsgId first = -1,
+ MsgId last = -1,
+ int limit = -1,
+ Message::Types type = Message::Types{-1},
+ Message::Flags flags = Message::Flags{-1}) = 0;
//! Request a certain number of messages across all buffers
/** \param first if != -1 return only messages with a MsgId >= first
* \param limit Max amount of messages
* \return The requested list of messages
*/
- virtual QList<Message> requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1) = 0;
+ virtual std::vector<Message> requestAllMsgs(UserId user, MsgId first = -1, MsgId last = -1, int limit = -1) = 0;
//! Request a certain number of messages across all buffers, matching certain filters
/** \param first if != -1 return only messages with a MsgId >= first
* \param type The Message::Types that should be returned
* \return The requested list of messages
*/
- virtual QList<Message> requestAllMsgsFiltered(UserId user,
- MsgId first = -1,
- MsgId last = -1,
- int limit = -1,
- Message::Types type = Message::Types{-1},
- Message::Flags flags = Message::Flags{-1})
- = 0;
+ virtual std::vector<Message> requestAllMsgsFiltered(UserId user,
+ MsgId first = -1,
+ MsgId last = -1,
+ int limit = -1,
+ Message::Types type = Message::Types{-1},
+ Message::Flags flags = Message::Flags{-1}) = 0;
//! Fetch all authusernames
/** \return Map of all current UserIds to permitted idents