diff options
author | michael-grunder <michael.grunder@gmail.com> | 2020-08-06 12:41:58 -0700 |
---|---|---|
committer | michael-grunder <michael.grunder@gmail.com> | 2020-08-06 12:41:58 -0700 |
commit | 5f536b5d23082fe1251c6627a835f3a75803c3e0 (patch) | |
tree | 42a55715e03e4ace424daf30a2b8b9da5871937b /deps/hiredis/examples/example-macosx.c | |
parent | 3ddb6ffa34740b877c759e9f0bd422f33424cd3b (diff) | |
parent | 7ee5a41aac7e5abc90d050fa509fa953ca7f1da1 (diff) | |
download | redis-5f536b5d23082fe1251c6627a835f3a75803c3e0.tar.gz |
Merge commit '7ee5a41aac7e5abc90d050fa509fa953ca7f1da1' as 'deps/hiredis'
Diffstat (limited to 'deps/hiredis/examples/example-macosx.c')
-rw-r--r-- | deps/hiredis/examples/example-macosx.c | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/deps/hiredis/examples/example-macosx.c b/deps/hiredis/examples/example-macosx.c new file mode 100644 index 000000000..bc84ed5ba --- /dev/null +++ b/deps/hiredis/examples/example-macosx.c @@ -0,0 +1,66 @@ +// +// Created by Дмитрий Бахвалов on 13.07.15. +// Copyright (c) 2015 Dmitry Bakhvalov. All rights reserved. +// + +#include <stdio.h> + +#include <hiredis.h> +#include <async.h> +#include <adapters/macosx.h> + +void getCallback(redisAsyncContext *c, void *r, void *privdata) { + redisReply *reply = r; + if (reply == NULL) return; + printf("argv[%s]: %s\n", (char*)privdata, reply->str); + + /* Disconnect after receiving the reply to GET */ + redisAsyncDisconnect(c); +} + +void connectCallback(const redisAsyncContext *c, int status) { + if (status != REDIS_OK) { + printf("Error: %s\n", c->errstr); + return; + } + printf("Connected...\n"); +} + +void disconnectCallback(const redisAsyncContext *c, int status) { + if (status != REDIS_OK) { + printf("Error: %s\n", c->errstr); + return; + } + CFRunLoopStop(CFRunLoopGetCurrent()); + printf("Disconnected...\n"); +} + +int main (int argc, char **argv) { + signal(SIGPIPE, SIG_IGN); + + CFRunLoopRef loop = CFRunLoopGetCurrent(); + if( !loop ) { + printf("Error: Cannot get current run loop\n"); + return 1; + } + + redisAsyncContext *c = redisAsyncConnect("127.0.0.1", 6379); + if (c->err) { + /* Let *c leak for now... */ + printf("Error: %s\n", c->errstr); + return 1; + } + + redisMacOSAttach(c, loop); + + redisAsyncSetConnectCallback(c,connectCallback); + redisAsyncSetDisconnectCallback(c,disconnectCallback); + + redisAsyncCommand(c, NULL, NULL, "SET key %b", argv[argc-1], strlen(argv[argc-1])); + redisAsyncCommand(c, getCallback, (char*)"end-1", "GET key"); + + CFRunLoopRun(); + + return 0; +} + |