http://gearman.info/libgearman/examples.html
And my makefile:
a.out:callrev.cpp
clang++ -o $@ $^ -std=c++11 -lgearman
Together with the worker command from last post, here is a complete C++ program as a client:
#include <libgearman/gearman.h> #include <iostream> #include <cstring> using namespace std; int main(){ gearman_client_st* gclient = gearman_client_create(NULL); gearman_return_t gsc = gearman_client_add_server(gclient, "127.0.0.1",4730); auto status_print = [](gearman_return_t gserver_code){ cout<<gserver_code<< " -- "; if (gearman_success(gserver_code)) cout<<"success"; if (gearman_failed(gserver_code)) cout<<"failed"; if (gearman_continue(gserver_code)) cout<<"continue"; cout<<endl; }; status_print(gsc); const char* function_name = "wwcc"; const char* unique = "whatever unique"; const char* workload = "aa bb cc"; size_t workload_size = strlen(workload); size_t result_size; gearman_return_t return_code; void* value = gearman_client_do(gclient, function_name, unique, workload, workload_size, &result_size, &return_code); status_print(return_code); const char* result = static_cast<char*>(value); cout<<result<<endl; free(value); gearman_client_free(gclient); return 0; }
No comments:
Post a Comment