#include <LifespanStrategyPersistent.h>
Inheritance diagram for TAO::Portable_Server::LifespanStrategyPersistent:
Public Member Functions | |
LifespanStrategyPersistent () | |
virtual void | strategy_init (TAO_Root_POA *poa) |
virtual void | notify_startup (void) |
virtual void | notify_shutdown (void) |
char | key_type (void) const |
virtual CORBA::Boolean | is_persistent (void) const |
Do we have set persistent or not,. | |
CORBA::ULong | key_length (void) const |
virtual void | create_key (CORBA::Octet *buffer, CORBA::ULong &starting_at) |
virtual bool | validate (CORBA::Boolean is_persistent, const TAO::Portable_Server::Temporary_Creation_Time &creation_time) const |
Validate whether this matches the set lifespan strategy. | |
virtual void | check_state (void) |
Check the state of the POA. | |
virtual ::PortableServer::LifespanPolicyValue | type () const |
virtual bool | use_imr () const |
Private Attributes | |
bool | use_imr_ |
Definition at line 33 of file LifespanStrategyPersistent.h.
TAO::Portable_Server::LifespanStrategyPersistent::LifespanStrategyPersistent | ( | ) |
Definition at line 127 of file LifespanStrategyPersistent.cpp.
00127 : 00128 use_imr_ (true) 00129 { 00130 }
void TAO::Portable_Server::LifespanStrategyPersistent::check_state | ( | void | ) | [virtual] |
Check the state of the POA.
Implements TAO::Portable_Server::LifespanStrategy.
Definition at line 133 of file LifespanStrategyPersistent.cpp.
References TAO_POA_Manager::check_state(), TAO::Portable_Server::LifespanStrategy::poa_, and TAO_Root_POA::tao_poa_manager().
00134 { 00135 this->poa_->tao_poa_manager().check_state (); 00136 }
void TAO::Portable_Server::LifespanStrategyPersistent::create_key | ( | CORBA::Octet * | buffer, | |
CORBA::ULong & | starting_at | |||
) | [virtual] |
Implements TAO::Portable_Server::LifespanStrategy.
Definition at line 52 of file LifespanStrategyPersistent.cpp.
References key_type(), and TAO::Portable_Server::LifespanStrategy::key_type_length().
00055 { 00056 // Copy the persistence byte. 00057 buffer[starting_at] = static_cast<CORBA::Octet> (this->key_type ()); 00058 starting_at += this->key_type_length (); 00059 }
CORBA::Boolean TAO::Portable_Server::LifespanStrategyPersistent::is_persistent | ( | void | ) | const [virtual] |
Do we have set persistent or not,.
Implements TAO::Portable_Server::LifespanStrategy.
Definition at line 46 of file LifespanStrategyPersistent.cpp.
CORBA::ULong TAO::Portable_Server::LifespanStrategyPersistent::key_length | ( | void | ) | const [virtual] |
Returns the length of the key type
Implements TAO::Portable_Server::LifespanStrategy.
Definition at line 62 of file LifespanStrategyPersistent.cpp.
References TAO::Portable_Server::LifespanStrategy::key_type_length().
00063 { 00064 return this->key_type_length (); 00065 }
char TAO::Portable_Server::LifespanStrategyPersistent::key_type | ( | void | ) | const |
void TAO::Portable_Server::LifespanStrategyPersistent::notify_shutdown | ( | void | ) | [virtual] |
Implements TAO::Portable_Server::LifespanStrategy.
Definition at line 114 of file LifespanStrategyPersistent.cpp.
References TAO_Root_POA::imr_client_adapter_name(), TAO::Portable_Server::ImR_Client_Adapter::imr_notify_shutdown(), and ACE_Dynamic_Service< TYPE >::instance().
00115 { 00116 ImR_Client_Adapter *adapter = 00117 ACE_Dynamic_Service<ImR_Client_Adapter>::instance ( 00118 TAO_Root_POA::imr_client_adapter_name () 00119 ); 00120 00121 if (adapter != 0) 00122 { 00123 adapter->imr_notify_shutdown (this->poa_); 00124 } 00125 }
void TAO::Portable_Server::LifespanStrategyPersistent::notify_startup | ( | void | ) | [virtual] |
Implements TAO::Portable_Server::LifespanStrategy.
Definition at line 68 of file LifespanStrategyPersistent.cpp.
References ACE_DYNAMIC_SERVICE_DIRECTIVE, ACE_ERROR, ACE_TEXT(), TAO_Root_POA::imr_client_adapter_name(), TAO::Portable_Server::ImR_Client_Adapter::imr_notify_startup(), ACE_Dynamic_Service< TYPE >::instance(), LM_ERROR, and ACE_Service_Config::process_directive().
00069 { 00070 if (this->use_imr_) 00071 { 00072 // The user specified that the ImR should be used. 00073 ImR_Client_Adapter *adapter = 00074 ACE_Dynamic_Service<ImR_Client_Adapter>::instance ( 00075 TAO_Root_POA::imr_client_adapter_name () 00076 ); 00077 00078 #if !defined (TAO_AS_STATIC_LIBS) 00079 // In case we build shared, try to load the ImR Client library, in a 00080 // static build we just can't do this, so don't try it, lower layers 00081 // output an error then. 00082 if (adapter == 0) 00083 { 00084 ACE_Service_Config::process_directive ( 00085 ACE_DYNAMIC_SERVICE_DIRECTIVE( 00086 "ImR_Client_Adapter", "TAO_ImR_Client", 00087 "_make_ImR_Client_Adapter_Impl", "")); 00088 00089 adapter = 00090 ACE_Dynamic_Service<ImR_Client_Adapter>::instance ( 00091 TAO_Root_POA::imr_client_adapter_name ()); 00092 } 00093 #endif /* !TAO_AS_STATIC_LIBS */ 00094 00095 if (adapter != 0) 00096 { 00097 adapter->imr_notify_startup (this->poa_); 00098 } 00099 else 00100 { 00101 // When we don't have a ImR_Client adapter, but the user 00102 // has specified that the ImR has to be used we have an 00103 // error situation which has to be reported. 00104 ACE_ERROR ((LM_ERROR, 00105 ACE_TEXT ("(%P|%t) ERROR: No ImR_Client library ") 00106 ACE_TEXT ("available but use IMR has been specified.\n"))); 00107 00108 throw ::CORBA::INTERNAL (); 00109 } 00110 } 00111 }
void TAO::Portable_Server::LifespanStrategyPersistent::strategy_init | ( | TAO_Root_POA * | poa | ) | [virtual] |
Reimplemented from TAO::Portable_Server::LifespanStrategy.
Definition at line 24 of file LifespanStrategyPersistent.cpp.
References TAO_Root_POA::orb_core(), TAO::Portable_Server::LifespanStrategy::poa_, TAO::Portable_Server::LifespanStrategy::strategy_init(), TAO_ORB_Core::use_implrepo(), and use_imr_.
00025 { 00026 LifespanStrategy::strategy_init (poa); 00027 00028 this->use_imr_ = this->poa_->orb_core ().use_implrepo (); 00029 }
PortableServer::LifespanPolicyValue TAO::Portable_Server::LifespanStrategyPersistent::type | ( | ) | const [virtual] |
Implements TAO::Portable_Server::LifespanStrategy.
Definition at line 139 of file LifespanStrategyPersistent.cpp.
bool TAO::Portable_Server::LifespanStrategyPersistent::use_imr | ( | ) | const [virtual] |
Implements TAO::Portable_Server::LifespanStrategy.
Definition at line 145 of file LifespanStrategyPersistent.cpp.
References use_imr_.
00146 { 00147 return use_imr_; 00148 }
bool TAO::Portable_Server::LifespanStrategyPersistent::validate | ( | CORBA::Boolean | is_persistent, | |
const TAO::Portable_Server::Temporary_Creation_Time & | creation_time | |||
) | const [virtual] |
Validate whether this matches the set lifespan strategy.
Implements TAO::Portable_Server::LifespanStrategy.
Definition at line 32 of file LifespanStrategyPersistent.cpp.
00035 { 00036 return is_persistent; 00037 }
bool TAO::Portable_Server::LifespanStrategyPersistent::use_imr_ [private] |
Definition at line 65 of file LifespanStrategyPersistent.h.
Referenced by strategy_init(), and use_imr().