view tests/mini/interface8.d @ 1596:42fc0d955a0d

Updated runtest to always rebuild libtangobos-partial.a in case of updates. Changed std.stdarg to import ldc.vararg so it has the correct implementation.
author Robert Clipsham <robert@octarineparrot.com>
date Sun, 15 Nov 2009 13:22:02 +0000
parents d92acb81a583
children
line wrap: on
line source

interface InputStream
{
  void foo();
}

interface OutputStream
{
  void bar();
}

interface IConduit : InputStream, OutputStream
{
  abstract uint bufferSize();
}

class Conduit : IConduit
{
  abstract uint bufferSize();
  abstract void foo();
  abstract void bar();
}

interface Selectable
{
  void car();
}

class DeviceConduit : Conduit, Selectable
{
        override uint bufferSize ()
        {
                return 1024 * 16;
        }
  override void foo() {}
  override void bar() {}
  override void car() {}
  int handle;
}

class ConsoleConduit : DeviceConduit
{
  override void foo() {}
  bool redirected;
}

class OtherConduit : Conduit
{
  abstract uint bufferSize();
  override void foo() {}
  override void bar() {}
}

void main()
{
  auto c = new ConsoleConduit;
  IConduit ci = c;
  assert(c.bufferSize == ci.bufferSize);
}