view tango/example/cluster/reply.d @ 235:c603041da866 trunk

[svn r251] fixed arguments checking in runtest script
author ChristianK
date Sun, 08 Jun 2008 12:06:22 +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);
}