#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <event2/event.h>
static void
{
fprintf(stderr,
"ERROR: %s\n",
lcb_strerror(instance, err));
exit(EXIT_FAILURE);
}
cmds[0] = &cmd;
memset(&cmd, 0, sizeof(cmd));
cmd.v.v0.nkey = 3;
cmd.v.v0.bytes = "bar";
cmd.v.v0.nbytes = 3;
fprintf(stderr,
"Failed to set up store request: %s\n",
lcb_strerror(instance, err));
exit(EXIT_FAILURE);
}
}
static void
get_callback(lcb_t instance,
const void *cookie,
lcb_error_t error,
{
fprintf(stderr,
"Failed to get key: %s\n",
lcb_strerror(instance, error));
exit(EXIT_FAILURE);
}
fprintf(stdout, "I stored and retrieved the key 'foo'. Terminate program\n");
(void)cookie; (void)resp;
}
static void
store_callback(lcb_t instance,
const void *cookie,
lcb_storage_t op,
{
cmds[0] = &cmd;
fprintf(stderr,
"Failed to store key: %s\n",
lcb_strerror(instance, error));
exit(EXIT_FAILURE);
}
memset(&cmd, 0, sizeof(cmd));
cmd.v.v0.nkey = 3;
error =
lcb_get(instance, NULL, 1, cmds);
fprintf(stderr,
"Failed to setup get request: %s\n",
lcb_strerror(instance, error));
exit(EXIT_FAILURE);
}
(void)cookie; (void)op; (void)resp;
}
static lcb_io_opt_t
create_libevent_io_ops(struct event_base *evbase)
{
lcb_io_opt_t ioops;
memset(&ciops, 0, sizeof(ciops));
ciops.v.v0.cookie = evbase;
fprintf(stderr,
"Failed to create an IOOPS structure for libevent: %s\n",
lcb_strerror(NULL, error));
exit(EXIT_FAILURE);
}
return ioops;
}
static lcb_t
create_libcouchbase_handle(lcb_io_opt_t ioops)
{
lcb_t instance;
memset(&copts, 0, sizeof(copts));
copts.v.v0.host = getenv("LCB_EVENT_SERVER");
copts.v.v0.io = ioops;
fprintf(stderr,
"Failed to create a libcouchbase instance: %s\n",
lcb_strerror(NULL, error));
exit(EXIT_FAILURE);
}
fprintf(stderr,
"Failed to connect libcouchbase instance: %s\n",
lcb_strerror(NULL, error));
exit(EXIT_FAILURE);
}
return instance;
}
int main(void)
{
struct event_base *evbase = event_base_new();
lcb_io_opt_t ioops = create_libevent_io_ops(evbase);
lcb_t instance = create_libcouchbase_handle(ioops);
event_base_loop(evbase, 0);
event_base_free(evbase);
exit(EXIT_SUCCESS);
}