00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef ___HxCorbaRefCountBase_h__
00016 #define ___HxCorbaRefCountBase_h__
00017
00018 #ifndef OB_INTEGER_VERSION
00019 # error No ORBacus version defined! Is <OB/CORBA.h> included?
00020 #endif
00021
00022 #ifndef OB_NO_VERSION_CHECK
00023 # if (OB_INTEGER_VERSION != 4010000L)
00024 # error ORBacus version mismatch!
00025 # endif
00026 #endif
00027
00028 namespace HxCorba
00029 {
00030
00031 class RefCountBase;
00032 typedef RefCountBase* RefCountBase_ptr;
00033 typedef RefCountBase* RefCountBaseRef;
00034
00035 extern OB::TypeCodeConst _tc_RefCountBase;
00036
00037 }
00038
00039 void OBDuplicate(HxCorba::RefCountBase_ptr);
00040 void OBRelease(HxCorba::RefCountBase_ptr);
00041
00042 void OBMarshal(HxCorba::RefCountBase_ptr, OB::OutputStreamImpl*);
00043 void OBUnmarshal(HxCorba::RefCountBase_ptr&, OB::InputStreamImpl*);
00044
00045 namespace HxCorba
00046 {
00047
00048 typedef OB::ObjVar< RefCountBase > RefCountBase_var;
00049 typedef OB::ObjOut< RefCountBase > RefCountBase_out;
00050
00051 }
00052
00053 namespace OBStubImpl_HxCorba
00054 {
00055
00056 class RefCountBase;
00057 typedef RefCountBase* RefCountBase_ptr;
00058
00059 }
00060
00061 void OBDuplicate(OBStubImpl_HxCorba::RefCountBase_ptr);
00062 void OBRelease(OBStubImpl_HxCorba::RefCountBase_ptr);
00063
00064 namespace OBStubImpl_HxCorba
00065 {
00066
00067 typedef OB::ObjVar< RefCountBase > RefCountBase_var;
00068
00069 }
00070
00071
00072
00073
00074 namespace HxCorba
00075 {
00076
00077
00078
00079
00080 class RefCountBase : virtual public CORBA::Object
00081 {
00082 RefCountBase(const RefCountBase&);
00083 void operator=(const RefCountBase&);
00084
00085 protected:
00086
00087 static const char* ids_[];
00088
00089 public:
00090
00091 RefCountBase() { }
00092 virtual ~RefCountBase() { }
00093
00094 typedef RefCountBase_ptr _ptr_type;
00095 typedef RefCountBase_var _var_type;
00096
00097 static inline RefCountBase_ptr
00098 _duplicate(RefCountBase_ptr p)
00099 {
00100 if(p)
00101 p -> _add_ref();
00102 return p;
00103 }
00104
00105 static inline RefCountBase_ptr
00106 _nil()
00107 {
00108 return 0;
00109 }
00110
00111 static RefCountBase_ptr _narrow(CORBA::Object_ptr);
00112 static RefCountBase_ptr _unchecked_narrow(CORBA::Object_ptr);
00113
00114 static RefCountBase_ptr _narrow(CORBA::AbstractBase_ptr);
00115 static RefCountBase_ptr _unchecked_narrow(CORBA::AbstractBase_ptr);
00116
00117 static const char** _OB_staticIds();
00118
00119
00120
00121
00122 virtual void addRef() = 0;
00123
00124
00125
00126
00127 virtual void removeRef() = 0;
00128 };
00129
00130 }
00131
00132
00133
00134
00135 namespace OBProxy_HxCorba
00136 {
00137
00138
00139
00140
00141 class RefCountBase : virtual public ::HxCorba::RefCountBase,
00142 virtual public OBCORBA::Object
00143 {
00144 RefCountBase(const RefCountBase&);
00145 void operator=(const RefCountBase&);
00146
00147 protected:
00148
00149 virtual OB::MarshalStubImpl_ptr _OB_createMarshalStubImpl();
00150
00151 public:
00152
00153 RefCountBase() { }
00154 virtual ~RefCountBase() { }
00155
00156 virtual const char** _OB_ids() const;
00157
00158
00159
00160
00161 void addRef();
00162
00163
00164
00165
00166 void removeRef();
00167 };
00168
00169 }
00170
00171
00172
00173
00174 namespace OBStubImpl_HxCorba
00175 {
00176
00177
00178
00179
00180 class RefCountBase : virtual public OB::StubImplBase
00181 {
00182 RefCountBase(const RefCountBase&);
00183 void operator=(const RefCountBase&);
00184
00185 protected:
00186
00187 RefCountBase() { }
00188
00189 public:
00190
00191 static inline RefCountBase_ptr
00192 _duplicate(RefCountBase_ptr p)
00193 {
00194 if(p)
00195 p -> _OB_incRef();
00196 return p;
00197 }
00198
00199 static inline RefCountBase_ptr
00200 _nil()
00201 {
00202 return 0;
00203 }
00204
00205
00206
00207
00208 virtual void addRef() = 0;
00209
00210
00211
00212
00213 virtual void removeRef() = 0;
00214 };
00215
00216 }
00217
00218
00219
00220
00221 namespace OBMarshalStubImpl_HxCorba
00222 {
00223
00224
00225
00226
00227 class RefCountBase : virtual public OBStubImpl_HxCorba::RefCountBase,
00228 virtual public OB::MarshalStubImpl
00229 {
00230 RefCountBase(const RefCountBase&);
00231 void operator=(const RefCountBase&);
00232
00233 protected:
00234
00235 RefCountBase() { }
00236 friend class OBProxy_HxCorba::RefCountBase;
00237
00238 public:
00239
00240
00241
00242
00243 virtual void addRef();
00244
00245
00246
00247
00248 virtual void removeRef();
00249 };
00250
00251 }
00252
00253
00254
00255
00256 namespace OBV_HxCorba
00257 {
00258
00259 }
00260
00261
00262
00263
00264 namespace CORBA
00265 {
00266
00267 inline void
00268 release(::HxCorba::RefCountBase_ptr p)
00269 {
00270 if(p)
00271 p -> _remove_ref();
00272 }
00273
00274 inline Boolean
00275 is_nil(::HxCorba::RefCountBase_ptr p)
00276 {
00277 return p == 0;
00278 }
00279
00280 inline void
00281 release(OBStubImpl_HxCorba::RefCountBase_ptr p)
00282 {
00283 if(p)
00284 p -> _OB_decRef();
00285 }
00286
00287 inline Boolean
00288 is_nil(OBStubImpl_HxCorba::RefCountBase_ptr p)
00289 {
00290 return p == 0;
00291 }
00292
00293 }
00294
00295 void operator<<=(CORBA::Any&, HxCorba::RefCountBase_ptr*);
00296 void operator<<=(CORBA::Any&, HxCorba::RefCountBase_ptr);
00297 CORBA::Boolean operator>>=(const CORBA::Any&, HxCorba::RefCountBase_ptr&);
00298
00299 inline void
00300 operator<<=(CORBA::Any_var& any, HxCorba::RefCountBase_ptr* val)
00301 {
00302 any.inout() <<= val;
00303 }
00304
00305 inline void
00306 operator<<=(CORBA::Any_var& any, HxCorba::RefCountBase_ptr val)
00307 {
00308 any.inout() <<= val;
00309 }
00310
00311 inline CORBA::Boolean
00312 operator>>=(const CORBA::Any_var& any, HxCorba::RefCountBase_ptr& val)
00313 {
00314 return any.in() >>= val;
00315 }
00316
00317 #endif