diff options
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.cpp | 26 |
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 (); + } +} |