#ifndef COLLECTOR_IDL #define COLLECTOR_IDL interface Checkable; // forward declaration interface Collectable { boolean gcCheck(); boolean attach(in Checkable aRef); boolean detach(in Checkable aRef); }; interface Checkable { boolean stillLive(); }; interface GarbageCollector { boolean register(in Collectable aRef); }; interface Account : Collectable { string getId(); }; interface Bank // account factory { Account newAccount (in string accountId, in Checkable aClient); }; #endif