diff options
Diffstat (limited to 'trunk/TAO/orbsvcs/examples/FaultTolerance/RolyPoly/RolyPoly_i.cpp')
-rw-r--r-- | trunk/TAO/orbsvcs/examples/FaultTolerance/RolyPoly/RolyPoly_i.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/trunk/TAO/orbsvcs/examples/FaultTolerance/RolyPoly/RolyPoly_i.cpp b/trunk/TAO/orbsvcs/examples/FaultTolerance/RolyPoly/RolyPoly_i.cpp new file mode 100644 index 00000000000..d3c4a92cde6 --- /dev/null +++ b/trunk/TAO/orbsvcs/examples/FaultTolerance/RolyPoly/RolyPoly_i.cpp @@ -0,0 +1,72 @@ +// file : RolyPoly/RolyPoly_i.cpp +// author : Boris Kolpackov <boris@dre.vanderbilt.edu> +// cvs-id : $Id$ + +#include "RolyPoly_i.h" +#include "StateUpdate.h" +#include "tao/AnyTypeCode/Any.h" + +RolyPoly_i::RolyPoly_i (CORBA::ORB_ptr orb) + : number_ (0) + , orb_ (CORBA::ORB::_duplicate (orb)) +{ +} + +RolyPoly_i::~RolyPoly_i (void) +{ +} + +CORBA::Any* RolyPoly_i:: +get_state () +{ + /* + CORBA::Any_var state (new CORBA::Any); + + *state <<= this->number_; + + return state._retn (); + */ + + return 0; +} + + +void RolyPoly_i:: +set_state (CORBA::Any const& state) +{ + state >>= this->number_; +} + + +CORBA::Short +RolyPoly_i::number (char *&str + ACE_ENV_ARG_DECL_NOT_USED) + ACE_THROW_SPEC ((CORBA::SystemException, RolyPoly::E)) +{ + CORBA::string_free (str); + + str = CORBA::string_dup ("Greetings from RolyPoly."); + + ++this->number_; + + + // Preppare state update. + // + + CORBA::Any a; + + a <<= this->number_; + + associate_state (orb_.in (), a); + + return this->number_; +} + +void +RolyPoly_i::shutdown (ACE_ENV_SINGLE_ARG_DECL) + ACE_THROW_SPEC ((CORBA::SystemException)) +{ + ACE_DEBUG ((LM_DEBUG, "Server is shutting down.\n")); + + this->orb_->shutdown (0 ACE_ENV_ARG_PARAMETER); +} |