00001 
00002 
00003 #include "tao/LocalObject.h"
00004 
00005 #if !defined (__ACE_INLINE__)
00006 # include "tao/LocalObject.i"
00007 #endif 
00008 
00009 #include "tao/SystemException.h"
00010 #include "tao/debug.h"
00011 #include "tao/ORB_Constants.h"
00012 
00013 #include "ace/Log_Msg.h"
00014 #include "ace/Guard_T.h"
00015 
00016 ACE_RCSID (tao,
00017            LocalObject,
00018            "LocalObject.cpp,v 1.42 2006/03/10 07:19:05 jtc Exp")
00019 
00020 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00021 
00022 CORBA::LocalObject::~LocalObject (void)
00023 {
00024 }
00025 
00026 void
00027 CORBA::LocalObject::_add_ref (void)
00028 {
00029   
00030 }
00031 
00032 void
00033 CORBA::LocalObject::_remove_ref (void)
00034 {
00035   
00036 }
00037 
00038 
00039 
00040 
00041 CORBA::ULong
00042 CORBA::LocalObject::_hash (CORBA::ULong maximum
00043                            ACE_ENV_ARG_DECL_NOT_USED)
00044 {
00045   
00046   
00047   
00048   
00049 
00050   CORBA::ULong const hash =
00051     static_cast<CORBA::ULong> (reinterpret_cast<ptrdiff_t> (this));
00052 
00053   return hash % maximum;
00054 }
00055 
00056 
00057 
00058 
00059 
00060 
00061 
00062 CORBA::Boolean
00063 CORBA::LocalObject::_is_equivalent (CORBA::Object_ptr other_obj
00064                                     ACE_ENV_ARG_DECL_NOT_USED)
00065   ACE_THROW_SPEC (())
00066 {
00067   return (other_obj == this) ? true : false;
00068 }
00069 
00070 
00071 
00072 
00073 TAO::ObjectKey *
00074 CORBA::LocalObject::_key (ACE_ENV_SINGLE_ARG_DECL)
00075 {
00076   if (TAO_debug_level > 0)
00077     ACE_ERROR ((LM_ERROR,
00078                 ACE_TEXT ("(%P|%t) Cannot get _key from a LocalObject!\n")));
00079 
00080   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00081 }
00082 
00083 #if (TAO_HAS_MINIMUM_CORBA == 0)
00084 
00085 
00086 
00087 
00088 
00089 CORBA::Boolean
00090 CORBA::LocalObject::_non_existent (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
00091 {
00092   
00093   return false;
00094 }
00095 
00096 void
00097 CORBA::LocalObject::_create_request (CORBA::Context_ptr,
00098                                      const char *,
00099                                      CORBA::NVList_ptr,
00100                                      CORBA::NamedValue_ptr,
00101                                      CORBA::Request_ptr &,
00102                                      CORBA::Flags
00103                                      ACE_ENV_ARG_DECL)
00104 {
00105   ACE_THROW (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 4,
00106                                   CORBA::COMPLETED_NO));
00107 }
00108 
00109 void
00110 CORBA::LocalObject::_create_request (CORBA::Context_ptr,
00111                                      const char *,
00112                                      CORBA::NVList_ptr,
00113                                      CORBA::NamedValue_ptr,
00114                                      CORBA::ExceptionList_ptr,
00115                                      CORBA::ContextList_ptr,
00116                                      CORBA::Request_ptr &,
00117                                      CORBA::Flags
00118                                      ACE_ENV_ARG_DECL)
00119 {
00120   ACE_THROW (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 4,
00121                                   CORBA::COMPLETED_NO));
00122 }
00123 
00124 CORBA::Request_ptr
00125 CORBA::LocalObject::_request (const char *
00126                               ACE_ENV_ARG_DECL)
00127 {
00128   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 4,
00129                                          CORBA::COMPLETED_NO),
00130                     0);
00131 }
00132 
00133 CORBA::Object_ptr
00134 CORBA::LocalObject::_get_component (ACE_ENV_SINGLE_ARG_DECL)
00135 {
00136   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 8,
00137                                          CORBA::COMPLETED_NO),
00138                     0);
00139 }
00140 
00141 char *
00142 CORBA::LocalObject::_repository_id (ACE_ENV_SINGLE_ARG_DECL)
00143 {
00144   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 8,
00145                                          CORBA::COMPLETED_NO),
00146                     0);
00147 }
00148 
00149 CORBA::InterfaceDef_ptr
00150 CORBA::LocalObject::_get_interface (ACE_ENV_SINGLE_ARG_DECL)
00151 {
00152   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 8,
00153                                          CORBA::COMPLETED_NO),
00154                     0);
00155 }
00156 
00157 CORBA::ImplementationDef_ptr
00158 CORBA::LocalObject::_get_implementation (ACE_ENV_SINGLE_ARG_DECL)
00159 {
00160   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00161 }
00162 
00163 #endif 
00164 
00165 #if (TAO_HAS_CORBA_MESSAGING == 1)
00166 
00167 CORBA::Policy_ptr
00168 CORBA::LocalObject::_get_policy (CORBA::PolicyType
00169                                  ACE_ENV_ARG_DECL)
00170 {
00171   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 8,
00172                                          CORBA::COMPLETED_NO),
00173                     0);
00174 }
00175 
00176 CORBA::Policy_ptr
00177 CORBA::LocalObject::_get_cached_policy (TAO_Cached_Policy_Type
00178                                         ACE_ENV_ARG_DECL)
00179 {
00180   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (), 0);
00181 }
00182 
00183 CORBA::Object_ptr
00184 CORBA::LocalObject::_set_policy_overrides (const CORBA::PolicyList &,
00185                                            CORBA::SetOverrideType
00186                                            ACE_ENV_ARG_DECL)
00187 {
00188   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 8,
00189                                          CORBA::COMPLETED_NO),
00190                     0);
00191 }
00192 
00193 CORBA::PolicyList *
00194 CORBA::LocalObject::_get_policy_overrides (const CORBA::PolicyTypeSeq &
00195                                            ACE_ENV_ARG_DECL)
00196 {
00197   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 8,
00198                                          CORBA::COMPLETED_NO),
00199                     0);
00200 }
00201 
00202 CORBA::Boolean
00203 CORBA::LocalObject::_validate_connection (CORBA::PolicyList_out
00204                                           ACE_ENV_ARG_DECL)
00205 {
00206   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 8,
00207                                          CORBA::COMPLETED_NO),
00208                     false);
00209 }
00210 
00211 #endif 
00212 
00213 CORBA::ORB_ptr
00214 CORBA::LocalObject::_get_orb (ACE_ENV_SINGLE_ARG_DECL)
00215 {
00216   ACE_THROW_RETURN (CORBA::NO_IMPLEMENT (CORBA::OMGVMCID | 8,
00217                                          CORBA::COMPLETED_NO),
00218                     0);
00219 }
00220 
00221 
00222 
00223 TAO_Local_RefCounted_Object::~TAO_Local_RefCounted_Object (void)
00224 {
00225 }
00226 
00227 void
00228 TAO_Local_RefCounted_Object::_add_ref (void)
00229 {
00230   ++this->refcount_;
00231 }
00232 
00233 void
00234 TAO_Local_RefCounted_Object::_remove_ref (void)
00235 {
00236   const CORBA::ULong new_count = --this->refcount_;
00237 
00238   if (new_count == 0)
00239     delete this;
00240 }
00241 
00242 TAO_END_VERSIONED_NAMESPACE_DECL