ReqServerSK.cpp
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:8k
源码类别:

模拟服务器

开发平台:

C/C++

  1. // This file is generated by omniidl (C++ backend)- omniORB_3_0. Do not edit.
  2. #include "ReqServer.h"
  3. #include <omniORB3/callDescriptor.h>
  4. static const char* _0RL_library_version = omniORB_3_0;
  5. ReqServer_ptr ReqServer_Helper::_nil() {
  6.   return ReqServer::_nil();
  7. }
  8. CORBA::Boolean ReqServer_Helper::is_nil(ReqServer_ptr p) {
  9.   return CORBA::is_nil(p);
  10. }
  11. void ReqServer_Helper::release(ReqServer_ptr p) {
  12.   CORBA::release(p);
  13. }
  14. void ReqServer_Helper::duplicate(ReqServer_ptr p) {
  15.   if( p && !p->_NP_is_nil() )  omni::duplicateObjRef(p);
  16. }
  17. size_t ReqServer_Helper::NP_alignedSize(ReqServer_ptr obj, size_t offset) {
  18.   return ReqServer::_alignedSize(obj, offset);
  19. }
  20. void ReqServer_Helper::marshalObjRef(ReqServer_ptr obj, NetBufferedStream& s) {
  21.   ReqServer::_marshalObjRef(obj, s);
  22. }
  23. ReqServer_ptr ReqServer_Helper::unmarshalObjRef(NetBufferedStream& s) {
  24.   return ReqServer::_unmarshalObjRef(s);
  25. }
  26. void ReqServer_Helper::marshalObjRef(ReqServer_ptr obj, MemBufferedStream& s) {
  27.   ReqServer::_marshalObjRef(obj, s);
  28. }
  29. ReqServer_ptr ReqServer_Helper::unmarshalObjRef(MemBufferedStream& s) {
  30.   return ReqServer::_unmarshalObjRef(s);
  31. }
  32. ReqServer_ptr
  33. ReqServer::_duplicate(ReqServer_ptr obj)
  34. {
  35.   if( obj && !obj->_NP_is_nil() )  omni::duplicateObjRef(obj);
  36.   return obj;
  37. }
  38. ReqServer_ptr
  39. ReqServer::_narrow(CORBA::Object_ptr obj)
  40. {
  41.   if( !obj || obj->_NP_is_nil() || obj->_NP_is_pseudo() ) return _nil();
  42.   _ptr_type e = (_ptr_type) obj->_PR_getobj()->_realNarrow(_PD_repoId);
  43.   return e ? e : _nil();
  44. }
  45. ReqServer_ptr
  46. ReqServer::_nil()
  47. {
  48.   static _objref_ReqServer* _the_nil_ptr = 0;
  49.   if( !_the_nil_ptr ) {
  50.     omni::nilRefLock().lock();
  51.   if( !_the_nil_ptr )  _the_nil_ptr = new _objref_ReqServer;
  52.     omni::nilRefLock().unlock();
  53.   }
  54.   return _the_nil_ptr;
  55. }
  56. const char* ReqServer::_PD_repoId = "IDL:ReqServer:1.0";
  57. _objref_ReqServer::~_objref_ReqServer() {}
  58. _objref_ReqServer::_objref_ReqServer(const char* mdri,
  59.    IOP::TaggedProfileList* p, omniIdentity* id, omniLocalIdentity* lid) :
  60.    
  61.    omniObjRef(ReqServer::_PD_repoId, mdri, p, id, lid)
  62. {
  63.   _PR_setobj(this);
  64. }
  65. void*
  66. _objref_ReqServer::_ptrToObjRef(const char* id)
  67. {
  68.   if( !strcmp(id, CORBA::Object::_PD_repoId) )
  69.     return (CORBA::Object_ptr) this;
  70.   if( !strcmp(id, ReqServer::_PD_repoId) )
  71.     return (ReqServer_ptr) this;
  72.   
  73.   return 0;
  74. }
  75. // Proxy call descriptor class. Mangled signature:
  76. //  void_i_clong_i_clong_i_clong
  77. class _0RL_cd_d47783c81a1a3517_00000000
  78.   : public omniCallDescriptor
  79. {
  80. public:
  81.   inline _0RL_cd_d47783c81a1a3517_00000000(LocalCallFn lcfn, const char* op, size_t oplen, _CORBA_Boolean oneway, CORBA::Long a_0, CORBA::Long a_1, CORBA::Long a_2):
  82.      omniCallDescriptor(lcfn, op, oplen, oneway),
  83.      arg_0(a_0),
  84.      arg_1(a_1),
  85.      arg_2(a_2) {}
  86.   virtual CORBA::ULong alignedSize(CORBA::ULong size_in);
  87.   virtual void marshalArguments(GIOP_C&);
  88.   
  89.   CORBA::Long arg_0;
  90.   CORBA::Long arg_1;
  91.   CORBA::Long arg_2;
  92.   
  93. };
  94. CORBA::ULong _0RL_cd_d47783c81a1a3517_00000000::alignedSize(CORBA::ULong msgsize)
  95. {
  96.   msgsize = omni::align_to(msgsize, omni::ALIGN_4) + 4;
  97.   
  98.   msgsize = omni::align_to(msgsize, omni::ALIGN_4) + 4;
  99.   
  100.   msgsize = omni::align_to(msgsize, omni::ALIGN_4) + 4;
  101.   
  102.   return msgsize;
  103. }
  104. void _0RL_cd_d47783c81a1a3517_00000000::marshalArguments(GIOP_C& giop_client)
  105. {
  106.   arg_0 >>= giop_client;
  107.   arg_1 >>= giop_client;
  108.   arg_2 >>= giop_client;
  109.   
  110. }
  111. // Local call call-back function.
  112. static void
  113. _0RL_lcfn_d47783c81a1a3517_10000000(omniCallDescriptor* cd, omniServant* svnt)
  114. {
  115.   _0RL_cd_d47783c81a1a3517_00000000* tcd = (_0RL_cd_d47783c81a1a3517_00000000*) cd;
  116.   _impl_ReqServer* impl = (_impl_ReqServer*) svnt->_ptrToInterface(ReqServer::_PD_repoId);
  117.   impl->SendResult(tcd->arg_0, tcd->arg_1, tcd->arg_2);
  118. }
  119. void _objref_ReqServer::SendResult(CORBA::Long id, CORBA::Long index, CORBA::Long reserve)
  120. {
  121.   _0RL_cd_d47783c81a1a3517_00000000 _call_desc(_0RL_lcfn_d47783c81a1a3517_10000000, "SendResult", 11, 0, id, index, reserve);
  122.   
  123.   _invoke(_call_desc);
  124.   
  125. }
  126. // Proxy call descriptor class. Mangled signature:
  127. //  _cstring
  128. class _0RL_cd_d47783c81a1a3517_20000000
  129.   : public omniCallDescriptor
  130. {
  131. public:
  132.   inline _0RL_cd_d47783c81a1a3517_20000000(LocalCallFn lcfn, const char* op, size_t oplen, _CORBA_Boolean oneway):
  133.      omniCallDescriptor(lcfn, op, oplen, oneway) {}
  134.   virtual void unmarshalReturnedValues(GIOP_C&);
  135.     
  136.   inline char * result() { return pd_result; }
  137.   
  138.   char * pd_result;
  139. };
  140. void _0RL_cd_d47783c81a1a3517_20000000::unmarshalReturnedValues(GIOP_C& giop_client)
  141. {
  142.   
  143.   {
  144.     CORBA::String_member _0RL_str_tmp;
  145.     _0RL_str_tmp <<=  giop_client;
  146.     pd_result = _0RL_str_tmp._ptr;
  147.     _0RL_str_tmp._ptr = 0;
  148.   }
  149.   
  150. }
  151. // Local call call-back function.
  152. static void
  153. _0RL_lcfn_d47783c81a1a3517_30000000(omniCallDescriptor* cd, omniServant* svnt)
  154. {
  155.   _0RL_cd_d47783c81a1a3517_20000000* tcd = (_0RL_cd_d47783c81a1a3517_20000000*) cd;
  156.   _impl_ReqServer* impl = (_impl_ReqServer*) svnt->_ptrToInterface(ReqServer::_PD_repoId);
  157.   tcd->pd_result = impl->GetServerInfo();
  158. }
  159. char* _objref_ReqServer::GetServerInfo()
  160. {
  161.   _0RL_cd_d47783c81a1a3517_20000000 _call_desc(_0RL_lcfn_d47783c81a1a3517_30000000, "GetServerInfo", 14, 0);
  162.   
  163.   _invoke(_call_desc);
  164.   return _call_desc.result();
  165. }
  166. _pof_ReqServer::~_pof_ReqServer() {}
  167. omniObjRef*
  168. _pof_ReqServer::newObjRef(const char* mdri, IOP::TaggedProfileList* p,
  169.                omniIdentity* id, omniLocalIdentity* lid)
  170. {
  171.   return new _objref_ReqServer(mdri, p, id, lid);
  172. }
  173. CORBA::Boolean
  174. _pof_ReqServer::is_a(const char* id) const
  175. {
  176.   if( !strcmp(id, ReqServer::_PD_repoId) )
  177.     return 1;
  178.   
  179.   return 0;
  180. }
  181. const _pof_ReqServer _the_pof_ReqServer;
  182. _impl_ReqServer::~_impl_ReqServer() {}
  183. CORBA::Boolean
  184. _impl_ReqServer::_dispatch(GIOP_S& giop_s)
  185. {
  186.   if( !strcmp(giop_s.operation(), "SendResult") ) {
  187.     
  188.     CORBA::Long arg_id;
  189.     
  190.     arg_id <<= giop_s;
  191.     CORBA::Long arg_index;
  192.     
  193.     arg_index <<= giop_s;
  194.     CORBA::Long arg_reserve;
  195.     
  196.     arg_reserve <<= giop_s;
  197.     
  198.     giop_s.RequestReceived();
  199.     
  200.     this->SendResult(arg_id, arg_index, arg_reserve);
  201.     
  202.     if( giop_s.response_expected() ) {
  203.       size_t msgsize = (size_t) GIOP_S::ReplyHeaderSize();
  204.       
  205.       giop_s.InitialiseReply(GIOP::NO_EXCEPTION, (CORBA::ULong) msgsize);
  206.       
  207.     }
  208.     giop_s.ReplyCompleted();
  209.     return 1;
  210.   }
  211.   if( !strcmp(giop_s.operation(), "GetServerInfo") ) {
  212.     
  213.     giop_s.RequestReceived();
  214.     CORBA::String_var result;
  215.     
  216.     result = this->GetServerInfo();
  217.     
  218.     if( giop_s.response_expected() ) {
  219.       size_t msgsize = (size_t) GIOP_S::ReplyHeaderSize();
  220.       msgsize = omni::align_to(msgsize, omni::ALIGN_4) + 4;
  221.       msgsize += ((const char*) result) ? strlen((const char*) result) + 1 : 1;
  222.       
  223.       giop_s.InitialiseReply(GIOP::NO_EXCEPTION, (CORBA::ULong) msgsize);
  224.       {
  225.         CORBA::ULong _len = (((const char*) result)? strlen((const char*) result) + 1 : 1);
  226.         
  227.         _len >>= giop_s;
  228.         if (_len > 1)
  229.           giop_s.put_char_array((const CORBA::Char *)((const char*)result),_len);
  230.         else {
  231.           if ((const char*) result == 0 && omniORB::traceLevel > 1)
  232.             _CORBA_null_string_ptr(0);
  233.           CORBA::Char('') >>= giop_s;
  234.         }
  235.       }
  236.       
  237.     }
  238.     giop_s.ReplyCompleted();
  239.     return 1;
  240.   }
  241.   return 0;
  242. }
  243. void*
  244. _impl_ReqServer::_ptrToInterface(const char* id)
  245. {
  246.   if( !strcmp(id, CORBA::Object::_PD_repoId) )
  247.     return (void*) 1;
  248.   if( !strcmp(id, ReqServer::_PD_repoId) )
  249.     return (_impl_ReqServer*) this;
  250.   
  251.   return 0;
  252. }
  253. const char*
  254. _impl_ReqServer::_mostDerivedRepoId()
  255. {
  256.   return ReqServer::_PD_repoId;
  257. }
  258. POA_ReqServer::~POA_ReqServer() {}