libQuotient
A Qt library for building matrix clients
|
Get the child events for a given parent event, with a given relType
.
More...
#include <relations.h>
Public Member Functions | |
GetRelatingEventsWithRelTypeJob (const QString &roomId, const QString &eventId, const QString &relType, const QString &from={}, const QString &to={}, std::optional< int > limit=std::nullopt, const QString &dir={}, std::optional< bool > recurse=std::nullopt) | |
QString | nextBatch () const |
QString | prevBatch () const |
std::optional< int > | recursionDepth () const |
RoomEvents | chunk () |
Public Member Functions inherited from Quotient::BaseJob | |
BaseJob (HttpVerb verb, const QString &name, QByteArray endpoint, bool needsToken=true) | |
BaseJob (HttpVerb verb, const QString &name, QByteArray endpoint, const QUrlQuery &query, RequestData &&data={}, bool needsToken=true) | |
QUrl | requestUrl () const |
bool | isBackground () const |
Status | status () const |
QString | statusCaption () const |
QByteArray | rawData (int bytesAtMost) const |
const QByteArray & | rawData () const |
QString | rawDataSample (int bytesAtMost=65535) const |
QJsonObject | jsonData () const |
QJsonArray | jsonItems () const |
template<typename T , typename StrT > | |
T | loadFromJson (const StrT &keyName, T &&defaultValue={}) const |
template<typename T > | |
T | takeFromJson (const QString &key, T &&defaultValue={}) |
int | error () const |
virtual QString | errorString () const |
QUrl | errorUrl () const |
int | maxRetries () const |
void | setMaxRetries (int newMaxRetries) |
std::chrono::seconds | getCurrentTimeout () const |
Q_INVOKABLE Quotient::BaseJob::duration_ms_t | getCurrentTimeoutMs () const |
std::chrono::seconds | getNextRetryInterval () const |
Q_INVOKABLE Quotient::BaseJob::duration_ms_t | getNextRetryMs () const |
std::chrono::milliseconds | timeToRetry () const |
Q_INVOKABLE Quotient::BaseJob::duration_ms_t | millisToRetry () const |
Static Public Member Functions | |
static QUrl | makeRequestUrl (QUrl baseUrl, const QString &roomId, const QString &eventId, const QString &relType, const QString &from={}, const QString &to={}, std::optional< int > limit=std::nullopt, const QString &dir={}, std::optional< bool > recurse=std::nullopt) |
Construct a URL without creating a full-fledged job object. More... | |
Static Public Member Functions inherited from Quotient::BaseJob | |
template<typename... StrTs> | |
static QByteArray | makePath (StrTs &&... parts) |
Additional Inherited Members | |
Public Types inherited from Quotient::BaseJob | |
enum | StatusCode { Success = 0 , NoError = Success , Pending = 1 , WarningLevel = 20 , UnexpectedResponseType = 21 , UnexpectedResponseTypeWarning = UnexpectedResponseType , Unprepared = 25 , Abandoned = 50 , ErrorLevel = 100 , NetworkError = 101 , Timeout , Unauthorised , ContentAccessError , NotFound , IncorrectRequest , IncorrectResponse , TooManyRequests , RateLimited = TooManyRequests , RequestNotImplemented , UnsupportedRoomVersion , NetworkAuthRequired , UserConsentRequired , CannotLeaveRoom , UserDeactivated , FileError , UserDefinedError = 256 } |
using | duration_ms_t = std::chrono::milliseconds::rep |
Public Slots inherited from Quotient::BaseJob | |
void | initiate (Quotient::ConnectionData *connData, bool inBackground) |
void | abandon () |
Abandon the result of this job, arrived or unarrived. More... | |
Signals inherited from Quotient::BaseJob | |
void | aboutToSendRequest (QNetworkRequest *req) |
The job is about to send a network request. More... | |
void | sentRequest () |
void | statusChanged (Quotient::BaseJob::Status newStatus) |
void | retryScheduled (int nextAttempt, Quotient::BaseJob::duration_ms_t inMilliseconds) |
void | rateLimited () |
void | finished (Quotient::BaseJob *job) |
void | result (Quotient::BaseJob *job) |
void | success (Quotient::BaseJob *) |
void | failure (Quotient::BaseJob *) |
void | downloadProgress (qint64 bytesReceived, qint64 bytesTotal) |
void | uploadProgress (qint64 bytesSent, qint64 bytesTotal) |
Protected Types inherited from Quotient::BaseJob | |
using | headers_t = QHash< QByteArray, QByteArray > |
Protected Slots inherited from Quotient::BaseJob | |
void | timeout () |
virtual Status | checkReply (const QNetworkReply *reply) const |
Check the pending or received reply for upfront issues. More... | |
Protected Member Functions inherited from Quotient::BaseJob | |
const headers_t & | requestHeaders () const |
void | setRequestHeader (const headers_t::key_type &headerName, const headers_t::mapped_type &headerValue) |
void | setRequestHeaders (const headers_t &headers) |
QUrlQuery | query () const |
void | setRequestQuery (const QUrlQuery &query) |
const RequestData & | requestData () const |
void | setRequestData (RequestData &&data) |
const QByteArrayList & | expectedContentTypes () const |
void | addExpectedContentType (const QByteArray &contentType) |
void | setExpectedContentTypes (const QByteArrayList &contentTypes) |
QByteArrayList | expectedKeys () const |
void | addExpectedKey (const QByteArray &key) |
void | setExpectedKeys (const QByteArrayList &keys) |
const QNetworkReply * | reply () const |
QNetworkReply * | reply () |
virtual void | doPrepare () |
virtual void | onSentRequest (QNetworkReply *) |
virtual void | beforeAbandon () |
virtual Status | prepareResult () |
An extension point for additional reply processing. More... | |
virtual Status | prepareError (Status currentStatus) |
Process details of the error. More... | |
QJsonValue | takeValueFromJson (const QString &key) |
Get direct access to the JSON response object in the job. More... | |
void | setStatus (Status s) |
void | setStatus (int code, QString message) |
void | setLoggingCategory (QMessageLogger::CategoryFunction lcf) |
Set the logging category for the given job instance. More... | |
~BaseJob () override | |
Static Protected Member Functions inherited from Quotient::BaseJob | |
static QUrl | makeRequestUrl (QUrl baseUrl, const QByteArray &encodedPath, const QUrlQuery &query={}) |
Properties inherited from Quotient::BaseJob | |
QUrl | requestUrl |
int | maxRetries |
int | statusCode |
Get the child events for a given parent event, with a given relType
.
Retrieve all of the child events for a given parent event which relate to the parent using the given relType
.
Note that when paginating the from
token should be "after" the to
token in terms of topological ordering, because it is only possible to paginate "backwards" through events, starting at from
.
For example, passing a from
token from page 2 of the results, and a to
token from page 1, would return the empty set. The caller can use a from
token from page 1 and a to
token from page 2 to paginate over the same range, however.
Definition at line 119 of file relations.h.
|
explicit |
roomId | The ID of the room containing the parent event. |
eventId | The ID of the parent event whose child events are to be returned. |
relType | The relationship type to search for. |
from | The pagination token to start returning results from. If not supplied, results start at the most recent topological event known to the server. |
Can be a next_batch
or prev_batch
token from a previous call, or a returned start
token from /messages
, or a next_batch
token from /sync
.
to | The pagination token to stop returning results at. If not supplied, results continue up to limit or until there are no more events. |
Like from
, this can be a previous token from a prior call to this endpoint or from /messages
or /sync
.
limit | The maximum number of results to return in a single chunk . The server can and should apply a maximum value to this parameter to avoid large responses. |
Similarly, the server should apply a default value when not supplied.
dir | Optional (default b ) direction to return events from. If this is set to f , events will be returned in chronological order starting at from . If it is set to b , events will be returned in reverse chronological order, again starting at from . |
recurse | Whether to additionally include events which only relate indirectly to the given event, i.e. events related to the given event via two or more direct relationships. |
If set to false
, only events which have direct a relation with the given event will be included.
If set to true
, all events which relate to the given event, or relate to events that relate to the given event, will be included.
It is recommended that homeservers traverse at least 3 levels of relationships. Implementations may perform more but should be careful to not infinitely recurse.
The default value is false
.
|
inline |
The child events of the requested event, ordered topologically most-recent first. The events returned will match the relType
supplied in the URL.
Definition at line 209 of file relations.h.
|
static |
Construct a URL without creating a full-fledged job object.
This function can be used when a URL for GetRelatingEventsWithRelTypeJob is necessary but the job itself isn't.
|
inline |
An opaque string representing a pagination token. The absence of this token means there are no more results to fetch and the client should stop paginating.
Definition at line 192 of file relations.h.
|
inline |
An opaque string representing a pagination token. The absence of this token means this is the start of the result set, i.e. this is the first batch/page.
Definition at line 196 of file relations.h.
|
inline |
If the recurse
parameter was supplied by the client, this response field is mandatory and gives the actual depth to which the server recursed. If the client did not specify the recurse
parameter, this field must be absent.
Definition at line 201 of file relations.h.