summaryrefslogtreecommitdiff
path: root/TAO/examples/Simple/bank/Account_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/examples/Simple/bank/Account_i.cpp')
-rw-r--r--TAO/examples/Simple/bank/Account_i.cpp70
1 files changed, 70 insertions, 0 deletions
diff --git a/TAO/examples/Simple/bank/Account_i.cpp b/TAO/examples/Simple/bank/Account_i.cpp
new file mode 100644
index 00000000000..ca440ad854c
--- /dev/null
+++ b/TAO/examples/Simple/bank/Account_i.cpp
@@ -0,0 +1,70 @@
+// $Id$
+
+#include "Account_i.h"
+
+ACE_RCSID(Bank, Account_i, "$Id$")
+
+// Constructor
+
+Account_i::Account_i (void)
+{
+ // no-op
+}
+
+Account_i::Account_i (const char *name,
+ CORBA::Float balance)
+
+ : balance_ (balance),
+ name_ (CORBA::string_dup (name))
+{
+}
+
+// Destructor
+
+Account_i::~Account_i (void)
+{
+ CORBA::string_free (name_);
+}
+
+// Set the ORB pointer.
+
+void
+Account_i::orb (CORBA::ORB_ptr o)
+{
+ this->orb_ = CORBA::ORB::_duplicate (o);
+}
+
+// Return the current balance on the server.
+
+CORBA::Float
+Account_i::balance (void)
+{
+ return balance_;
+}
+
+void
+Account_i::deposit (CORBA::Float deposit)
+{
+ balance_ += deposit;
+}
+
+void
+Account_i::withdraw (CORBA::Float withdrawl)
+{
+ if (balance_ >= withdrawl)
+ balance_ -= withdrawl;
+ else
+ throw Bank::Account::Overdraft ("Exception::Overdraft\n");
+}
+
+char *
+Account_i::name (void)
+{
+ return CORBA::string_dup (this->name_.in ());
+}
+
+void
+Account_i::name (const char *name)
+{
+ this->name_ = CORBA::string_dup (name);
+}