[Vala] Gearmand Vapi



  I've  created  vapi for gearmand ( http://gearman.org/ ) library, in
  short,  it's  a  job  server/client  with  bindings  to almost every
  popular language.

  As  i'm  new to Vala i will appreciate if anyone checks vapi and find
  errors or gives some advice on better syntax.

  Thanks.

  Example of use (assuming --pkg gearmand):

using Gearman;

void testClient ()
{
        stdout.printf ("Running client \n");
        var client = Gearman.Client ();
        client.add_server ("localhost", 4730);

        Gearman.ReturnError? rc;
        size_t? result_size;
        
        void * value = client.do("reverse", "unique_value",
                                                         "my string to reverse", "my string to 
reverse".length,
                                                         out result_size, out rc);
        string *result = value;
        stdout.printf ("Result: %s \n", result);
}

void testWorker ()
{
        stdout.printf ("Running worker \n");
        var worker = Gearman.Worker ();
        worker.add_server ("localhost", 4730);

        ReturnError ret = worker.add_function("reverse", 0, reverse, null);
        while (true)
        {
                worker.work();
        }
}

void main (string[] args)
{
        stdout.printf ("Gearman version: %s\n", Gearman.Version);
        
        if (args[1] == "worker")
                testWorker ();
        else
                testClient ();
}

void * reverse (Gearman.Job job, void * context, size_t size, ReturnError ret)
{
        string *str = job.workload();
        string result = str->reverse();
        
        job.send_complete(result, result.length);
        
        stdout.printf ("Request: '%s'\n", str);
        stdout.printf ("Result:  '%s'\n", result);
        return null;
}

Attachment: gearmand.vapi
Description: Binary data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]