QEverCloud 6.1.0
Unofficial Evernote Cloud API for Qt
Loading...
Searching...
No Matches
Public Types | Signals | Public Member Functions | Static Public Member Functions | Friends | List of all members
qevercloud::AsyncResult Class Reference

Returned by asynchonous versions of functions. More...

#include <AsyncResult.h>

Inheritance diagram for qevercloud::AsyncResult:

Public Types

typedef QVariant(* ReadFunctionType) (QByteArray replyData)
 

Signals

void finished (QVariant result, EverCloudExceptionDataPtr error, IRequestContextPtr ctx)
 Emitted upon asynchronous call completition.
 

Public Member Functions

 AsyncResult (QString url, QByteArray postData, IRequestContextPtr ctx, ReadFunctionType readFunction=AsyncResult::asIs, bool autoDelete=true, QObject *parent=nullptr)
 
 AsyncResult (QNetworkRequest request, QByteArray postData, IRequestContextPtr ctx, ReadFunctionType readFunction=AsyncResult::asIs, bool autoDelete=true, QObject *parent=nullptr)
 
 AsyncResult (QVariant result, EverCloudExceptionDataPtr error, IRequestContextPtr ctx, bool autoDelete=true, QObject *parent=nullptr)
 
 ~AsyncResult ()
 
bool waitForFinished (int timeout=-1)
 Wait for asynchronous operation to complete.
 

Static Public Member Functions

static QVariant asIs (QByteArray replyData)
 

Friends

class DurableService
 

Detailed Description

Returned by asynchonous versions of functions.

Wait for AsyncResult::finished signal.

Intended usage is something like this:

Note note;
...
QObject::connect(ns->createNoteAsync(note), &AsyncResult::finished,
[ns](
{
if (error) {
// do something in case of an error
}
else {
Note note = result.value<Note>();
// process returned result
}
});
void finished(QVariant result, EverCloudExceptionDataPtr error, IRequestContextPtr ctx)
Emitted upon asynchronous call completition.
std::shared_ptr< EverCloudExceptionData > EverCloudExceptionDataPtr
Definition EverCloudException.h:149
std::shared_ptr< IRequestContext > IRequestContextPtr
Definition RequestContext.h:81
Definition Types.h:3543

Member Typedef Documentation

◆ ReadFunctionType

typedef QVariant(* qevercloud::AsyncResult::ReadFunctionType) (QByteArray replyData)

Constructor & Destructor Documentation

◆ AsyncResult() [1/3]

qevercloud::AsyncResult::AsyncResult ( QString url,
QByteArray postData,
IRequestContextPtr ctx,
ReadFunctionType readFunction = AsyncResult::asIs,
bool autoDelete = true,
QObject * parent = nullptr )

◆ AsyncResult() [2/3]

qevercloud::AsyncResult::AsyncResult ( QNetworkRequest request,
QByteArray postData,
IRequestContextPtr ctx,
ReadFunctionType readFunction = AsyncResult::asIs,
bool autoDelete = true,
QObject * parent = nullptr )

◆ AsyncResult() [3/3]

qevercloud::AsyncResult::AsyncResult ( QVariant result,
EverCloudExceptionDataPtr error,
IRequestContextPtr ctx,
bool autoDelete = true,
QObject * parent = nullptr )

Constructor accepting already prepared value and/or exception, for use in tests

◆ ~AsyncResult()

qevercloud::AsyncResult::~AsyncResult ( )

Member Function Documentation

◆ asIs()

static QVariant qevercloud::AsyncResult::asIs ( QByteArray replyData)
static

◆ finished

void qevercloud::AsyncResult::finished ( QVariant result,
EverCloudExceptionDataPtr error,
IRequestContextPtr ctx )
signal

Emitted upon asynchronous call completition.

Parameters
resultRequest result
errorNon-nullptr in case of an error. See EverCloudExceptionData for more details
ctxRequest context used to make the request

AsyncResult deletes itself after emitting this signal (if autoDelete parameter passed to its constructor was set to true). You don't have to manage it's lifetime explicitly.

◆ waitForFinished()

bool qevercloud::AsyncResult::waitForFinished ( int timeout = -1)

Wait for asynchronous operation to complete.

Parameters
timeoutMaximum time to wait in milliseconds. Forever if < 0.
Returns
true if finished successfully, false in case of the timeout

Friends And Related Symbol Documentation

◆ DurableService

friend class DurableService
friend