Mercurial > projects > ldc
comparison tests/mini/interface8.d @ 807:d92acb81a583
Add interface minitest, rework s.d.
author | Christian Kamm <kamm incasoftware de> |
---|---|
date | Sun, 30 Nov 2008 11:54:18 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
806:96b404ba7eb0 | 807:d92acb81a583 |
---|---|
1 interface InputStream | |
2 { | |
3 void foo(); | |
4 } | |
5 | |
6 interface OutputStream | |
7 { | |
8 void bar(); | |
9 } | |
10 | |
11 interface IConduit : InputStream, OutputStream | |
12 { | |
13 abstract uint bufferSize(); | |
14 } | |
15 | |
16 class Conduit : IConduit | |
17 { | |
18 abstract uint bufferSize(); | |
19 abstract void foo(); | |
20 abstract void bar(); | |
21 } | |
22 | |
23 interface Selectable | |
24 { | |
25 void car(); | |
26 } | |
27 | |
28 class DeviceConduit : Conduit, Selectable | |
29 { | |
30 override uint bufferSize () | |
31 { | |
32 return 1024 * 16; | |
33 } | |
34 override void foo() {} | |
35 override void bar() {} | |
36 override void car() {} | |
37 int handle; | |
38 } | |
39 | |
40 class ConsoleConduit : DeviceConduit | |
41 { | |
42 override void foo() {} | |
43 bool redirected; | |
44 } | |
45 | |
46 class OtherConduit : Conduit | |
47 { | |
48 abstract uint bufferSize(); | |
49 override void foo() {} | |
50 override void bar() {} | |
51 } | |
52 | |
53 void main() | |
54 { | |
55 auto c = new ConsoleConduit; | |
56 IConduit ci = c; | |
57 assert(c.bufferSize == ci.bufferSize); | |
58 } | |
59 |