123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- //
- // 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;
- }
|