00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #include <HelloWorld.ice.H>
00014 #include <Ice/LocalException.h>
00015 #include <Ice/ObjectFactory.h>
00016 #include <Ice/BasicStream.h>
00017 #include <IceUtil/Iterator.h>
00018 #include <IceUtil/ScopedArray.h>
00019
00020 #ifndef ICE_IGNORE_VERSION
00021 # if ICE_INT_VERSION / 100 != 303
00022 # error Ice version mismatch!
00023 # endif
00024 # if ICE_INT_VERSION % 100 > 50
00025 # error Beta header file detected
00026 # endif
00027 # if ICE_INT_VERSION % 100 < 1
00028 # error Ice patch level mismatch!
00029 # endif
00030 #endif
00031
00032 static const ::std::string __Demo__HelloWorld__printString_name = "printString";
00033
00034 ::Ice::Object* IceInternal::upCast(::Demo::HelloWorld* p) { return p; }
00035 ::IceProxy::Ice::Object* IceInternal::upCast(::IceProxy::Demo::HelloWorld* p) { return p; }
00036
00037 void
00038 Demo::__read(::IceInternal::BasicStream* __is, ::Demo::HelloWorldPrx& v)
00039 {
00040 ::Ice::ObjectPrx proxy;
00041 __is->read(proxy);
00042 if(!proxy)
00043 {
00044 v = 0;
00045 }
00046 else
00047 {
00048 v = new ::IceProxy::Demo::HelloWorld;
00049 v->__copyFrom(proxy);
00050 }
00051 }
00052
00053 void
00054 IceProxy::Demo::HelloWorld::printString(const ::std::string& s, const ::Ice::Context* __ctx)
00055 {
00056 int __cnt = 0;
00057 while(true)
00058 {
00059 ::IceInternal::Handle< ::IceDelegate::Ice::Object> __delBase;
00060 try
00061 {
00062 #if defined(__BCPLUSPLUS__) && (__BCPLUSPLUS__ >= 0x0600) // C++Builder 2009 compiler bug
00063 IceUtil::DummyBCC dummy;
00064 #endif
00065 __delBase = __getDelegate(false);
00066 ::IceDelegate::Demo::HelloWorld* __del = dynamic_cast< ::IceDelegate::Demo::HelloWorld*>(__delBase.get());
00067 __del->printString(s, __ctx);
00068 return;
00069 }
00070 catch(const ::IceInternal::LocalExceptionWrapper& __ex)
00071 {
00072 __handleExceptionWrapper(__delBase, __ex, 0);
00073 }
00074 catch(const ::Ice::LocalException& __ex)
00075 {
00076 __handleException(__delBase, __ex, 0, __cnt);
00077 }
00078 }
00079 }
00080
00081 const ::std::string&
00082 IceProxy::Demo::HelloWorld::ice_staticId()
00083 {
00084 return ::Demo::HelloWorld::ice_staticId();
00085 }
00086
00087 ::IceInternal::Handle< ::IceDelegateM::Ice::Object>
00088 IceProxy::Demo::HelloWorld::__createDelegateM()
00089 {
00090 return ::IceInternal::Handle< ::IceDelegateM::Ice::Object>(new ::IceDelegateM::Demo::HelloWorld);
00091 }
00092
00093 ::IceInternal::Handle< ::IceDelegateD::Ice::Object>
00094 IceProxy::Demo::HelloWorld::__createDelegateD()
00095 {
00096 return ::IceInternal::Handle< ::IceDelegateD::Ice::Object>(new ::IceDelegateD::Demo::HelloWorld);
00097 }
00098
00099 ::IceProxy::Ice::Object*
00100 IceProxy::Demo::HelloWorld::__newInstance() const
00101 {
00102 return new HelloWorld;
00103 }
00104
00105 void
00106 IceDelegateM::Demo::HelloWorld::printString(const ::std::string& s, const ::Ice::Context* __context)
00107 {
00108 ::IceInternal::Outgoing __og(__handler.get(), __Demo__HelloWorld__printString_name, ::Ice::Normal, __context);
00109 try
00110 {
00111 ::IceInternal::BasicStream* __os = __og.os();
00112 __os->write(s);
00113 }
00114 catch(const ::Ice::LocalException& __ex)
00115 {
00116 __og.abort(__ex);
00117 }
00118 bool __ok = __og.invoke();
00119 if(!__og.is()->b.empty())
00120 {
00121 try
00122 {
00123 if(!__ok)
00124 {
00125 try
00126 {
00127 __og.throwUserException();
00128 }
00129 catch(const ::Ice::UserException& __ex)
00130 {
00131 ::Ice::UnknownUserException __uue(__FILE__, __LINE__, __ex.ice_name());
00132 throw __uue;
00133 }
00134 }
00135 __og.is()->skipEmptyEncaps();
00136 }
00137 catch(const ::Ice::LocalException& __ex)
00138 {
00139 throw ::IceInternal::LocalExceptionWrapper(__ex, false);
00140 }
00141 }
00142 }
00143
00144 void
00145 IceDelegateD::Demo::HelloWorld::printString(const ::std::string& s, const ::Ice::Context* __context)
00146 {
00147 class _DirectI : public ::IceInternal::Direct
00148 {
00149 public:
00150
00151 _DirectI(const ::std::string& s, const ::Ice::Current& __current) :
00152 ::IceInternal::Direct(__current),
00153 _m_s(s)
00154 {
00155 }
00156
00157 virtual ::Ice::DispatchStatus
00158 run(::Ice::Object* object)
00159 {
00160 ::Demo::HelloWorld* servant = dynamic_cast< ::Demo::HelloWorld*>(object);
00161 if(!servant)
00162 {
00163 throw ::Ice::OperationNotExistException(__FILE__, __LINE__, _current.id, _current.facet, _current.operation);
00164 }
00165 servant->printString(_m_s, _current);
00166 return ::Ice::DispatchOK;
00167 }
00168
00169 private:
00170
00171 const ::std::string& _m_s;
00172 };
00173
00174 ::Ice::Current __current;
00175 __initCurrent(__current, __Demo__HelloWorld__printString_name, ::Ice::Normal, __context);
00176 try
00177 {
00178 _DirectI __direct(s, __current);
00179 try
00180 {
00181 __direct.servant()->__collocDispatch(__direct);
00182 }
00183 catch(...)
00184 {
00185 __direct.destroy();
00186 throw;
00187 }
00188 __direct.destroy();
00189 }
00190 catch(const ::Ice::SystemException&)
00191 {
00192 throw;
00193 }
00194 catch(const ::IceInternal::LocalExceptionWrapper&)
00195 {
00196 throw;
00197 }
00198 catch(const ::std::exception& __ex)
00199 {
00200 ::IceInternal::LocalExceptionWrapper::throwWrapper(__ex);
00201 }
00202 catch(...)
00203 {
00204 throw ::IceInternal::LocalExceptionWrapper(::Ice::UnknownException(__FILE__, __LINE__, "unknown c++ exception"), false);
00205 }
00206 }
00207
00208 ::Ice::ObjectPtr
00209 Demo::HelloWorld::ice_clone() const
00210 {
00211 throw ::Ice::CloneNotImplementedException(__FILE__, __LINE__);
00212 return 0;
00213 }
00214
00215 static const ::std::string __Demo__HelloWorld_ids[2] =
00216 {
00217 "::Demo::HelloWorld",
00218 "::Ice::Object"
00219 };
00220
00221 bool
00222 Demo::HelloWorld::ice_isA(const ::std::string& _s, const ::Ice::Current&) const
00223 {
00224 return ::std::binary_search(__Demo__HelloWorld_ids, __Demo__HelloWorld_ids + 2, _s);
00225 }
00226
00227 ::std::vector< ::std::string>
00228 Demo::HelloWorld::ice_ids(const ::Ice::Current&) const
00229 {
00230 return ::std::vector< ::std::string>(&__Demo__HelloWorld_ids[0], &__Demo__HelloWorld_ids[2]);
00231 }
00232
00233 const ::std::string&
00234 Demo::HelloWorld::ice_id(const ::Ice::Current&) const
00235 {
00236 return __Demo__HelloWorld_ids[0];
00237 }
00238
00239 const ::std::string&
00240 Demo::HelloWorld::ice_staticId()
00241 {
00242 return __Demo__HelloWorld_ids[0];
00243 }
00244
00245 ::Ice::DispatchStatus
00246 Demo::HelloWorld::___printString(::IceInternal::Incoming& __inS, const ::Ice::Current& __current)
00247 {
00248 __checkMode(::Ice::Normal, __current.mode);
00249 ::IceInternal::BasicStream* __is = __inS.is();
00250 __is->startReadEncaps();
00251 ::std::string s;
00252 __is->read(s);
00253 __is->endReadEncaps();
00254 printString(s, __current);
00255 return ::Ice::DispatchOK;
00256 }
00257
00258 static ::std::string __Demo__HelloWorld_all[] =
00259 {
00260 "ice_id",
00261 "ice_ids",
00262 "ice_isA",
00263 "ice_ping",
00264 "printString"
00265 };
00266
00267 ::Ice::DispatchStatus
00268 Demo::HelloWorld::__dispatch(::IceInternal::Incoming& in, const ::Ice::Current& current)
00269 {
00270 ::std::pair< ::std::string*, ::std::string*> r = ::std::equal_range(__Demo__HelloWorld_all, __Demo__HelloWorld_all + 5, current.operation);
00271 if(r.first == r.second)
00272 {
00273 throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
00274 }
00275
00276 switch(r.first - __Demo__HelloWorld_all)
00277 {
00278 case 0:
00279 {
00280 return ___ice_id(in, current);
00281 }
00282 case 1:
00283 {
00284 return ___ice_ids(in, current);
00285 }
00286 case 2:
00287 {
00288 return ___ice_isA(in, current);
00289 }
00290 case 3:
00291 {
00292 return ___ice_ping(in, current);
00293 }
00294 case 4:
00295 {
00296 return ___printString(in, current);
00297 }
00298 }
00299
00300 assert(false);
00301 throw ::Ice::OperationNotExistException(__FILE__, __LINE__, current.id, current.facet, current.operation);
00302 }
00303
00304 void
00305 Demo::HelloWorld::__write(::IceInternal::BasicStream* __os) const
00306 {
00307 __os->writeTypeId(ice_staticId());
00308 __os->startWriteSlice();
00309 __os->endWriteSlice();
00310 #if defined(_MSC_VER) && (_MSC_VER < 1300) // VC++ 6 compiler bug
00311 Object::__write(__os);
00312 #else
00313 ::Ice::Object::__write(__os);
00314 #endif
00315 }
00316
00317 void
00318 Demo::HelloWorld::__read(::IceInternal::BasicStream* __is, bool __rid)
00319 {
00320 if(__rid)
00321 {
00322 ::std::string myId;
00323 __is->readTypeId(myId);
00324 }
00325 __is->startReadSlice();
00326 __is->endReadSlice();
00327 #if defined(_MSC_VER) && (_MSC_VER < 1300) // VC++ 6 compiler bug
00328 Object::__read(__is, true);
00329 #else
00330 ::Ice::Object::__read(__is, true);
00331 #endif
00332 }
00333
00334 void
00335 Demo::HelloWorld::__write(const ::Ice::OutputStreamPtr&) const
00336 {
00337 Ice::MarshalException ex(__FILE__, __LINE__);
00338 ex.reason = "type Demo::HelloWorld was not generated with stream support";
00339 throw ex;
00340 }
00341
00342 void
00343 Demo::HelloWorld::__read(const ::Ice::InputStreamPtr&, bool)
00344 {
00345 Ice::MarshalException ex(__FILE__, __LINE__);
00346 ex.reason = "type Demo::HelloWorld was not generated with stream support";
00347 throw ex;
00348 }
00349
00350 void
00351 Demo::__patch__HelloWorldPtr(void* __addr, ::Ice::ObjectPtr& v)
00352 {
00353 ::Demo::HelloWorldPtr* p = static_cast< ::Demo::HelloWorldPtr*>(__addr);
00354 assert(p);
00355 *p = ::Demo::HelloWorldPtr::dynamicCast(v);
00356 if(v && !*p)
00357 {
00358 IceInternal::Ex::throwUOE(::Demo::HelloWorld::ice_staticId(), v->ice_id());
00359 }
00360 }
00361
00362 bool
00363 Demo::operator==(const ::Demo::HelloWorld& l, const ::Demo::HelloWorld& r)
00364 {
00365 return static_cast<const ::Ice::Object&>(l) == static_cast<const ::Ice::Object&>(r);
00366 }
00367
00368 bool
00369 Demo::operator<(const ::Demo::HelloWorld& l, const ::Demo::HelloWorld& r)
00370 {
00371 return static_cast<const ::Ice::Object&>(l) < static_cast<const ::Ice::Object&>(r);
00372 }