begin-handler /srv public
silent-header
do-once
new-tree ind process-scope
end-do-once
get-param op
get-param key default-value ""
get-param data default-value ""
if-true op equal "add"
write-tree ind key (key) value data status st
if-true st equal GG_ERR_EXIST
@Key exists [<<print-out key>>]
else-if
@Added [<<print-out key>>]
end-if
else-if op equal "delete"
delete-tree ind key (key) value val status st
if-true st equal GG_ERR_EXIST
@Not found [<<print-out key>>]
else-if
@Deleted, old value was [<<print-out val>>]
end-if
else-if op equal "query"
read-tree ind equal (key) value val status st
if-true st equal GG_ERR_EXIST
@Not found, queried [<<print-out key>>]
else-if
@Value [<<print-out val>>]
end-if
end-if
end-handler
Copied!
#include "gcli.h"
int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params);
int golf_client (gg_cli *req, char *connection, char *method, char *app_path, char *request, char *url_params)
{
memset ((char*)req, 0, sizeof(gg_cli));
req->server = connection;
req->req_method = method;
req->app_path = app_path;
req->req = request;
req->url_params = url_params;
return gg_cli_request (req);
}
void main ()
{
int res;
char *urlreq, *data;
gg_cli req;
char dir[GG_MAX_OS_UDIR_LEN];
gg_dir (GG_DIR_SOCKFILE, dir, sizeof(dir), "index", NULL);
urlreq = "/op=add/key=some_key/data=some_data";
res = golf_client (&req, dir, "GET", "/index", "/srv", urlreq);
if (res != GG_OKAY) printf("Request failed [%d] [%s]\n", res, req.errm); else printf("%s", gg_cli_data(&req));
gg_cli_delete(&req);
urlreq = "/op=query/key=some_key";
res = golf_client (&req, dir, "GET", "/index", "/srv", urlreq);
if (res != GG_OKAY) printf("Request failed [%d] [%s]\n", res, req.errm); else printf("%s", data = gg_cli_data(&req));
gg_cli_delete(&req);
urlreq = "/op=delete/key=some_key";
res = golf_client (&req, dir, "GET", "/index", "/srv", urlreq);
if (res != GG_OKAY) printf("Request failed [%d] [%s]\n", res, req.errm); else printf("%s", data=gg_cli_data(&req));
gg_cli_delete(&req);
}
Copied!