summaryrefslogtreecommitdiff
path: root/ACE/TAO/docs/tutorials/Quoter/Simple/ImprovedServer/Stock_Factory_i.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/TAO/docs/tutorials/Quoter/Simple/ImprovedServer/Stock_Factory_i.cpp')
-rw-r--r--ACE/TAO/docs/tutorials/Quoter/Simple/ImprovedServer/Stock_Factory_i.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/ACE/TAO/docs/tutorials/Quoter/Simple/ImprovedServer/Stock_Factory_i.cpp b/ACE/TAO/docs/tutorials/Quoter/Simple/ImprovedServer/Stock_Factory_i.cpp
new file mode 100644
index 00000000000..0623650f173
--- /dev/null
+++ b/ACE/TAO/docs/tutorials/Quoter/Simple/ImprovedServer/Stock_Factory_i.cpp
@@ -0,0 +1,26 @@
+//
+// $Id$
+//
+
+#include "Stock_Factory_i.h"
+
+Quoter_Stock_Factory_i::Quoter_Stock_Factory_i (PortableServer::POA_ptr poa)
+ : stock_factory_poa_ (PortableServer::POA::_duplicate (poa))
+{
+}
+
+Quoter::Stock_ptr
+Quoter_Stock_Factory_i::get_stock (const char *symbol)
+{
+ PortableServer::ObjectId_var oid =
+ PortableServer::string_to_ObjectId (symbol);
+
+ try {
+ CORBA::Object_var tmp =
+ this->stock_factory_poa_->id_to_reference (oid.in ());
+ return Quoter::Stock::_narrow (tmp.in ());
+ }
+ catch (PortableServer::POA::ObjectNotActive &) {
+ throw Quoter::Invalid_Stock_Symbol ();
+ }
+}