1 #include <iostream>
2 using namespace std;
3 
4 #include <QCoreApplication>
5 #include <QTimer>
6 
7 #include "example-qt.h"
8 
getCallback(redisAsyncContext *,void * r,void * privdata)9 void getCallback(redisAsyncContext *, void * r, void * privdata) {
10 
11     redisReply * reply = static_cast<redisReply *>(r);
12     ExampleQt * ex = static_cast<ExampleQt *>(privdata);
13     if (reply == nullptr || ex == nullptr) return;
14 
15     cout << "key: " << reply->str << endl;
16 
17     ex->finish();
18 }
19 
run()20 void ExampleQt::run() {
21 
22     m_ctx = redisAsyncConnect("localhost", 6379);
23 
24     if (m_ctx->err) {
25         cerr << "Error: " << m_ctx->errstr << endl;
26         redisAsyncFree(m_ctx);
27         emit finished();
28     }
29 
30     m_adapter.setContext(m_ctx);
31 
32     redisAsyncCommand(m_ctx, NULL, NULL, "SET key %s", m_value);
33     redisAsyncCommand(m_ctx, getCallback, this, "GET key");
34 }
35 
main(int argc,char ** argv)36 int main (int argc, char **argv) {
37 
38     QCoreApplication app(argc, argv);
39 
40     ExampleQt example(argv[argc-1]);
41 
42     QObject::connect(&example, SIGNAL(finished()), &app, SLOT(quit()));
43     QTimer::singleShot(0, &example, SLOT(run()));
44 
45     return app.exec();
46 }
47