Here's a video showing how to create and start an application server, and how to connect to it and make requests from a C client (or from any language that supports C API extension):
Create new directory for the Golf server and also for C API client:
mkdir -p srv-example
cd srv-example
mkdir -p client
Create file "srv.golf" and copy this:
begin-handler /srv public
silent-header
@Hello world!
end-handler
Create Golf application server:
gg -k hello
Start the application server (a single-process server in this case):
mgrg -w 1 hello
Next, go to C API client directory:
cd client
Then create C file "cli.c" and copy this:
#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 i;
for (i = 0; i < 100000; i++)
{
gg_cli req;
int res = golf_client (&req, "/var/lib/gg/hello/sock/sock", "GET", "/hello", "/srv", "/");
if (res != GG_OKAY) printf("Request failed [%d] [%s]\n", res, req.errm);
else printf("%s", gg_cli_data(&req));
gg_cli_delete(&req);
}
}
Compile the client:
gcc -o cli cli.c $(gg -i) -O3
Run it:
./cli
The result is "Hello world!" 1,000,000 times from each request invocation.
Top comments (0)