r2corba 1.5.4 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (181) hide show
  1. checksums.yaml +4 -4
  2. data/README.rdoc +3 -2
  3. data/ext/libr2tao/any.cpp +11 -10
  4. data/ext/libr2tao/exception.cpp +6 -8
  5. data/ext/libr2tao/exception.h +1 -1
  6. data/ext/libr2tao/longdouble.cpp +5 -9
  7. data/ext/libr2tao/object.cpp +37 -53
  8. data/ext/libr2tao/orb.cpp +46 -73
  9. data/ext/libr2tao/r2tao_ext.h +8 -19
  10. data/ext/libr2tao/required.cpp +3 -8
  11. data/ext/libr2tao/required.h +18 -34
  12. data/ext/libr2tao/values.cpp +97 -98
  13. data/ext/libr2tao/values.h +35 -37
  14. data/ext/librpoa/iortable.cpp +6 -7
  15. data/ext/librpoa/poa.cpp +29 -32
  16. data/ext/librpoa/servant.cpp +39 -113
  17. data/ext/librpoa/servant.h +18 -40
  18. data/lib/corba/cbase/ORB.rb +26 -23
  19. data/lib/corba/cbase/Request.rb +3 -3
  20. data/lib/corba/cbase/Streams.rb +2 -2
  21. data/lib/corba/cbase/Typecode.rb +6 -6
  22. data/lib/corba/cbase/Values.rb +4 -2
  23. data/lib/corba/cbase/exception.rb +6 -4
  24. data/lib/corba/cbase/poa.rb +1 -1
  25. data/lib/corba/cbase/policies.rb +2 -2
  26. data/lib/corba/cbase/require.rb +8 -1
  27. data/lib/corba/cmds/base.rb +1 -1
  28. data/lib/corba/common/Any.rb +3 -2
  29. data/lib/corba/common/IDL.rb +1 -1
  30. data/lib/corba/common/ORB.rb +22 -22
  31. data/lib/corba/common/Object.rb +14 -14
  32. data/lib/corba/common/Servant.rb +4 -4
  33. data/lib/corba/common/Stub.rb +6 -6
  34. data/lib/corba/common/Typecode.rb +69 -42
  35. data/lib/corba/common/Union.rb +5 -0
  36. data/lib/corba/common/Values.rb +1 -0
  37. data/lib/corba/common/const.rb +2 -2
  38. data/lib/corba/common/exception.rb +2 -1
  39. data/lib/corba/common/version.rb +2 -2
  40. data/lib/corba/idl/IDL.rb +1 -1
  41. data/lib/corba/jbase/Any.rb +28 -26
  42. data/lib/corba/jbase/ORB.rb +5 -5
  43. data/lib/corba/jbase/Object.rb +13 -13
  44. data/lib/corba/jbase/Request.rb +8 -8
  45. data/lib/corba/jbase/Servant.rb +10 -10
  46. data/lib/corba/jbase/ServerRequest.rb +7 -7
  47. data/lib/corba/jbase/Streams.rb +67 -3
  48. data/lib/corba/jbase/Typecode.rb +17 -16
  49. data/lib/corba/jbase/Values.rb +2 -0
  50. data/lib/corba/jbase/exception.rb +2 -1
  51. data/lib/corba/jbase/poa.rb +20 -20
  52. data/lib/corba/jbase/policies.rb +32 -32
  53. data/lib/corba/jbase/require.rb +4 -0
  54. data/lib/corba/poa.rb +1 -1
  55. data/lib/corba/policies.rb +1 -1
  56. data/lib/corba/require.rb +2 -2
  57. data/lib/corba/svcs/ins/cos_naming.rb +37 -28
  58. data/lib/corba/svcs/ins/ins.rb +51 -51
  59. data/lib/corba/svcs/ins/naming_service.rb +8 -8
  60. data/lib/corba.rb +1 -1
  61. data/lib/ridlbe/ruby/config.rb +37 -30
  62. data/lib/ridlbe/ruby/walker.rb +295 -272
  63. data/mkrf_conf_srcgem.rb +6 -6
  64. data/rakelib/bin.rake +1 -1
  65. data/rakelib/bin.rb +3 -3
  66. data/rakelib/build.rake +16 -16
  67. data/rakelib/config.rake +1 -1
  68. data/rakelib/config.rb +22 -22
  69. data/rakelib/ext.rake +7 -68
  70. data/rakelib/ext.rb +15 -15
  71. data/rakelib/ext_r2tao.rb +12 -55
  72. data/rakelib/gem.rake +25 -25
  73. data/rakelib/gem.rb +6 -6
  74. data/rakelib/package.rake +1 -1
  75. data/test/BiDirectional/client.rb +17 -17
  76. data/test/BiDirectional/run_test.rb +11 -11
  77. data/test/BiDirectional/server.rb +24 -25
  78. data/test/CORBA_Services/Naming/BindingIterator/client.rb +17 -17
  79. data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +13 -13
  80. data/test/CORBA_Services/Naming/BindingIterator/server.rb +19 -19
  81. data/test/CORBA_Services/Naming/Corbaname/client.rb +15 -15
  82. data/test/CORBA_Services/Naming/Corbaname/run_test.rb +13 -13
  83. data/test/CORBA_Services/Naming/Corbaname/server.rb +30 -30
  84. data/test/CORBA_Services/Naming/Simple/client.rb +16 -16
  85. data/test/CORBA_Services/Naming/Simple/run_test.rb +13 -13
  86. data/test/CORBA_Services/Naming/Simple/server.rb +19 -19
  87. data/test/Collocation/run_test.rb +10 -10
  88. data/test/Collocation/test.rb +27 -20
  89. data/test/Connect_Timeout/client.rb +16 -17
  90. data/test/Connect_Timeout/run_test.rb +10 -10
  91. data/test/DII/client.rb +30 -30
  92. data/test/DII/run_test.rb +11 -11
  93. data/test/DII/server.rb +16 -16
  94. data/test/DSI/client.rb +16 -16
  95. data/test/DSI/run_test.rb +11 -11
  96. data/test/DSI/server.rb +17 -17
  97. data/test/Exceptions/client.rb +21 -21
  98. data/test/Exceptions/run_test.rb +11 -11
  99. data/test/Exceptions/server.rb +16 -16
  100. data/test/Hello/client.rb +16 -16
  101. data/test/Hello/run_test.rb +11 -11
  102. data/test/Hello/server.rb +17 -17
  103. data/test/IDL_Test/client.rb +21 -21
  104. data/test/IDL_Test/run_test.rb +11 -11
  105. data/test/IDL_Test/server.rb +19 -19
  106. data/test/IORMap/client.rb +14 -14
  107. data/test/IORMap/run_test.rb +11 -11
  108. data/test/IORMap/server.rb +26 -26
  109. data/test/IORTable/client.rb +14 -14
  110. data/test/IORTable/run_test.rb +11 -11
  111. data/test/IORTable/server.rb +26 -26
  112. data/test/Implicit_Conversion/client.rb +20 -17
  113. data/test/Implicit_Conversion/run_test.rb +11 -11
  114. data/test/Implicit_Conversion/server.rb +16 -16
  115. data/test/Multi_Threading/Multiple_ORB/client.rb +14 -14
  116. data/test/Multi_Threading/Multiple_ORB/run_test.rb +12 -12
  117. data/test/Multi_Threading/Multiple_ORB/server.rb +17 -17
  118. data/test/Multi_Threading/Simple/client.rb +17 -17
  119. data/test/Multi_Threading/Simple/run_test.rb +11 -11
  120. data/test/Multi_Threading/Simple/server.rb +16 -16
  121. data/test/Multi_Threading/Threads/client.rb +16 -16
  122. data/test/Multi_Threading/Threads/run_test.rb +11 -11
  123. data/test/Multi_Threading/Threads/server.rb +22 -22
  124. data/test/Multi_Threading/Threads/watchdog.rb +16 -16
  125. data/test/Multiple_Servant_Interfaces/client.rb +14 -14
  126. data/test/Multiple_Servant_Interfaces/run_test.rb +11 -11
  127. data/test/Multiple_Servant_Interfaces/server.rb +18 -18
  128. data/test/Nil/run_test.rb +10 -10
  129. data/test/Nil/test.rb +14 -15
  130. data/test/OBV/AbstractInterface/client.rb +14 -14
  131. data/test/OBV/AbstractInterface/run_test.rb +11 -11
  132. data/test/OBV/AbstractInterface/server.rb +20 -19
  133. data/test/OBV/Custom/OBV_impl.rb +2 -0
  134. data/test/OBV/Custom/client.rb +14 -14
  135. data/test/OBV/Custom/run_test.rb +11 -11
  136. data/test/OBV/Custom/server.rb +16 -16
  137. data/test/OBV/Simple/OBV_impl.rb +1 -0
  138. data/test/OBV/Simple/client.rb +14 -14
  139. data/test/OBV/Simple/run_test.rb +11 -11
  140. data/test/OBV/Simple/server.rb +16 -16
  141. data/test/OBV/Simple_Event/Event_impl.rb +1 -0
  142. data/test/OBV/Simple_Event/client.rb +14 -14
  143. data/test/OBV/Simple_Event/run_test.rb +11 -11
  144. data/test/OBV/Simple_Event/server.rb +16 -16
  145. data/test/OBV/Supports/client.rb +19 -19
  146. data/test/OBV/Supports/run_test.rb +11 -11
  147. data/test/OBV/Supports/server.rb +15 -15
  148. data/test/OBV/Supports/supports_impl.rb +3 -0
  149. data/test/OBV/Tree/client.rb +14 -14
  150. data/test/OBV/Tree/run_test.rb +11 -11
  151. data/test/OBV/Tree/server.rb +19 -19
  152. data/test/OBV/Truncatable/Truncatable_impl.rb +1 -1
  153. data/test/OBV/Truncatable/client.rb +57 -57
  154. data/test/OBV/Truncatable/run_test.rb +11 -11
  155. data/test/OBV/Truncatable/server.rb +15 -15
  156. data/test/OBV/ValueBox/client.rb +154 -153
  157. data/test/OBV/ValueBox/run_test.rb +11 -11
  158. data/test/OBV/ValueBox/server.rb +42 -42
  159. data/test/Object/client.rb +15 -15
  160. data/test/Object/run_test.rb +11 -11
  161. data/test/Object/server.rb +19 -19
  162. data/test/POA/run_test.rb +10 -10
  163. data/test/POA/test.rb +16 -16
  164. data/test/Param_Test/client.rb +51 -51
  165. data/test/Param_Test/run_test.rb +11 -11
  166. data/test/Param_Test/server.rb +59 -59
  167. data/test/Performance/Simple/client.rb +16 -16
  168. data/test/Performance/Simple/run_test.rb +11 -11
  169. data/test/Performance/Simple/server.rb +16 -16
  170. data/test/Policies/run_test.rb +10 -10
  171. data/test/Policies/test.rb +23 -24
  172. data/test/Timeout/client.rb +21 -21
  173. data/test/Timeout/run_test.rb +11 -11
  174. data/test/Timeout/server.rb +22 -22
  175. data/test/lib/assert.rb +0 -1
  176. data/test/lib/test.rb +28 -23
  177. data/test/test_runner.rb +21 -22
  178. metadata +6 -9
  179. data/ext/extload/extload.c +0 -60
  180. data/ext/librpoa/srvreq_fix.cpp +0 -282
  181. data/ext/librpoa/srvreq_fix.h +0 -148
