PG_Group_Guard.cpp

Go to the documentation of this file.
00001 #include "orbsvcs/PortableGroup/PG_Group_Guard.h"
00002 
00003 #include "orbsvcs/PortableGroup/PG_GenericFactory.h"
00004 #include "orbsvcs/PortableGroup/PG_ObjectGroupManager.h"
00005 
00006 
00007 ACE_RCSID (PortableGroup,
00008            PG_Group_Guard,
00009            "PG_Group_Guard.cpp,v 1.4 2006/03/14 06:14:34 jtc Exp")
00010 
00011 
00012 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00013 
00014 TAO_PG_Group_Guard::TAO_PG_Group_Guard (
00015   TAO_PG_GenericFactory & generic_factory,
00016   TAO_PG_Factory_Set & factory_set,
00017   TAO_PG_ObjectGroupManager & group_manager,
00018   const PortableServer::ObjectId & oid)
00019   : generic_factory_ (generic_factory),
00020     factory_set_ (factory_set),
00021     group_manager_ (group_manager),
00022     oid_ (oid),
00023     released_ (0)
00024 {
00025 }
00026 
00027 TAO_PG_Group_Guard::~TAO_PG_Group_Guard (void)
00028 {
00029   if (!this->released_)
00030     {
00031       ACE_DECLARE_NEW_CORBA_ENV;
00032       ACE_TRY
00033         {
00034           this->generic_factory_.delete_object_i (this->factory_set_,
00035                                                   1  // Ignore exceptions
00036                                                   ACE_ENV_ARG_PARAMETER);
00037           ACE_TRY_CHECK;
00038 
00039           // This should never throw an exception if this Guard is
00040           // used properly.
00041           this->group_manager_.destroy_object_group (this->oid_
00042                                                      ACE_ENV_ARG_PARAMETER);
00043           ACE_TRY_CHECK;
00044         }
00045       ACE_CATCHANY
00046         {
00047           // Ignore all exceptions.
00048         }
00049       ACE_ENDTRY;
00050     }
00051 }
00052 
00053 void
00054 TAO_PG_Group_Guard::release (void)
00055 {
00056   this->released_ = 1;
00057 }
00058 
00059 TAO_END_VERSIONED_NAMESPACE_DECL

Generated on Thu Nov 9 14:03:33 2006 for TAO_PortableGroup by doxygen 1.3.6