//
// Bank.idl
//
module Bank
{
   interface Account
   {
      readonly attribute string name;
      readonly attribute float balance;

      exception InsufficientFunds {};

      void deposit (in float amount);
      void withdraw (in float amount) raises (InsufficientFunds);
   };

   interface AccountManager
   {
      exception AlreadyExists {};
      exception NotFound {};

      void createAccount (in string name, in float amount) raises (AlreadyExists);
      Account getAccount (in string name) raises (NotFound);
   };
};
