QEverCloud  6.1.0
Unofficial Evernote Cloud API for Qt
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. More...
 

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. More...
 

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:

NoteStore* ns;
Note note;
...
QObject::connect(ns->createNoteAsync(note), &AsyncResult::finished,
[ns](
QVariant result,
{
if (error) {
// do something in case of an error
}
else {
Note note = result.value<Note>();
// process returned result
}
});

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 Function Documentation

◆ DurableService

friend class DurableService
friend
qevercloud::AsyncResult::finished
void finished(QVariant result, EverCloudExceptionDataPtr error, IRequestContextPtr ctx)
Emitted upon asynchronous call completition.
qevercloud::IRequestContextPtr
std::shared_ptr< IRequestContext > IRequestContextPtr
Definition: RequestContext.h:81
qevercloud::EverCloudExceptionDataPtr
std::shared_ptr< EverCloudExceptionData > EverCloudExceptionDataPtr
Definition: EverCloudException.h:149