view tango/example/cluster/reply.d @ 341:1bb99290e03a trunk

[svn r362] Started merging the old 'test' dir as well as the newer 'tangotests' dir into 'tests/mini' and 'tests/minicomplex'.
author lindquist
date Sun, 13 Jul 2008 02:51:19 +0200
parents 1700239cab2e
children
line wrap: on
line source

private import  tango.core.Thread;

private import  tango.util.log.Configurator;

private import  tango.net.cluster.tina.Cluster;

private import  tango.net.cluster.NetworkQueue;

/*******************************************************************************

*******************************************************************************/

void main()
{
        // open the cluster and a queue channel. Note that the queue has
        // been configured with a reply listener ...
        auto cluster = (new Cluster).join;
        auto queue = new NetworkQueue (cluster, "message.channel", 
                                      (IEvent event){event.log.info ("Received reply");}
                                      );

        void recipient (IEvent event)
        {
                auto msg = event.get;
        
                event.log.info ("Replying to message on channel "~msg.reply);
                event.reply (event.replyChannel(msg), queue.EmptyMessage);
        }

        // setup a listener to recieve and reply
        queue.createConsumer (&recipient);

        // toss a message out to the cluster
        queue.put (queue.EmptyMessage);

        // wait for completion ...
        Thread.sleep (1);
}