Mercurial > projects > ldc
view tango/tango/net/cluster/model/IMessage.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
/******************************************************************************* copyright: Copyright (c) 2004 Kris Bell. All rights reserved license: BSD style: $(LICENSE) version: July 2004: Initial release author: Kris *******************************************************************************/ module tango.net.cluster.model.IMessage; public import tango.time.Time; public import tango.io.protocol.model.IReader, tango.io.protocol.model.IWriter; /******************************************************************************* *******************************************************************************/ interface IMessage : IReadable, IWritable { /*********************************************************************** ***********************************************************************/ char[] toString (); /*********************************************************************** ***********************************************************************/ IMessage clone (); /*********************************************************************** ***********************************************************************/ void reply (char[] channel); /*********************************************************************** ***********************************************************************/ char[] reply (); /*********************************************************************** ***********************************************************************/ void time (Time value); /*********************************************************************** ***********************************************************************/ Time time (); /*********************************************************************** ***********************************************************************/ void id (uint value); /*********************************************************************** ***********************************************************************/ uint id (); /*********************************************************************** ***********************************************************************/ void execute (); } /****************************************************************************** Manages the lifespan of an ICache entry. These loaders effectively isolate the cache from whence the content is derived. It's a good idea to employ this abstraction where appropriate, since it allows the cache source to change with minimal (if any) impact on client code. ******************************************************************************/ interface IMessageLoader { /********************************************************************** Load a cache entry from wherever the content is persisted. The 'time' argument represents that belonging to a stale entry, which can be used to optimize the loader operation (no need to perform a full load where there's already a newer version in an L2 cache). This 'time' value will be long.min where was no such stale entry. **********************************************************************/ IMessage load (); }