comparison 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
comparison
equal deleted inserted replaced
131:5825d48b27d1 132:1700239cab2e
1 /*******************************************************************************
2
3 copyright: Copyright (c) 2004 Kris Bell. All rights reserved
4
5 license: BSD style: $(LICENSE)
6
7 version: July 2004: Initial release
8
9 author: Kris
10
11 *******************************************************************************/
12
13 module tango.net.cluster.model.IMessage;
14
15 public import tango.time.Time;
16
17 public import tango.io.protocol.model.IReader,
18 tango.io.protocol.model.IWriter;
19
20 /*******************************************************************************
21
22 *******************************************************************************/
23
24 interface IMessage : IReadable, IWritable
25 {
26 /***********************************************************************
27
28 ***********************************************************************/
29
30 char[] toString ();
31
32 /***********************************************************************
33
34 ***********************************************************************/
35
36 IMessage clone ();
37
38 /***********************************************************************
39
40 ***********************************************************************/
41
42 void reply (char[] channel);
43
44 /***********************************************************************
45
46 ***********************************************************************/
47
48 char[] reply ();
49
50 /***********************************************************************
51
52 ***********************************************************************/
53
54 void time (Time value);
55
56 /***********************************************************************
57
58 ***********************************************************************/
59
60 Time time ();
61
62 /***********************************************************************
63
64 ***********************************************************************/
65
66 void id (uint value);
67
68 /***********************************************************************
69
70 ***********************************************************************/
71
72 uint id ();
73
74 /***********************************************************************
75
76 ***********************************************************************/
77
78 void execute ();
79 }
80
81
82 /******************************************************************************
83
84 Manages the lifespan of an ICache entry. These loaders effectively
85 isolate the cache from whence the content is derived. It's a good
86 idea to employ this abstraction where appropriate, since it allows
87 the cache source to change with minimal (if any) impact on client
88 code.
89
90 ******************************************************************************/
91
92 interface IMessageLoader
93 {
94 /**********************************************************************
95
96 Load a cache entry from wherever the content is persisted.
97 The 'time' argument represents that belonging to a stale
98 entry, which can be used to optimize the loader operation
99 (no need to perform a full load where there's already a
100 newer version in an L2 cache). This 'time' value will be
101 long.min where was no such stale entry.
102
103 **********************************************************************/
104
105 IMessage load ();
106 }
107
108
109