@@ -11,7 +11,6 @@
11
11
  #------------------------------------------------------------------*/
12
12
 
13
13
  #include "poa.h"
14
- #include "ace/Auto_Ptr.h"
15
14
  #include "tao/DynamicInterface/Server_Request.h"
16
15
  #include "tao/DynamicInterface/Dynamic_Implementation.h"
17
16
  #include "tao/AnyTypeCode/Any.h"
@@ -25,10 +24,8 @@
25
24
  #include "exception.h"
26
25
  #include "orb.h"
27
26
  #include "servant.h"
28
-
29
- #if RPOA_NEED_DSI_FIX
30
- # include "srvreq_fix.cpp"
31
- #endif
27
+ #include <memory>
28
+ #include <cstring>
32
29
 
33
30
  #define RUBY_INVOKE_FUNC RUBY_ALLOC_FUNC
34
31
 
@@ -74,7 +71,7 @@ void r2tao_init_Servant()
74
71
  VALUE klass;
75
72
 
76
73
  r2tao_cServant = klass = rb_eval_string("::R2CORBA::PortableServer::Servant");
77
- rb_define_alloc_func (r2tao_cServant, RUBY_ALLOC_FUNC (srv_alloc));
74
+ rb_define_alloc_func (r2tao_cServant, srv_alloc);
78
75
  rb_define_method(klass, "_default_POA", RUBY_METHOD_FUNC(r2tao_Servant_default_POA), 0);
