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