summaryrefslogtreecommitdiff
path: root/ACE/TAO/examples/Simple/bank/Bank.idl
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/examples/Simple/bank/Bank.idl')
-rw-r--r--ACE/TAO/examples/Simple/bank/Bank.idl59
1 files changed, 59 insertions, 0 deletions
diff --git a/ACE/TAO/examples/Simple/bank/Bank.idl b/ACE/TAO/examples/Simple/bank/Bank.idl
new file mode 100644
index 00000000000..7061fcaf462
--- /dev/null
+++ b/ACE/TAO/examples/Simple/bank/Bank.idl
@@ -0,0 +1,59 @@
+// -*- C++ -*-
+// $Id$
+
+module Bank
+{
+ // = TITLE
+ // This module has two interfaces. One represents a bank Account and
+ // the other is a factory to create the Account Objects.
+
+ interface Account
+ {
+ // = TITLE
+ // This interface represents an account with operations to check
+ // balance, deposit and withdraw.
+
+ exception Overdraft
+ {
+ // = TITLE
+ // This exception is raised if the client tries to
+ // withdraw more money than the current balance.
+
+ string reason;
+ };
+
+ readonly attribute float balance;
+ // Attribute to obtain the current <balance>.
+
+ void deposit (in float amount);
+ // Add <amount> to this account.
+
+ void withdraw (in float amount) raises (Overdraft);
+ // Withdraw <amount from this account.
+
+ attribute string name;
+ // The <name> of this account.
+ };
+
+ interface AccountManager
+ {
+ // = TITLE
+ // This interface is a factory for the <Account> objects. It has
+ // operations to create <Account>s and to delete them.
+
+ Account open (in string name,
+ in float initial_balance);
+ // Returns the <Account> associated with <name>. If this is the
+ // first time <name> has been seen, the server will create the
+ // account. Otherwise, the server will return back an object
+ // reference to a previously created account.
+
+ void close (in Account account_);
+ // Close down the account and release its resources if it's the
+ // last reference to the <account>. Once this call is made it
+ // is no longer valid to access the <account>.
+
+ void shutdown ();
+ // This operation shuts down the server.
+ };
+};