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