79
76
  rb_define_method(klass, "_this", RUBY_METHOD_FUNC(r2tao_Servant_this), 0);
80
77
 
@@ -98,6 +95,7 @@ void r2tao_init_Servant()
98
95
  interface_repository_id_ID = rb_intern ("_interface_repository_id");
99
96
 
100
97
  r2tao_cDynamicImp = klass = rb_eval_string("::R2CORBA::PortableServer::DynamicImplementation");
98
+ rb_define_alloc_func (r2tao_cDynamicImp, srv_alloc);
101
99
 
102
100
  invoke_ID = rb_intern ("invoke");
103
101
  primary_interface_ID = rb_intern ("_primary_interface");
@@ -113,15 +111,15 @@ void r2tao_init_Servant()
113
111
  //===================================================================
114
112
 
115
113
  struct DSI_Data {
116
- R2CORBA_ServerRequest_ptr _request;
114
+ CORBA::ServerRequest_ptr _request;
117
115
  CORBA::NVList_ptr _nvlist;
118
116
  CORBA::TypeCode_var _result_type;
119
117
  VALUE _rData;
120
118
 
121
- DSI_Data(R2CORBA_ServerRequest_ptr _req)
122
- : _request(_req), _nvlist(0), _rData(Qnil) {}
119
+ DSI_Data(CORBA::ServerRequest_ptr _req)
120
+ : _request(_req), _nvlist(nullptr), _rData(Qnil) {}
123
121
  ~DSI_Data() {
124
- if (this->_rData!=Qnil) { DATA_PTR(this->_rData) = 0; }
122
+ if (this->_rData!=Qnil) { DATA_PTR(this->_rData) = nullptr; }
125
123
  }
126
124
  };
127
125
 
@@ -134,7 +132,7 @@ VALUE r2tao_ServerRequest_operation(VALUE self)
134
132
  {
135
133
  if (DATA_PTR (self) != 0)
136
134
  {
137
- R2CORBA_ServerRequest_ptr request = static_cast<DSI_Data*> (DATA_PTR (self))->_request;
135
+ CORBA::ServerRequest_ptr request = static_cast<DSI_Data*> (DATA_PTR (self))->_request;
138
136
  return rb_str_new2 (request->operation ());
139
137
  }
140
138
  return Qnil;
@@ -152,7 +150,7 @@ VALUE r2tao_ServerRequest_describe(VALUE self, VALUE desc)
152
150
  X_CORBA (BAD_INV_ORDER);
153
151
  }
154
152
 
155
- R2CORBA_ServerRequest_ptr request = dsi_data->_request;
153
+ CORBA::ServerRequest_ptr request = dsi_data->_request;
156
154
 
157
155
  if (desc != Qnil && rb_type (desc) == T_HASH)
