Skip to content

Commit

Permalink
Room::retryMessage and Room::discardMessage
Browse files Browse the repository at this point in the history
  • Loading branch information
KitsuneRal committed Aug 3, 2018
1 parent de72fb7 commit 527a12e
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
21 changes: 21 additions & 0 deletions lib/room.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1195,6 +1195,27 @@ QString Room::postMessage(const QString& type, const QString& plainText)
return d->sendEvent<RoomMessageEvent>(plainText, type);
}

QString Room::retryMessage(const QString& txnId)
{
auto it = std::find_if(d->unsyncedEvents.begin(), d->unsyncedEvents.end(),
[txnId] (const auto& evt) { return evt->transactionId() == txnId; });
Q_ASSERT(it != d->unsyncedEvents.end());
qDebug(EVENTS) << "Retrying transaction" << txnId;
it->resetStatus();
return d->doSendEvent(it->event());
}

void Room::discardMessage(const QString& txnId)
{
auto it = std::find_if(d->unsyncedEvents.begin(), d->unsyncedEvents.end(),
[txnId] (const auto& evt) { return evt->transactionId() == txnId; });
Q_ASSERT(it != d->unsyncedEvents.end());
qDebug(EVENTS) << "Discarding transaction" << txnId;
emit pendingEventAboutToDiscard(it - d->unsyncedEvents.begin());
d->unsyncedEvents.erase(it);
emit pendingEventDiscarded();
}

QString Room::postMessage(const QString& plainText, MessageEventType type)
{
return d->sendEvent<RoomMessageEvent>(plainText, type);
Expand Down
4 changes: 4 additions & 0 deletions lib/room.h
Original file line number Diff line number Diff line change
Expand Up @@ -318,6 +318,8 @@ namespace QMatrixClient
/** @deprecated If you have a custom event type, construct the event
* and pass it as a whole to postMessage() */
QString postMessage(const QString& type, const QString& plainText);
QString retryMessage(const QString& txnId);
void discardMessage(const QString& txnId);
void setName(const QString& newName);
void setCanonicalAlias(const QString& newAlias);
void setTopic(const QString& newTopic);
Expand Down Expand Up @@ -353,6 +355,8 @@ namespace QMatrixClient
void pendingEventAboutToMerge(RoomEvent* serverEvent,
int pendingEventIndex);
void pendingEventMerged();
void pendingEventAboutToDiscard(int pendingEventIndex);
void pendingEventDiscarded();
void pendingEventChanged(int pendingEventIndex);

/**
Expand Down

0 comments on commit 527a12e

Please sign in to comment.