Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef TAO_CORBA_LOCALOBJECT_H
00021 #define TAO_CORBA_LOCALOBJECT_H
00022
00023 #include "ace/pre.h"
00024
00025 #include "ace/Thread_Mutex.h"
00026 #include "ace/Atomic_Op.h"
00027
00028 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00029 # pragma once
00030 #endif
00031
00032 #include "tao/Object.h"
00033
00034 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
00035
00036 namespace CORBA
00037 {
00038 class LocalObject;
00039 typedef LocalObject *LocalObject_ptr;
00040 typedef TAO_Pseudo_Var_T<LocalObject> LocalObject_var;
00041 typedef TAO_Pseudo_Out_T<LocalObject> LocalObject_out;
00042
00043
00044
00045
00046 class TAO_Export LocalObject : public virtual CORBA::Object
00047 {
00048 public:
00049
00050
00051 virtual ~LocalObject (void);
00052
00053
00054 static LocalObject_ptr _duplicate (LocalObject_ptr obj);
00055
00056
00057 static LocalObject_ptr _nil (void);
00058
00059
00060
00061
00062
00063
00064
00065
00066 static LocalObject_ptr _narrow (CORBA::Object_ptr obj);
00067
00068 #if (TAO_HAS_MINIMUM_CORBA == 0)
00069
00070
00071 virtual CORBA::Boolean _non_existent (void);
00072
00073
00074 virtual char * _repository_id (void);
00075
00076 #if ! defined (CORBA_E_COMPACT) && ! defined (CORBA_E_MICRO)
00077
00078 virtual CORBA::InterfaceDef_ptr _get_interface (void);
00079
00080
00081 virtual CORBA::Object_ptr _get_component (void);
00082
00083 virtual void _create_request (CORBA::Context_ptr ctx,
00084 const char * operation,
00085 CORBA::NVList_ptr arg_list,
00086 CORBA::NamedValue_ptr result,
00087 CORBA::Request_ptr & request,
00088 CORBA::Flags req_flags);
00089
00090 virtual void _create_request (CORBA::Context_ptr ctx,
00091 const char * operation,
00092 CORBA::NVList_ptr arg_list,
00093 CORBA::NamedValue_ptr result,
00094 CORBA::ExceptionList_ptr exclist,
00095 CORBA::ContextList_ptr ctxtlist,
00096 CORBA::Request_ptr & request,
00097 CORBA::Flags req_flags);
00098
00099
00100 virtual CORBA::Request_ptr _request (const char * operation);
00101
00102 #endif
00103 #endif
00104
00105 #if (TAO_HAS_CORBA_MESSAGING == 1)
00106
00107
00108 CORBA::Policy_ptr _get_policy (CORBA::PolicyType type);
00109
00110
00111 CORBA::Policy_ptr _get_cached_policy (TAO_Cached_Policy_Type type);
00112
00113
00114 CORBA::Object_ptr _set_policy_overrides (
00115 const CORBA::PolicyList & policies,
00116 CORBA::SetOverrideType set_add);
00117
00118
00119 CORBA::PolicyList * _get_policy_overrides (
00120 const CORBA::PolicyTypeSeq & types);
00121
00122
00123 CORBA::Boolean _validate_connection (
00124 CORBA::PolicyList_out inconsistent_policies);
00125
00126 #endif
00127
00128
00129
00130
00131
00132
00133 virtual CORBA::ULong _hash (CORBA::ULong maximum);
00134
00135
00136
00137
00138
00139
00140
00141
00142 virtual CORBA::Boolean _is_equivalent (CORBA::Object_ptr other_obj);
00143
00144 virtual CORBA::ORB_ptr _get_orb (void);
00145
00146
00147
00148
00149 virtual TAO::ObjectKey * _key (void);
00150
00151
00152 typedef LocalObject_ptr _ptr_type;
00153 typedef LocalObject_var _var_type;
00154 typedef LocalObject_out _out_type;
00155
00156 protected:
00157
00158
00159
00160
00161
00162 LocalObject (void);
00163
00164 private:
00165
00166
00167
00168
00169
00170 LocalObject (const LocalObject &);
00171 LocalObject & operator = (const LocalObject &);
00172
00173
00174 };
00175 }
00176
00177
00178
00179
00180 #if !defined (ACE_LACKS_DEPRECATED_MACROS)
00181
00182
00183
00184
00185 class TAO_Export TAO_Local_RefCounted_Object
00186 : public virtual CORBA::LocalObject
00187 {
00188 protected:
00189
00190
00191
00192
00193 TAO_Local_RefCounted_Object (void);
00194
00195 private:
00196
00197
00198
00199
00200
00201 TAO_Local_RefCounted_Object (const TAO_Local_RefCounted_Object &);
00202 TAO_Local_RefCounted_Object & operator = (
00203 const TAO_Local_RefCounted_Object &);
00204
00205 };
00206 #endif
00207
00208
00209
00210 TAO_END_VERSIONED_NAMESPACE_DECL
00211
00212 #if defined (__ACE_INLINE__)
00213 # include "tao/LocalObject.inl"
00214 #endif
00215
00216 #include "ace/post.h"
00217
00218 #endif