158
156
  {
@@ -289,11 +287,11 @@ VALUE r2tao_ServerRequest_get(VALUE self, VALUE key)
289
287
  if (rb_obj_is_kind_of (key, rb_cString) == Qtrue)
290
288
  {
291
289
  char* arg_name = RSTRING_PTR (key);
292
- CORBA::ULong arg_num = dsi_data->_nvlist->count ();
293
- for (CORBA::ULong ix=0; ix<arg_num ;++ix)
290
+ CORBA::ULong const arg_num = dsi_data->_nvlist->count ();
291
+ for (CORBA::ULong ix=0; ix < arg_num ;++ix)
294
292
  {
295
293
  CORBA::NamedValue_ptr _nv = dsi_data->_nvlist->item (ix);
296
- if (_nv->name () && ACE_OS::strcmp (arg_name, _nv->name ()) == 0)
294
+ if (_nv->name () && std::strcmp (arg_name, _nv->name ()) == 0)
297
295
  {
298
296
  R2TAO_TRY
299
297
  {
@@ -343,11 +341,11 @@ VALUE r2tao_ServerRequest_set(VALUE self, VALUE key, VALUE val)
343
341
  if (rb_obj_is_kind_of (key, rb_cString) == Qtrue)
344
342
  {
345
343
  char* arg_name = RSTRING_PTR (key);
346
- CORBA::ULong arg_num = dsi_data->_nvlist->count ();
347
- for (CORBA::ULong ix=0; ix<arg_num ;++ix)
344
+ CORBA::ULong const arg_num = dsi_data->_nvlist->count ();
345
+ for (CORBA::ULong ix = 0; ix < arg_num ;++ix)
348
346
  {
349
347
  CORBA::NamedValue_ptr _nv = dsi_data->_nvlist->item (ix);
350
- if (_nv->name () && ACE_OS::strcmp (arg_name, _nv->name ()) == 0)
348
+ if (_nv->name () && std::strcmp (arg_name, _nv->name ()) == 0)
351
349
  {
352
350
  R2TAO_TRY
353
351
  {
@@ -483,87 +481,20 @@ VALUE DSI_Servant::_invoke_implementation(VALUE args)
483
481
 
484
482
  DSI_Servant::METHOD DSI_Servant::method_id (const char* method)
485
483
  {
486
- if (ACE_OS::strcmp (method, "_is_a") == 0)
484
+ if (std::strcmp (method, "_is_a") == 0)
487
485
  return IS_A;
488
- else if (ACE_OS::strcmp (method, "_repository_id") == 0)
486
+ else if (std::strcmp (method, "_repository_id") == 0)
489
487
  return REPOSITORY_ID;
490
- else if (ACE_OS::strcmp (method, "_non_existent") == 0)
488
+ else if (std::strcmp (method, "_non_existent") == 0)
491
489
  return NON_EXISTENT;
492
- else if (ACE_OS::strcmp (method, "_component") == 0)
490
+ else if (std::strcmp (method, "_component") == 0)
493
491
  return GET_COMPONENT;
494
- else if (ACE_OS::strcmp (method, "_interface") == 0)
492
+ else if (std::strcmp (method, "_interface") == 0)
495
493
  return GET_INTERFACE;
496
494
 
497
495
  return NONE;
498
496
  }
499
497
 
500
- #if RPOA_NEED_DSI_FIX
501
- void DSI_Servant::invoke (CORBA::ServerRequest_ptr /*request*/)
502
- {}
503
-
504
- void DSI_Servant::_dispatch (TAO_ServerRequest &request,
505
- void * /*context*/)
506
- {
507
- // No need to do any of this if the client isn't waiting.
508
- if (request.response_expected ())
509
- {
510
- if (request.is_forwarded ())
511
- {
512
- request.init_reply ();
513
- request.tao_send_reply ();
514
-
515
- // No need to invoke in this case.
516
- return;
517
- }
518
- else if (request.sync_with_server ())
519
- {
520
- // The last line before the call to this function
521
- // was an ACE_CHECK_RETURN, so if we're here, we
522
- // know there is no exception so far, and that's all
523
- // a SYNC_WITH_SERVER client request cares about.
524
- request.send_no_exception_reply ();
525
- }
526
- }
527
-
528
- // Create DSI request object.
529
- R2CORBA::ServerRequest *dsi_request = 0;
530
- ACE_NEW (dsi_request,
531
- R2CORBA::ServerRequest (request));
532
-
533
- try
534
- {
535
- // Delegate to user.
536
- this->invoke_fix (dsi_request);
537
-
538
- // Only if the client is waiting.
539
- if (request.response_expected () && !request.sync_with_server ())
540
- {
541
- dsi_request->dsi_marshal ();
542
- }
543
- }
544
- catch (::CORBA::Exception& ex)
545
- {
546
- // Only if the client is waiting.
547
- if (request.response_expected () && !request.sync_with_server ())
548
- {
549
- if (request.collocated ()
550
- && request.operation_details ()->cac () != 0)
551
- {
552
- // If we have a cac it will handle the exception and no
553
- // need to do any further processing
554
- request.operation_details ()->cac ()->handle_corba_exception (
555
- request, &ex);
556
- return;
557
- }
558
- else
559
- request.tao_send_reply_exception (ex);
560
- }
561
- }
562
-
563
- ::CORBA::release (dsi_request);
564
- }
565
- #endif
566
-
567
498
  // invocation helper for threadsafe calling of Ruby code
568
499
  void* DSI_Servant::thread_safe_invoke (void * arg)
569
500
  {
@@ -581,24 +512,20 @@ void* DSI_Servant::thread_safe_invoke (void * arg)
581
512
  return 0;
582
513
  }
583
514
 
584
- # if RPOA_NEED_DSI_FIX
585
- void DSI_Servant::invoke_fix (R2CORBA::ServerRequest_ptr request)
586
- # else
587
515
  void DSI_Servant::invoke (CORBA::ServerRequest_ptr request)
588
- # endif
589
516
  {
590
517
  ThreadSafeArg tca_(this, request);
591
518
 
592
519
  void* rc = r2tao_call_thread_safe (DSI_Servant::thread_safe_invoke, &tca_);
593
- if (rc != 0)
520
+ if (rc != nullptr)
594
521
  {
595
522
  CORBA::SystemException* exc = reinterpret_cast<CORBA::SystemException*> (rc);
596
- ACE_Auto_Basic_Ptr<CORBA::SystemException> e_ptr(exc);
523
+ std::unique_ptr<CORBA::SystemException> e_ptr(exc);
597
524
  exc->_raise ();
598
525
  }
599
526
  }
600
527
 
601
- void DSI_Servant::inner_invoke (R2CORBA_ServerRequest_ptr request)
528
+ void DSI_Servant::inner_invoke (CORBA::ServerRequest_ptr request)
602
529
  {
603
530
  if (TAO_debug_level > 7)
604
531
  ACE_DEBUG ((LM_INFO, "R2TAO (%P|%t) - Servant::invoke(%C)\n", request->operation ()));
@@ -628,13 +555,13 @@ void DSI_Servant::inner_invoke (R2CORBA_ServerRequest_ptr request)
628
555
  // set ORB arguments (retrieves data for IN/INOUT args)
629
556
  request->arguments (nvlist);
630
557
 
631
- const char *tmp = 0;
558
+ const char *tmp = nullptr;
632
559
  (*_nv->value ()) >>= tmp;
633
560
 
634
561
  f = this->_is_a (tmp);
635
562
 
636
563
  if (TAO_debug_level > 5)
637
- ACE_DEBUG ((LM_INFO, "R2TAO (%P|%t) _is_a (%s) -> %d\n", tmp, f));
564
+ ACE_DEBUG ((LM_INFO, "R2TAO (%P|%t) _is_a (%C) -> %d\n", tmp, f));
638
565
  }
639
566
  else
640
567
  {
@@ -663,7 +590,7 @@ void DSI_Servant::inner_invoke (R2CORBA_ServerRequest_ptr request)
663
590
  CORBA::String_var repo_id = this->_repository_id ();
664
591
 
665
592
  if (TAO_debug_level > 5)
666
- ACE_DEBUG ((LM_INFO, "R2TAO (%P|%t) _repository_id () -> %s\n", repo_id.in ()));
593
+ ACE_DEBUG ((LM_INFO, "R2TAO (%P|%t) _repository_id () -> %C\n", repo_id.in ()));
667
594
 
668
595
  CORBA::Any _any;
669
596
  _any <<= repo_id.in ();
@@ -700,13 +627,13 @@ void DSI_Servant::inner_invoke (R2CORBA_ServerRequest_ptr request)
700
627
  }
701
628
  }
702
629
 
703
- void DSI_Servant::invoke_DSI (R2CORBA_ServerRequest_ptr request)
630
+ void DSI_Servant::invoke_DSI (CORBA::ServerRequest_ptr request)
704
631
  {
705
632
  if (TAO_debug_level > 5)
706
633
  ACE_DEBUG ((LM_INFO, "R2TAO (%P|%t) - Servant::invoke_DSI(%C) entry\n", request->operation ()));
707
634
 
708
635
  // wrap request for Ruby; cleanup automatically
709
- ACE_Auto_Basic_Ptr<DSI_Data> dsi_data(new DSI_Data(request));
636
+ std::unique_ptr<DSI_Data> dsi_data(new DSI_Data(request));
710
637
 
711
638
  VALUE srvreq = Data_Wrap_Struct(r2tao_cServerRequest, 0, 0, dsi_data.get ());
712
639
 
@@ -752,7 +679,7 @@ void DSI_Servant::invoke_DSI (R2CORBA_ServerRequest_ptr request)
752
679
  _exc->completed (
753
680
  static_cast<CORBA::CompletionStatus> (NUM2ULONG (rb_iv_get (rexc, "@completed"))));
754
681
 
755
- ACE_Auto_Basic_Ptr<CORBA::SystemException> e_ptr(_exc);
682
+ std::unique_ptr<CORBA::SystemException> e_ptr(_exc);
756
683
  _exc->_raise ();
757
684
  }
758
685
  else
@@ -825,7 +752,7 @@ void DSI_Servant::invoke_DSI (R2CORBA_ServerRequest_ptr request)
825
752
  }
826
753
  }
827
754
 
828
- void DSI_Servant::invoke_SI (R2CORBA_ServerRequest_ptr request)
755
+ void DSI_Servant::invoke_SI (CORBA::ServerRequest_ptr request)
829
756
  {
830
757
  if (TAO_debug_level > 5)
831
758
  ACE_DEBUG ((LM_INFO, "R2TAO (%P|%t) - Servant::invoke_SI(%C) entry\n", request->operation ()));
@@ -985,7 +912,7 @@ void DSI_Servant::invoke_SI (R2CORBA_ServerRequest_ptr request)
985
912
  _exc->completed (
986
913
  static_cast<CORBA::CompletionStatus> (NUM2ULONG (rb_iv_get (rexc, "@completed"))));
987
914
 
988
- ACE_Auto_Basic_Ptr<CORBA::SystemException> e_ptr(_exc);
915
+ std::unique_ptr<CORBA::SystemException> e_ptr(_exc);
989
916
  _exc->_raise ();
990
917
  }
991
918
  else
@@ -1097,7 +1024,7 @@ CORBA::Boolean DSI_Servant::_is_a (const char *logical_type_id)
1097
1024
  }
1098
1025
  }
1099
1026
 
1100
- CORBA::Boolean DSI_Servant::_non_existent (void)
1027
+ CORBA::Boolean DSI_Servant::_non_existent ()
1101
1028
  {
1102
1029
  static R2TAO_RBFuncall FN_non_existent ("_non_existent?");
1103
1030
 
@@ -1113,7 +1040,7 @@ CORBA::Boolean DSI_Servant::_non_existent (void)
1113
1040
  }
1114
1041
  }
1115
1042
 
1116
- CORBA::Object_ptr DSI_Servant::_get_component (void)
1043
+ CORBA::Object_ptr DSI_Servant::_get_component ()
1117
1044
  {
1118
1045
  static R2TAO_RBFuncall FN_get_component ("_get_component");
1119
1046
 
@@ -1131,7 +1058,7 @@ CORBA::Object_ptr DSI_Servant::_get_component (void)
1131
1058
  }
1132
1059
  }
1133
1060
 
1134
- const char *DSI_Servant::_interface_repository_id (void) const
1061
+ const char *DSI_Servant::_interface_repository_id () const
1135
1062
  {
1136
1063
  static R2TAO_RBFuncall FN_repository_id ("_repository_id");
1137
1064
 
@@ -1179,7 +1106,7 @@ const char *DSI_Servant::_interface_repository_id (void) const
1179
1106
  }
1180
1107
  }
1181
1108
 
1182
- char * DSI_Servant::_repository_id (void)
1109
+ char * DSI_Servant::_repository_id ()
1183
1110
  {
1184
1111
  return CORBA::string_dup (this->_interface_repository_id ());
1185
1112
  }
@@ -1243,7 +1170,7 @@ VALUE r2tao_Servant_default_POA(VALUE self)
1243
1170
  {
1244
1171
  R2TAO_TRY
1245
1172
  {
1246
- DSI_Servant* _servant = 0;
1173
+ DSI_Servant* _servant {};
1247
1174
  if (DATA_PTR (self) == 0)
1248
1175
  {
1249
1176
  // create new C++ servant object
@@ -1269,7 +1196,7 @@ VALUE r2tao_Servant_this(VALUE self)
1269
1196
  R2TAO_TRY
1270
1197
  {
1271
1198
  bool _new_srv = false;
1272
- DSI_Servant* _servant = 0;
1199
+ DSI_Servant* _servant {};
1273
1200
  if (DATA_PTR (self) == 0)
1274
1201
  {
1275
1202
  // create new C++ servant object
@@ -1321,9 +1248,8 @@ VALUE r2tao_Servant_this(VALUE self)
1321
1248
  static VALUE
1322
1249
  srv_alloc(VALUE klass)
1323
1250
  {
1324
- VALUE obj;
1325
1251
  // we start off without the C++ representation
1326
- obj = Data_Wrap_Struct(klass, 0, srv_free, 0);
1252
+ VALUE obj = Data_Wrap_Struct(klass, nullptr, srv_free, nullptr);
1327
1253
  return obj;
1328
1254
  }
1329
1255
 
@@ -10,50 +10,33 @@
10
10
  # Copyright (c) Remedy IT Expertise BV
11
11
  #------------------------------------------------------------------*/
12
12
 
13
- #if ((TAO_MAJOR_VERSION < 2) || (TAO_MAJOR_VERSION == 2 && TAO_MINOR_VERSION == 0 && TAO_MICRO_VERSION <= 1))
14
- # define RPOA_NEED_DSI_FIX 1
15
-
16
- # include "srvreq_fix.h"
17
-
18
- # define R2CORBA_ServerRequest R2CORBA::ServerRequest
19
- # define R2CORBA_ServerRequest_ptr R2CORBA::ServerRequest_ptr
20
- #else
21
- # define R2CORBA_ServerRequest CORBA::ServerRequest
22
- # define R2CORBA_ServerRequest_ptr CORBA::ServerRequest_ptr
23
- #endif
24
-
25
13
  //-------------------------------------------------------------------
26
14
  // R2TAO Servant class
27
15
  //
28
16
  //===================================================================
29
-
30
17
  class DSI_Servant : public PortableServer::DynamicImplementation
31
18
  {
32
19
  public:
20
+ /// ctor
21
+ DSI_Servant () = delete;
33
22
  DSI_Servant (VALUE rbServant);
34
- // ctor
35
- virtual ~DSI_Servant ();
36
- // dtor
23
+ ~DSI_Servant () override;
37
24
 
38
- virtual void invoke (CORBA::ServerRequest_ptr request);
39
- //ACE_THROW_SPEC ((CORBA::SystemException));
40
- #if RPOA_NEED_DSI_FIX
41
- void invoke_fix (R2CORBA::ServerRequest_ptr request);
42
- #endif
25
+ void invoke (CORBA::ServerRequest_ptr request) override;
43
26
 
44
- virtual CORBA::RepositoryId _primary_interface (
27
+ CORBA::RepositoryId _primary_interface (
45
28
  const PortableServer::ObjectId &oid,
46
- PortableServer::POA_ptr poa);
29
+ PortableServer::POA_ptr poa) override;
47
30
 
48
- virtual CORBA::Boolean _is_a (const char *logical_type_id);
31
+ CORBA::Boolean _is_a (const char *logical_type_id) override;
49
32
 
50
- virtual CORBA::Boolean _non_existent (void);
33
+ CORBA::Boolean _non_existent () override;
51
34
 
52
- //virtual CORBA::InterfaceDef_ptr _get_interface (void);
35
+ //virtual CORBA::InterfaceDef_ptr _get_interface ();
53
36
 
54
- virtual CORBA::Object_ptr _get_component (void);
37
+ CORBA::Object_ptr _get_component () override;
55
38
 
56
- virtual char * _repository_id (void);
39
+ char * _repository_id () override;
57
40
 
58
41
  enum METHOD {
59
42
  NONE,
@@ -73,12 +56,7 @@ public:
73
56
  void activate_servant ();
74
57
 
75
58
  protected:
76
- virtual const char *_interface_repository_id (void) const;
77
-
78
- #if RPOA_NEED_DSI_FIX
79
- /// Turns around and calls invoke.
80
- virtual void _dispatch (TAO_ServerRequest &request, void *context);
81
- #endif
59
+ const char *_interface_repository_id () const override;
82
60
 
83
61
  void register_with_servant ();
84
62
 
@@ -87,26 +65,26 @@ protected:
87
65
 
88
66
  METHOD method_id (const char* method);
89
67
 
90
- virtual void inner_invoke (R2CORBA_ServerRequest_ptr request);
68
+ void inner_invoke (CORBA::ServerRequest_ptr request);
91
69
 
92
- void invoke_SI (R2CORBA_ServerRequest_ptr request);
93
- void invoke_DSI (R2CORBA_ServerRequest_ptr request);
70
+ void invoke_SI (CORBA::ServerRequest_ptr request);
71
+ void invoke_DSI (CORBA::ServerRequest_ptr request);
94
72
 
95
73
  static VALUE _invoke_implementation(VALUE args);
96
74
 
97
75
  private:
76
+ /// The Ruby Servant
98
77
  VALUE rbServant_;
99
- // The Ruby Servant
100
78
 
101
79
  CORBA::String_var repo_id_;
102
80
 
103
81
  struct ThreadSafeArg
104
82
  {
105
83
  ThreadSafeArg (DSI_Servant* srv,
106
- R2CORBA_ServerRequest_ptr req)
84
+ CORBA::ServerRequest_ptr req)
107
85
  : servant_(srv), request_(req) {}
108
86
  DSI_Servant* servant_;
109
- R2CORBA_ServerRequest_ptr request_;
87
+ CORBA::ServerRequest_ptr request_;
110
88
  };
111
89
 
112
90
  static void* thread_safe_invoke (void * arg);
@@ -41,12 +41,12 @@ module R2CORBA
41
41
  prop = nil
42
42
  a1, a2, a3 = args
43
43
  if Array === a1
44
- raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size>3
44
+ raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size > 3
45
45
  argv = a1
46
46
  orb_id = (Hash === a2 ? nil : a2)
47
47
  prop = (Hash === a2 ? a2 : a3)
48
48
  elsif args.size == 1 || Hash === a2
49
- raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size>2
49
+ raise ArgumentError, "Incorrect nr. of arguments; #{args.size}" if args.size > 2
50
50
  orb_id = a1
51
51
  prop = a2
52
52
  else
@@ -54,7 +54,7 @@ module R2CORBA
54
54
  end
55
55
  raise ArgumentError, "Invalid argument #{prop.class}; expected Hash" unless prop.nil? || Hash === prop
56
56
  unless prop.nil?()
57
- prop.inject(argv) {|a,(k,v)| a << k; a << v; a}
57
+ prop.inject(argv) {|a, (k, v)| a << k; a << v; a}
58
58
  end
59
59
  @@cached_orb = CORBA::Native::ORB.init(argv.collect {|a| a.to_s }.concat(@@_default_args), orb_id.nil?() ? nil : orb_id.to_s)
60
60
  end
@@ -98,11 +98,11 @@ module R2CORBA
98
98
  else
99
99
  @running ||= true
100
100
  raise CORBA::BAD_INV_ORDER.new('ORB has been shutdown', 0, CORBA::COMPLETED_NO) if @shutdown
101
- while (timeout.nil? or timeout>0) and !@shutdown
101
+ while (timeout.nil? or timeout > 0) and !@shutdown
102
102
  to = timeout || 0.05
103
103
  f, to = self.work_pending(to)
104
104
  timeout = to unless timeout.nil?
105
- if f and !@shutdown and (timeout.nil? or timeout>0)
105
+ if f and !@shutdown and (timeout.nil? or timeout > 0)
106
106
  to = timeout || 0.05
107
107
  to = self.perform_work(to)
108
108
  timeout = to unless timeout.nil?
@@ -144,17 +144,20 @@ module R2CORBA
144
144
  @q_ = []
145
145
  super
146
146
  end
147
+
147
148
  def push(vfklass)
148
149
  synchronize do
149
150
  @q_ << vfklass
150
151
  end
151
152
  end
153
+
152
154
  def process_all(&block)
153
155
  synchronize do
154
156
  @q_.each { |vf| block.call(vf) }
155
157
  @q_.clear
156
158
  end
157
159
  end
160
+
158
161
  def empty?()
159
162
  f = false
160
163
  synchronize do
@@ -186,22 +189,22 @@ module R2CORBA
186
189
  private
187
190
  @@sigreg = {}
188
191
  def CORBA.signal_numbers
189
- ( [1, # HUP
190
- 2, # INT
191
- 3, # QUIT
192
- 5, # TRAP
193
- 6, # ABRT
194
- 10, # USR1
195
- 12, # USR2
196
- 13, # SIGPIPE
197
- 14, # ALRM
198
- 15, # TERM
199
- 17, # CHLD
200
- 18, # CONT
201
- 23, # URG
202
- 30, # PWR
203
- 31 # SYS
204
- ]) & Signal.list.values
192
+ ([1, # HUP
193
+ 2, # INT
194
+ 3, # QUIT
195
+ 5, # TRAP
196
+ 6, # ABRT
197
+ 10, # USR1
198
+ 12, # USR2
199
+ 13, # SIGPIPE
200
+ 14, # ALRM
201
+ 15, # TERM
202
+ 17, # CHLD
203
+ 18, # CONT
204
+ 23, # URG
205
+ 30, # PWR
206
+ 31 # SYS
207
+ ]) & Signal.list.values
205
208
  end
206
209
 
207
210
  def CORBA.handled_signals
@@ -210,7 +213,7 @@ module R2CORBA
210
213
  sigcmd = Signal.trap(signum, 'DEFAULT')
211
214
  Signal.trap(signum, sigcmd)
212
215
  @@sigreg[signum] = sigcmd
213
- if sigcmd.respond_to?(:call) or ['IGNORE','SIG_IGN','EXIT'].include?(sigcmd.to_s)
216
+ if sigcmd.respond_to?(:call) or ['IGNORE', 'SIG_IGN', 'EXIT'].include?(sigcmd.to_s)
214
217
  signum
215
218
  else
216
219
  nil
@@ -222,7 +225,7 @@ module R2CORBA
222
225
  def CORBA.handle_signal(signum)
223
226
  if @@sigreg.has_key?(signum)
224
227
  if @@sigreg[signum].respond_to?(:call)
225
- if @@sigreg[signum].respond_to?(:parameters) && @@sigreg[signum].parameters.size>0
228
+ if @@sigreg[signum].respond_to?(:parameters) && @@sigreg[signum].parameters.size > 0
226
229
  @@sigreg[signum].call(signum)
227
230
  else
228
231
  @@sigreg[signum].call
@@ -14,17 +14,17 @@ module R2CORBA
14
14
 
15
15
  module Request
16
16
 
17
- def add_in_arg(tc, val, nm='')
17
+ def add_in_arg(tc, val, nm = '')
18
18
  self._arguments << [nm, CORBA::ARG_IN, tc, val]
19
19
  self._arguments.size
20
20
  end
21
21
 
22
- def add_out_arg(tc, nm='')
22
+ def add_out_arg(tc, nm = '')
23
23
  self._arguments << [nm, CORBA::ARG_OUT, tc]
24
24
  self._arguments.size
25
25
  end
26
26
 
27
- def add_inout_arg(tc, val, nm='')
27
+ def add_inout_arg(tc, val, nm = '')
28
28
  self._arguments << [nm, CORBA::ARG_INOUT, tc, val]
29
29
  self._arguments.size
30
30
  end
@@ -42,7 +42,7 @@ module R2CORBA
42
42
  when TK_DOUBLE
43
43
  read_double()
44
44
  when TK_LONGDOUBLE
45
- raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
45
+ raise CORBA::NO_IMPLEMENT.new('LongDouble not supported', 0, CORBA::COMPLETED_NO)
46
46
  when TK_FIXED
47
47
  read_fixed()
48
48
  when TK_CHAR
@@ -98,7 +98,7 @@ module R2CORBA
98
98
  when TK_DOUBLE
99
99
  write_double(value)
100
100
  when TK_LONGDOUBLE
101
- raise CORBA::NO_IMPLEMENT.new('LongDouble not supported',0,CORBA::COMPLETED_NO)
101
+ raise CORBA::NO_IMPLEMENT.new('LongDouble not supported', 0, CORBA::COMPLETED_NO)
102
102
  when TK_FIXED
103
103
  write_fixed(value)
104
104
  when TK_CHAR
@@ -118,7 +118,7 @@ module R2CORBA
118
118
  content_tc = args.shift
119
119
  length = args
120
120
  raise ArgumentError, 'expected CORBA::TypeCode' unless content_tc.is_a?(CORBA::TypeCode)
121
- if length.size>1
121
+ if length.size > 1
122
122
  this_len = length.shift
123
123
  content_tc = self.class.new(content_tc, *length)
124
124
  else
@@ -196,7 +196,7 @@ module R2CORBA
196
196
 
197
197
  protected
198
198
 
199
- def _create_tc(id,name,modifier,base,members)
199
+ def _create_tc(id, name, modifier, base, members)
200
200
  begin
201
201
  CORBA::Native::TypeCode.create_tc(TK_VALUE, id.to_s, name.to_s,
202
202
  CORBA::VT_MODIFIERS[modifier],
@@ -213,7 +213,7 @@ module R2CORBA
213
213
 
214
214
  protected
215
215
 
216
- def _create_tc(id,name,modifier,base,members)
216
+ def _create_tc(id, name, modifier, base, members)
217
217
  begin
218
218
  CORBA::Native::TypeCode.create_tc(TK_EVENT, id.to_s, name.to_s,
219
219
  CORBA::VT_MODIFIERS[modifier],
@@ -321,7 +321,7 @@ module R2CORBA
321
321
 
322
322
  protected
323
323
 
324
- def _create_tc(id,name,members)
324
+ def _create_tc(id, name, members)
325
325
  begin
326
326
  CORBA::Native::TypeCode.create_tc(TK_STRUCT, id.to_s, name.to_s, members)
327
327
  rescue ::NativeException
@@ -335,7 +335,7 @@ module R2CORBA
335
335
 
336
336
  protected
337
337
 
338
- def _create_tc(id,name,members)
338
+ def _create_tc(id, name, members)
339
339
  begin
340
340
  CORBA::Native::TypeCode.create_tc(TK_EXCEPT, id.to_s, name.to_s, members)
341
341
  rescue ::NativeException
@@ -356,7 +356,7 @@ module R2CORBA
356
356
  @members = []
357
357
  def_inx = @tc_.default_index
358
358
  @tc_.member_count.times do |i|
359
- if def_inx < 0 || def_inx != i
359
+ if def_inx < 0 || def_inx != i
360
360
  ml_ = @tc_.member_label(i)
361
361
  else
362
362
  ml_ = :default