#include <ServantRetentionStrategyNonRetain.h>
Inheritance diagram for TAO::Portable_Server::ServantRetentionStrategyNonRetain:
Definition at line 33 of file ServantRetentionStrategyNonRetain.h.
TAO::Portable_Server::ServantRetentionStrategyNonRetain::ServantRetentionStrategyNonRetain | ( | void | ) |
Definition at line 30 of file ServantRetentionStrategyNonRetain.cpp.
00030 : 00031 poa_ (0) 00032 { 00033 }
PortableServer::ObjectId * TAO::Portable_Server::ServantRetentionStrategyNonRetain::activate_object | ( | PortableServer::Servant | servant, | |
CORBA::Short | priority, | |||
bool & | wait_occurred_restart_call | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 159 of file ServantRetentionStrategyNonRetain.cpp.
void TAO::Portable_Server::ServantRetentionStrategyNonRetain::activate_object_with_id | ( | const PortableServer::ObjectId & | id, | |
PortableServer::Servant | servant, | |||
CORBA::Short | priority, | |||
bool & | wait_occurred_restart_call | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 169 of file ServantRetentionStrategyNonRetain.cpp.
CORBA::Object_ptr TAO::Portable_Server::ServantRetentionStrategyNonRetain::create_reference | ( | const char * | intf, | |
CORBA::Short | priority | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 180 of file ServantRetentionStrategyNonRetain.cpp.
References ACE_NEW_THROW_EX, TAO_Root_POA::invoke_key_to_object_helper_i(), TAO_Root_POA::key_to_object_params_, and poa_.
00183 { 00184 // This operation creates an object reference that encapsulates a 00185 // POA-generated Object Id value and the specified interface 00186 // repository id. This operation does not cause an activation to 00187 // take place. The resulting reference may be passed to clients, so 00188 // that subsequent requests on those references will cause the 00189 // appropriate servant manager to be invoked, if one is 00190 // available. The generated Object Id value may be obtained by 00191 // invoking POA::reference_to_id with the created reference. 00192 00193 PortableServer::ObjectId_var system_id; 00194 PortableServer::ObjectId user_id; 00195 00196 // Otherwise, it is the NON_RETAIN policy. Therefore, any ol' 00197 // object id will do (even an empty one). 00198 PortableServer::ObjectId *sys_id = 0; 00199 ACE_NEW_THROW_EX (sys_id, 00200 PortableServer::ObjectId, 00201 CORBA::NO_MEMORY ()); 00202 00203 system_id = sys_id; 00204 00205 // User id is the same as system id. 00206 user_id = system_id.in (); 00207 00208 // Remember params for potentially invoking <key_to_object> later. 00209 this->poa_->key_to_object_params_.set (system_id, 00210 intf, 00211 0, 00212 1, 00213 priority, 00214 true); 00215 00216 return this->poa_->invoke_key_to_object_helper_i (intf, user_id); 00217 }
CORBA::Object_ptr TAO::Portable_Server::ServantRetentionStrategyNonRetain::create_reference_with_id | ( | const PortableServer::ObjectId & | oid, | |
const char * | intf, | |||
CORBA::Short | priority | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 221 of file ServantRetentionStrategyNonRetain.cpp.
References ACE_NEW_THROW_EX, TAO_Root_POA::invoke_key_to_object_helper_i(), TAO_Root_POA::key_to_object_params_, and poa_.
00225 { 00226 // This operation creates an object reference that encapsulates the 00227 // specified Object Id and interface repository Id values. This 00228 // operation does not cause an activation to take place. The 00229 // resulting reference may be passed to clients, so that subsequent 00230 // requests on those references will cause the object to be 00231 // activated if necessary, or the default servant used, depending on 00232 // the applicable policies. 00233 00234 PortableServer::Servant servant = 0; 00235 PortableServer::ObjectId_var system_id; 00236 00237 // Otherwise, it is the NON_RETAIN policy. Therefore, user id 00238 // is the same as system id. 00239 PortableServer::ObjectId *sys_id = 0; 00240 ACE_NEW_THROW_EX (sys_id, 00241 PortableServer::ObjectId (oid), 00242 CORBA::NO_MEMORY ()); 00243 00244 system_id = sys_id; 00245 00246 // Remember params for potentially invoking <key_to_object> later. 00247 this->poa_->key_to_object_params_.set (system_id, 00248 intf, 00249 servant, 00250 1, 00251 priority, 00252 true); 00253 00254 return this->poa_->invoke_key_to_object_helper_i (intf, oid); 00255 }
void TAO::Portable_Server::ServantRetentionStrategyNonRetain::deactivate_all_objects | ( | void | ) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 140 of file ServantRetentionStrategyNonRetain.cpp.
void TAO::Portable_Server::ServantRetentionStrategyNonRetain::deactivate_object | ( | const PortableServer::ObjectId & | id | ) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 48 of file ServantRetentionStrategyNonRetain.cpp.
00050 { 00051 // When using Non_Retain we don't have an active object map and we just 00052 // can't deactivate any object 00053 throw PortableServer::POA::WrongPolicy (); 00054 }
PortableServer::Servant TAO::Portable_Server::ServantRetentionStrategyNonRetain::find_servant | ( | const PortableServer::ObjectId & | system_id, | |
TAO::Portable_Server::Servant_Upcall & | servant_upcall, | |||
TAO::Portable_Server::POA_Current_Impl & | poa_current_impl | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 101 of file ServantRetentionStrategyNonRetain.cpp.
References TAO::Portable_Server::POA_Current_Impl::replace_object_id(), and TAO::Portable_Server::Servant_Upcall::user_id().
00105 { 00106 // We have the NON_RETAIN policy, user id is the system id. 00107 00108 // Smartly copy all the data; <poa_current_impl.object_id_> does 00109 // not own the data. 00110 poa_current_impl.replace_object_id (system_id); 00111 00112 servant_upcall.user_id (&system_id); 00113 00114 return 0; 00115 }
PortableServer::Servant TAO::Portable_Server::ServantRetentionStrategyNonRetain::find_servant | ( | const PortableServer::ObjectId & | system_id | ) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 57 of file ServantRetentionStrategyNonRetain.cpp.
int TAO::Portable_Server::ServantRetentionStrategyNonRetain::find_servant_priority | ( | const PortableServer::ObjectId & | system_id, | |
CORBA::Short & | priority | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 118 of file ServantRetentionStrategyNonRetain.cpp.
CORBA::Object_ptr TAO::Portable_Server::ServantRetentionStrategyNonRetain::id_to_reference | ( | const PortableServer::ObjectId & | id, | |
bool | indirect | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 85 of file ServantRetentionStrategyNonRetain.cpp.
int TAO::Portable_Server::ServantRetentionStrategyNonRetain::is_servant_in_map | ( | PortableServer::Servant | servant, | |
bool & | wait_occurred_restart_call | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 126 of file ServantRetentionStrategyNonRetain.cpp.
int TAO::Portable_Server::ServantRetentionStrategyNonRetain::rebind_using_user_id_and_system_id | ( | PortableServer::Servant | servant, | |
const PortableServer::ObjectId & | user_id, | |||
const PortableServer::ObjectId & | system_id, | |||
TAO::Portable_Server::Servant_Upcall & | servant_upcall | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 259 of file ServantRetentionStrategyNonRetain.cpp.
CORBA::Boolean TAO::Portable_Server::ServantRetentionStrategyNonRetain::servant_has_remaining_activations | ( | PortableServer::Servant | servant | ) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 269 of file ServantRetentionStrategyNonRetain.cpp.
TAO_SERVANT_LOCATION TAO::Portable_Server::ServantRetentionStrategyNonRetain::servant_present | ( | const PortableServer::ObjectId & | system_id, | |
PortableServer::Servant & | servant | |||
) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 93 of file ServantRetentionStrategyNonRetain.cpp.
References TAO_SERVANT_NOT_FOUND.
00096 { 00097 return TAO_SERVANT_NOT_FOUND; 00098 }
CORBA::Object_ptr TAO::Portable_Server::ServantRetentionStrategyNonRetain::servant_to_reference | ( | PortableServer::Servant | servant | ) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 152 of file ServantRetentionStrategyNonRetain.cpp.
PortableServer::ObjectId * TAO::Portable_Server::ServantRetentionStrategyNonRetain::servant_to_user_id | ( | PortableServer::Servant | servant | ) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 145 of file ServantRetentionStrategyNonRetain.cpp.
void TAO::Portable_Server::ServantRetentionStrategyNonRetain::strategy_cleanup | ( | void | ) | [virtual] |
Implements TAO::Portable_Server::Policy_Strategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 42 of file ServantRetentionStrategyNonRetain.cpp.
References poa_.
00043 { 00044 poa_ = 0; 00045 }
void TAO::Portable_Server::ServantRetentionStrategyNonRetain::strategy_init | ( | TAO_Root_POA * | poa | ) | [virtual] |
Implements TAO::Portable_Server::Policy_Strategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 36 of file ServantRetentionStrategyNonRetain.cpp.
References poa_.
00037 { 00038 poa_ = poa; 00039 }
PortableServer::ObjectId * TAO::Portable_Server::ServantRetentionStrategyNonRetain::system_id_to_object_id | ( | const PortableServer::ObjectId & | system_id | ) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 64 of file ServantRetentionStrategyNonRetain.cpp.
References ACE_NEW_THROW_EX.
00066 { 00067 // The system id is the id (and no conversion/transformation is 00068 // needed). 00069 PortableServer::ObjectId *id = 0; 00070 ACE_NEW_THROW_EX (id, 00071 PortableServer::ObjectId (system_id), 00072 CORBA::NO_MEMORY ()); 00073 00074 return id; 00075 }
PortableServer::ServantRetentionPolicyValue TAO::Portable_Server::ServantRetentionStrategyNonRetain::type | ( | ) | const [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 283 of file ServantRetentionStrategyNonRetain.cpp.
int TAO::Portable_Server::ServantRetentionStrategyNonRetain::unbind_using_user_id | ( | const PortableServer::ObjectId & | user_id | ) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 276 of file ServantRetentionStrategyNonRetain.cpp.
PortableServer::Servant TAO::Portable_Server::ServantRetentionStrategyNonRetain::user_id_to_servant | ( | const PortableServer::ObjectId & | id | ) | [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 78 of file ServantRetentionStrategyNonRetain.cpp.
CORBA::ULong TAO::Portable_Server::ServantRetentionStrategyNonRetain::waiting_servant_deactivation | ( | void | ) | const [virtual] |
Implements TAO::Portable_Server::ServantRetentionStrategy.
Reimplemented in TAO::Portable_Server::ServantRetentionStrategyRetain.
Definition at line 134 of file ServantRetentionStrategyNonRetain.cpp.
Definition at line 126 of file ServantRetentionStrategyNonRetain.h.
Referenced by TAO::Portable_Server::ServantRetentionStrategyRetain::activate_object(), TAO::Portable_Server::ServantRetentionStrategyRetain::activate_object_with_id(), TAO::Portable_Server::ServantRetentionStrategyRetain::create_reference(), create_reference(), TAO::Portable_Server::ServantRetentionStrategyRetain::create_reference_with_id(), create_reference_with_id(), TAO::Portable_Server::ServantRetentionStrategyRetain::deactivate_map_entry(), TAO::Portable_Server::ServantRetentionStrategyRetain::id_to_reference(), TAO::Portable_Server::ServantRetentionStrategyRetain::servant_to_reference(), TAO::Portable_Server::ServantRetentionStrategyRetain::servant_to_system_id_i(), TAO::Portable_Server::ServantRetentionStrategyRetain::servant_to_user_id(), strategy_cleanup(), TAO::Portable_Server::ServantRetentionStrategyRetain::strategy_init(), and strategy_init().