view tango/example/cluster/qlisten.d @ 132:1700239cab2e trunk

[svn r136] MAJOR UNSTABLE UPDATE!!! Initial commit after moving to Tango instead of Phobos. Lots of bugfixes... This build is not suitable for most things.
author lindquist
date Fri, 11 Jan 2008 17:57:40 +0100
parents
children
line wrap: on
line source

private import  tango.core.Thread;

private import  tango.util.log.Configurator;

private import  tango.net.cluster.NetworkQueue;

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

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

        Illustrates how to setup and use a Queue in asynchronous mode

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

void main ()
{
        void listen (IEvent event)
        {
                while (event.get)
                       event.log.info ("received asynch msg on channel " ~ event.channel.name);
        }
                

        // join the cluster 
        auto cluster = (new Cluster).join;

        // access a queue of the specified name
        auto queue = new NetworkQueue (cluster, "my.queue.channel");

        // listen for messages placed in my queue, via a delegate
        queue.createConsumer (&listen);

        // stuff something into the queue
        queue.log.info ("sending three messages to the queue");
        queue.put (queue.EmptyMessage);
        queue.put (queue.EmptyMessage);
        queue.put (queue.EmptyMessage);

        // wait for asynchronous msgs to arrive ...
        Thread.sleep (1);
}