r2corba 1.5.2 → 1.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +8 -5
- data/ext/libr2tao/any.cpp +12 -11
- data/ext/libr2tao/exception.cpp +6 -8
- data/ext/libr2tao/exception.h +1 -2
- data/ext/libr2tao/longdouble.cpp +5 -9
- data/ext/libr2tao/object.cpp +37 -53
- data/ext/libr2tao/orb.cpp +46 -73
- data/ext/libr2tao/r2tao_export.h +1 -1
- data/ext/libr2tao/r2tao_ext.h +8 -19
- data/ext/libr2tao/required.cpp +4 -28
- data/ext/libr2tao/required.h +23 -80
- data/ext/libr2tao/values.cpp +97 -98
- data/ext/libr2tao/values.h +36 -40
- data/ext/librpoa/iortable.cpp +6 -7
- data/ext/librpoa/poa.cpp +29 -32
- data/ext/librpoa/servant.cpp +39 -113
- data/ext/librpoa/servant.h +18 -40
- data/lib/corba.rb +1 -1
- data/lib/corba/cbase/ORB.rb +26 -23
- data/lib/corba/cbase/Request.rb +3 -3
- data/lib/corba/cbase/Streams.rb +2 -2
- data/lib/corba/cbase/Typecode.rb +6 -6
- data/lib/corba/cbase/Values.rb +4 -2
- data/lib/corba/cbase/exception.rb +6 -4
- data/lib/corba/cbase/poa.rb +1 -1
- data/lib/corba/cbase/policies.rb +2 -2
- data/lib/corba/cbase/require.rb +8 -1
- data/lib/corba/cmds/base.rb +1 -1
- data/lib/corba/common/Any.rb +3 -2
- data/lib/corba/common/IDL.rb +4 -7
- data/lib/corba/common/ORB.rb +22 -22
- data/lib/corba/common/Object.rb +14 -14
- data/lib/corba/common/Servant.rb +4 -4
- data/lib/corba/common/Stub.rb +6 -6
- data/lib/corba/common/Typecode.rb +72 -45
- data/lib/corba/common/Union.rb +5 -0
- data/lib/corba/common/Values.rb +1 -0
- data/lib/corba/common/const.rb +2 -2
- data/lib/corba/common/exception.rb +2 -1
- data/lib/corba/common/require.rb +8 -0
- data/lib/corba/common/version.rb +2 -2
- data/lib/corba/idl/IDL.rb +1 -1
- data/lib/corba/jbase/Any.rb +28 -26
- data/lib/corba/jbase/ORB.rb +5 -5
- data/lib/corba/jbase/Object.rb +13 -13
- data/lib/corba/jbase/Request.rb +8 -8
- data/lib/corba/jbase/Servant.rb +10 -10
- data/lib/corba/jbase/ServerRequest.rb +7 -7
- data/lib/corba/jbase/Streams.rb +67 -3
- data/lib/corba/jbase/Typecode.rb +17 -16
- data/lib/corba/jbase/Values.rb +2 -0
- data/lib/corba/jbase/exception.rb +2 -1
- data/lib/corba/jbase/poa.rb +20 -20
- data/lib/corba/jbase/policies.rb +32 -32
- data/lib/corba/jbase/require.rb +4 -0
- data/lib/corba/poa.rb +1 -1
- data/lib/corba/policies.rb +1 -1
- data/lib/corba/require.rb +2 -2
- data/lib/corba/svcs/ins/cos_naming.rb +37 -28
- data/lib/corba/svcs/ins/ins.rb +51 -51
- data/lib/corba/svcs/ins/naming_service.rb +8 -8
- data/lib/ridlbe/ruby/config.rb +78 -72
- data/lib/ridlbe/ruby/walker.rb +295 -272
- data/mkrf_conf_srcgem.rb +6 -6
- data/rakelib/bin.rake +1 -1
- data/rakelib/bin.rb +3 -3
- data/rakelib/build.rake +16 -16
- data/rakelib/config.rake +1 -1
- data/rakelib/config.rb +24 -25
- data/rakelib/ext.rake +7 -68
- data/rakelib/ext.rb +13 -13
- data/rakelib/ext_r2tao.rb +11 -54
- data/rakelib/gem.rake +40 -24
- data/rakelib/gem.rb +6 -6
- data/rakelib/package.rake +1 -1
- data/test/BiDirectional/client.rb +17 -17
- data/test/BiDirectional/run_test.rb +11 -11
- data/test/BiDirectional/server.rb +24 -25
- data/test/CORBA_Services/Naming/BindingIterator/client.rb +17 -17
- data/test/CORBA_Services/Naming/BindingIterator/run_test.rb +13 -13
- data/test/CORBA_Services/Naming/BindingIterator/server.rb +19 -19
- data/test/CORBA_Services/Naming/Corbaname/client.rb +15 -15
- data/test/CORBA_Services/Naming/Corbaname/run_test.rb +13 -13
- data/test/CORBA_Services/Naming/Corbaname/server.rb +30 -30
- data/test/CORBA_Services/Naming/Simple/client.rb +16 -16
- data/test/CORBA_Services/Naming/Simple/run_test.rb +13 -13
- data/test/CORBA_Services/Naming/Simple/server.rb +19 -19
- data/test/Collocation/run_test.rb +10 -10
- data/test/Collocation/test.rb +27 -20
- data/test/Connect_Timeout/client.rb +16 -17
- data/test/Connect_Timeout/run_test.rb +10 -10
- data/test/DII/client.rb +30 -30
- data/test/DII/run_test.rb +11 -11
- data/test/DII/server.rb +16 -16
- data/test/DSI/client.rb +16 -16
- data/test/DSI/run_test.rb +11 -11
- data/test/DSI/server.rb +17 -17
- data/test/Exceptions/client.rb +21 -21
- data/test/Exceptions/run_test.rb +11 -11
- data/test/Exceptions/server.rb +16 -16
- data/test/Hello/client.rb +16 -16
- data/test/Hello/run_test.rb +11 -11
- data/test/Hello/server.rb +17 -17
- data/test/IDL_Test/client.rb +21 -21
- data/test/IDL_Test/run_test.rb +11 -11
- data/test/IDL_Test/server.rb +19 -19
- data/test/IORMap/client.rb +14 -14
- data/test/IORMap/run_test.rb +11 -11
- data/test/IORMap/server.rb +26 -26
- data/test/IORTable/client.rb +14 -14
- data/test/IORTable/run_test.rb +11 -11
- data/test/IORTable/server.rb +26 -26
- data/test/Implicit_Conversion/client.rb +20 -17
- data/test/Implicit_Conversion/run_test.rb +11 -11
- data/test/Implicit_Conversion/server.rb +16 -16
- data/test/Multi_Threading/Multiple_ORB/client.rb +14 -14
- data/test/Multi_Threading/Multiple_ORB/run_test.rb +12 -12
- data/test/Multi_Threading/Multiple_ORB/server.rb +17 -17
- data/test/Multi_Threading/Simple/client.rb +17 -17
- data/test/Multi_Threading/Simple/run_test.rb +11 -11
- data/test/Multi_Threading/Simple/server.rb +16 -16
- data/test/Multi_Threading/Threads/client.rb +16 -16
- data/test/Multi_Threading/Threads/run_test.rb +11 -11
- data/test/Multi_Threading/Threads/server.rb +22 -22
- data/test/Multi_Threading/Threads/watchdog.rb +16 -16
- data/test/Multiple_Servant_Interfaces/client.rb +14 -14
- data/test/Multiple_Servant_Interfaces/run_test.rb +11 -11
- data/test/Multiple_Servant_Interfaces/server.rb +18 -18
- data/test/Nil/run_test.rb +10 -10
- data/test/Nil/test.rb +22 -19
- data/test/OBV/AbstractInterface/client.rb +14 -14
- data/test/OBV/AbstractInterface/run_test.rb +11 -11
- data/test/OBV/AbstractInterface/server.rb +20 -19
- data/test/OBV/Custom/OBV_impl.rb +2 -0
- data/test/OBV/Custom/client.rb +14 -14
- data/test/OBV/Custom/run_test.rb +11 -11
- data/test/OBV/Custom/server.rb +16 -16
- data/test/OBV/Simple/OBV_impl.rb +1 -0
- data/test/OBV/Simple/client.rb +14 -14
- data/test/OBV/Simple/run_test.rb +11 -11
- data/test/OBV/Simple/server.rb +16 -16
- data/test/OBV/Simple_Event/Event_impl.rb +1 -0
- data/test/OBV/Simple_Event/client.rb +14 -14
- data/test/OBV/Simple_Event/run_test.rb +11 -11
- data/test/OBV/Simple_Event/server.rb +16 -16
- data/test/OBV/Supports/client.rb +19 -19
- data/test/OBV/Supports/run_test.rb +11 -11
- data/test/OBV/Supports/server.rb +15 -15
- data/test/OBV/Supports/supports_impl.rb +3 -0
- data/test/OBV/Tree/client.rb +14 -14
- data/test/OBV/Tree/run_test.rb +11 -11
- data/test/OBV/Tree/server.rb +19 -19
- data/test/OBV/Truncatable/Truncatable_impl.rb +1 -1
- data/test/OBV/Truncatable/client.rb +57 -57
- data/test/OBV/Truncatable/run_test.rb +11 -11
- data/test/OBV/Truncatable/server.rb +15 -15
- data/test/OBV/ValueBox/client.rb +154 -153
- data/test/OBV/ValueBox/run_test.rb +11 -11
- data/test/OBV/ValueBox/server.rb +42 -42
- data/test/Object/client.rb +15 -15
- data/test/Object/run_test.rb +11 -11
- data/test/Object/server.rb +19 -19
- data/test/POA/run_test.rb +10 -10
- data/test/POA/test.rb +16 -16
- data/test/Param_Test/client.rb +51 -51
- data/test/Param_Test/run_test.rb +11 -11
- data/test/Param_Test/server.rb +59 -59
- data/test/Performance/Simple/client.rb +16 -16
- data/test/Performance/Simple/run_test.rb +11 -11
- data/test/Performance/Simple/server.rb +16 -16
- data/test/Policies/run_test.rb +10 -10
- data/test/Policies/test.rb +23 -24
- data/test/Timeout/client.rb +21 -21
- data/test/Timeout/run_test.rb +11 -11
- data/test/Timeout/server.rb +22 -22
- data/test/lib/assert.rb +0 -1
- data/test/lib/test.rb +27 -22
- data/test/test_runner.rb +20 -21
- metadata +11 -13
- data/ext/extload/extload.c +0 -60
- data/ext/librpoa/srvreq_fix.cpp +0 -282
- data/ext/librpoa/srvreq_fix.h +0 -148
data/ext/libr2tao/orb.cpp
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
#include "ace/Reactor.h"
|
21
21
|
#include "ace/Signal.h"
|
22
22
|
#include "ace/Sig_Handler.h"
|
23
|
-
#include
|
23
|
+
#include <memory>
|
24
24
|
|
25
25
|
#define RUBY_INVOKE_FUNC RUBY_ALLOC_FUNC
|
26
26
|
|
@@ -61,8 +61,8 @@ public:
|
|
61
61
|
virtual ~R2CSigGuard();
|
62
62
|
|
63
63
|
virtual int handle_signal (int signum,
|
64
|
-
siginfo_t * =
|
65
|
-
ucontext_t * =
|
64
|
+
siginfo_t * = nullptr,
|
65
|
+
ucontext_t * = nullptr);
|
66
66
|
|
67
67
|
bool has_caught_signal () { return this->m_signal_caught; }
|
68
68
|
|
@@ -71,9 +71,9 @@ private:
|
|
71
71
|
{
|
72
72
|
public:
|
73
73
|
Signal(int signum) : m_signum (signum) {}
|
74
|
-
|
74
|
+
~Signal() override = default;
|
75
75
|
|
76
|
-
|
76
|
+
int handle_exception (ACE_HANDLE fd = ACE_INVALID_HANDLE) override;
|
77
77
|
|
78
78
|
private:
|
79
79
|
int inner_handler ();
|
@@ -85,7 +85,7 @@ private:
|
|
85
85
|
|
86
86
|
static VALUE c_signums;
|
87
87
|
static int c_nsig;
|
88
|
-
static ACE_Auto_Ptr<ACE_SIGACTION>
|
88
|
+
static ACE_Auto_Ptr<ACE_SIGACTION> c_sa;
|
89
89
|
|
90
90
|
static void init_ ();
|
91
91
|
|
@@ -103,7 +103,7 @@ public:
|
|
103
103
|
};
|
104
104
|
|
105
105
|
#if defined (WIN32)
|
106
|
-
R2CSigGuard* R2CSigGuard::c_sig_guard =
|
106
|
+
R2CSigGuard* R2CSigGuard::c_sig_guard = nullptr;
|
107
107
|
|
108
108
|
BOOL WINAPI CtrlHandlerRoutine (DWORD /*dwCtrlType*/)
|
109
109
|
{
|
@@ -124,11 +124,8 @@ _orb_free(void *ptr)
|
|
124
124
|
R2TAO_EXPORT VALUE
|
125
125
|
r2tao_ORB_t2r(CORBA::ORB_ptr obj)
|
126
126
|
{
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
_orb = CORBA::ORB::_duplicate(obj);
|
131
|
-
ret = Data_Wrap_Struct(r2tao_cORB, 0, _orb_free, _orb);
|
127
|
+
CORBA::ORB_ptr _orb = CORBA::ORB::_duplicate(obj);
|
128
|
+
VALUE ret = Data_Wrap_Struct(r2tao_cORB, 0, _orb_free, _orb);
|
132
129
|
|
133
130
|
return ret;
|
134
131
|
}
|
@@ -222,11 +219,9 @@ VALUE r2tao_ORB_hash(VALUE self)
|
|
222
219
|
static
|
223
220
|
VALUE r2tao_ORB_eql(VALUE self, VALUE _other)
|
224
221
|
{
|
225
|
-
CORBA::ORB_ptr
|
226
|
-
|
227
|
-
obj = r2tao_ORB_r2t (self);
|
222
|
+
CORBA::ORB_ptr obj = r2tao_ORB_r2t (self);
|
228
223
|
r2tao_check_type (_other, r2tao_cORB);
|
229
|
-
other = r2tao_ORB_r2t (_other);
|
224
|
+
CORBA::ORB_ptr other = r2tao_ORB_r2t (_other);
|
230
225
|
|
231
226
|
if (obj == other)
|
232
227
|
return Qtrue;
|
@@ -242,7 +237,7 @@ VALUE rCORBA_ORB_init(int _argc, VALUE *_argv, VALUE /*klass*/) {
|
|
242
237
|
char **argv;
|
243
238
|
int i;
|
244
239
|
CORBA::ORB_var orb;
|
245
|
-
|
240
|
+
std::unique_ptr<char*> argv_safe;
|
246
241
|
|
247
242
|
rb_scan_args(_argc, _argv, "02", &v0, &v1);
|
248
243
|
|
@@ -306,12 +301,10 @@ VALUE rCORBA_ORB_init(int _argc, VALUE *_argv, VALUE /*klass*/) {
|
|
306
301
|
static
|
307
302
|
VALUE rCORBA_ORB_object_to_string(VALUE self, VALUE _obj)
|
308
303
|
{
|
309
|
-
|
310
|
-
char *str=0;
|
311
|
-
CORBA::ORB_ptr orb;
|
304
|
+
char *str = nullptr;
|
312
305
|
|
313
|
-
orb = r2tao_ORB_r2t (self);
|
314
|
-
obj = r2tao_Object_r2t (_obj);
|
306
|
+
CORBA::ORB_ptr orb = r2tao_ORB_r2t (self);
|
307
|
+
CORBA::Object_ptr obj = r2tao_Object_r2t (_obj);
|
315
308
|
|
316
309
|
if (obj->_is_local ())
|
317
310
|
{
|
@@ -331,10 +324,9 @@ static
|
|
331
324
|
VALUE rCORBA_ORB_string_to_object(VALUE self, VALUE _str)
|
332
325
|
{
|
333
326
|
CORBA::Object_var obj;
|
334
|
-
char *str=
|
335
|
-
CORBA::ORB_ptr orb;
|
327
|
+
char *str = nullptr;
|
336
328
|
|
337
|
-
orb = r2tao_ORB_r2t (self);
|
329
|
+
CORBA::ORB_ptr orb = r2tao_ORB_r2t (self);
|
338
330
|
Check_Type(_str, T_STRING);
|
339
331
|
str = RSTRING_PTR (_str);
|
340
332
|
|
@@ -364,12 +356,8 @@ VALUE rCORBA_ORB_get_current(VALUE /*self*/)
|
|
364
356
|
static
|
365
357
|
VALUE rCORBA_ORB_list_initial_services(VALUE self)
|
366
358
|
{
|
367
|
-
CORBA::ULong i;
|
368
|
-
VALUE ary;
|
369
359
|
CORBA::ORB::ObjectIdList_var list;
|
370
|
-
CORBA::ORB_ptr orb;
|
371
|
-
|
372
|
-
orb = r2tao_ORB_r2t (self);
|
360
|
+
CORBA::ORB_ptr orb = r2tao_ORB_r2t (self);
|
373
361
|
|
374
362
|
R2TAO_TRY
|
375
363
|
{
|
@@ -377,8 +365,8 @@ VALUE rCORBA_ORB_list_initial_services(VALUE self)
|
|
377
365
|
}
|
378
366
|
R2TAO_CATCH;
|
379
367
|
|
380
|
-
ary = rb_ary_new2(list->length ());
|
381
|
-
for (i=0; i<list->length (); i++)
|
368
|
+
VALUE ary = rb_ary_new2(list->length ());
|
369
|
+
for (CORBA::ULong i = 0; i < list->length (); i++)
|
382
370
|
{
|
383
371
|
char const * id = list[i];
|
384
372
|
rb_ary_push (ary, rb_str_new2 (id));
|
@@ -391,13 +379,10 @@ static
|
|
391
379
|
VALUE rCORBA_ORB_resolve_initial_references(VALUE self, VALUE _id)
|
392
380
|
{
|
393
381
|
CORBA::Object_var obj;
|
394
|
-
|
395
|
-
CORBA::ORB_ptr orb;
|
396
|
-
|
397
|
-
orb = r2tao_ORB_r2t (self);
|
382
|
+
CORBA::ORB_ptr orb = r2tao_ORB_r2t (self);
|
398
383
|
|
399
384
|
Check_Type(_id, T_STRING);
|
400
|
-
id = RSTRING_PTR (_id);
|
385
|
+
char *id = RSTRING_PTR (_id);
|
401
386
|
|
402
387
|
R2TAO_TRY
|
403
388
|
{
|
@@ -418,15 +403,11 @@ VALUE rCORBA_ORB_resolve_initial_references(VALUE self, VALUE _id)
|
|
418
403
|
static
|
419
404
|
VALUE rCORBA_ORB_register_initial_reference(VALUE self, VALUE _id, VALUE _obj)
|
420
405
|
{
|
421
|
-
CORBA::
|
422
|
-
char *id;
|
423
|
-
CORBA::ORB_ptr orb;
|
424
|
-
|
425
|
-
orb = r2tao_ORB_r2t (self);
|
406
|
+
CORBA::ORB_ptr orb = r2tao_ORB_r2t (self);
|
426
407
|
|
427
408
|
Check_Type(_id, T_STRING);
|
428
|
-
id = RSTRING_PTR (_id);
|
429
|
-
obj = r2tao_Object_r2t(_obj);
|
409
|
+
char *id = RSTRING_PTR (_id);
|
410
|
+
CORBA::Object_var obj = r2tao_Object_r2t(_obj);
|
430
411
|
|
431
412
|
R2TAO_TRY
|
432
413
|
{
|
@@ -448,16 +429,11 @@ class R2TAO_ORB_BlockedRegionCaller
|
|
448
429
|
{
|
449
430
|
public:
|
450
431
|
R2TAO_ORB_BlockedRegionCaller (CORBA::ORB_ptr orb)
|
451
|
-
: orb_ (orb)
|
452
|
-
timeout_ (0),
|
453
|
-
exception_ (false),
|
454
|
-
corba_ex_ (0) {}
|
432
|
+
: orb_ (orb) {}
|
455
433
|
R2TAO_ORB_BlockedRegionCaller (CORBA::ORB_ptr orb, ACE_Time_Value& to)
|
456
434
|
: orb_ (orb),
|
457
|
-
timeout_ (
|
458
|
-
|
459
|
-
corba_ex_ (0) {}
|
460
|
-
virtual ~R2TAO_ORB_BlockedRegionCaller () R2CORBA_NO_EXCEPT_FALSE;
|
435
|
+
timeout_ (std::addressof(to)) {}
|
436
|
+
virtual ~R2TAO_ORB_BlockedRegionCaller () noexcept(false);
|
461
437
|
|
462
438
|
VALUE call (bool with_unblock=true);
|
463
439
|
|
@@ -472,18 +448,18 @@ protected:
|
|
472
448
|
virtual VALUE do_exec () = 0;
|
473
449
|
|
474
450
|
CORBA::ORB_ptr orb_;
|
475
|
-
ACE_Time_Value* timeout_;
|
476
|
-
bool exception_;
|
477
|
-
CORBA::Exception* corba_ex_;
|
451
|
+
ACE_Time_Value* timeout_ {};
|
452
|
+
bool exception_ {};
|
453
|
+
CORBA::Exception* corba_ex_ {};
|
478
454
|
};
|
479
455
|
|
480
|
-
R2TAO_ORB_BlockedRegionCaller::~R2TAO_ORB_BlockedRegionCaller()
|
456
|
+
R2TAO_ORB_BlockedRegionCaller::~R2TAO_ORB_BlockedRegionCaller() noexcept(false)
|
481
457
|
{
|
482
458
|
if (this->exception_)
|
483
459
|
{
|
484
460
|
if (corba_ex_)
|
485
461
|
{
|
486
|
-
|
462
|
+
std::unique_ptr<CORBA::Exception> e_ptr(corba_ex_);
|
487
463
|
corba_ex_->_raise ();
|
488
464
|
}
|
489
465
|
else
|
@@ -546,10 +522,10 @@ public:
|
|
546
522
|
: R2TAO_ORB_BlockedRegionCaller (orb) {}
|
547
523
|
R2TAO_ORB_BlockedRun (CORBA::ORB_ptr orb, ACE_Time_Value& to)
|
548
524
|
: R2TAO_ORB_BlockedRegionCaller (orb, to) {}
|
549
|
-
|
525
|
+
~R2TAO_ORB_BlockedRun () override = default;
|
550
526
|
|
551
527
|
protected:
|
552
|
-
|
528
|
+
VALUE do_exec () override;
|
553
529
|
};
|
554
530
|
|
555
531
|
VALUE R2TAO_ORB_BlockedRun::do_exec ()
|
@@ -568,16 +544,16 @@ public:
|
|
568
544
|
: R2TAO_ORB_BlockedRegionCaller (orb), sg_(sg) {}
|
569
545
|
R2TAO_ORB_BlockedWorkPending (R2CSigGuard& sg, CORBA::ORB_ptr orb, ACE_Time_Value& to)
|
570
546
|
: R2TAO_ORB_BlockedRegionCaller (orb, to), sg_(sg) {}
|
571
|
-
virtual ~R2TAO_ORB_BlockedWorkPending ()
|
547
|
+
virtual ~R2TAO_ORB_BlockedWorkPending () noexcept(false);
|
572
548
|
|
573
549
|
protected:
|
574
|
-
|
550
|
+
VALUE do_exec () override;
|
575
551
|
|
576
552
|
private:
|
577
553
|
R2CSigGuard& sg_;
|
578
554
|
};
|
579
555
|
|
580
|
-
R2TAO_ORB_BlockedWorkPending::~R2TAO_ORB_BlockedWorkPending()
|
556
|
+
R2TAO_ORB_BlockedWorkPending::~R2TAO_ORB_BlockedWorkPending() noexcept(false)
|
581
557
|
{
|
582
558
|
if (this->exception_)
|
583
559
|
{
|
@@ -585,7 +561,7 @@ R2TAO_ORB_BlockedWorkPending::~R2TAO_ORB_BlockedWorkPending() R2CORBA_NO_EXCEPT_
|
|
585
561
|
try {
|
586
562
|
if (corba_ex_)
|
587
563
|
{
|
588
|
-
|
564
|
+
std::unique_ptr<CORBA::Exception> e_ptr(corba_ex_);
|
589
565
|
corba_ex_->_raise ();
|
590
566
|
}
|
591
567
|
else
|
@@ -623,10 +599,10 @@ public:
|
|
623
599
|
: R2TAO_ORB_BlockedRegionCaller (orb) {}
|
624
600
|
R2TAO_ORB_BlockedPerformWork (CORBA::ORB_ptr orb, ACE_Time_Value& to)
|
625
601
|
: R2TAO_ORB_BlockedRegionCaller (orb, to) {}
|
626
|
-
|
602
|
+
~R2TAO_ORB_BlockedPerformWork () override = default;
|
627
603
|
|
628
604
|
protected:
|
629
|
-
|
605
|
+
VALUE do_exec () override;
|
630
606
|
};
|
631
607
|
|
632
608
|
VALUE R2TAO_ORB_BlockedPerformWork::do_exec ()
|
@@ -641,10 +617,10 @@ VALUE R2TAO_ORB_BlockedPerformWork::do_exec ()
|
|
641
617
|
class R2TAO_ORB_BlockedShutdown : public R2TAO_ORB_BlockedRegionCaller
|
642
618
|
{
|
643
619
|
public:
|
644
|
-
R2TAO_ORB_BlockedShutdown (CORBA::ORB_ptr orb, bool wait=false)
|
620
|
+
R2TAO_ORB_BlockedShutdown (CORBA::ORB_ptr orb, bool wait = false)
|
645
621
|
: R2TAO_ORB_BlockedRegionCaller (orb),
|
646
622
|
wait_ (wait) {}
|
647
|
-
|
623
|
+
~R2TAO_ORB_BlockedShutdown () override = default;
|
648
624
|
|
649
625
|
protected:
|
650
626
|
virtual VALUE do_exec ();
|
@@ -662,7 +638,6 @@ VALUE R2TAO_ORB_BlockedShutdown::do_exec ()
|
|
662
638
|
static
|
663
639
|
VALUE rCORBA_ORB_run(int _argc, VALUE *_argv, VALUE self)
|
664
640
|
{
|
665
|
-
CORBA::ORB_ptr orb;
|
666
641
|
VALUE rtimeout = Qnil;
|
667
642
|
ACE_Time_Value timeout;
|
668
643
|
double tmleft=0.0;
|
@@ -682,7 +657,7 @@ VALUE rCORBA_ORB_run(int _argc, VALUE *_argv, VALUE self)
|
|
682
657
|
// convert to ACE_Time_Value
|
683
658
|
}
|
684
659
|
|
685
|
-
orb = r2tao_ORB_r2t (self);
|
660
|
+
CORBA::ORB_ptr orb = r2tao_ORB_r2t (self);
|
686
661
|
|
687
662
|
R2TAO_TRY
|
688
663
|
{
|
@@ -715,7 +690,6 @@ VALUE rCORBA_ORB_run(int _argc, VALUE *_argv, VALUE self)
|
|
715
690
|
static
|
716
691
|
VALUE rCORBA_ORB_work_pending(int _argc, VALUE *_argv, VALUE self)
|
717
692
|
{
|
718
|
-
CORBA::ORB_ptr orb;
|
719
693
|
VALUE rtimeout = Qnil;
|
720
694
|
ACE_Time_Value timeout;
|
721
695
|
double tmleft=0.0;
|
@@ -735,7 +709,7 @@ VALUE rCORBA_ORB_work_pending(int _argc, VALUE *_argv, VALUE self)
|
|
735
709
|
// convert to ACE_Time_Value
|
736
710
|
}
|
737
711
|
|
738
|
-
orb = r2tao_ORB_r2t (self);
|
712
|
+
CORBA::ORB_ptr orb = r2tao_ORB_r2t (self);
|
739
713
|
|
740
714
|
VALUE _rc = Qfalse;
|
741
715
|
|
@@ -858,8 +832,7 @@ VALUE rCORBA_ORB_shutdown(int _argc, VALUE *_argv, VALUE self)
|
|
858
832
|
static
|
859
833
|
VALUE rCORBA_ORB_destroy(VALUE self)
|
860
834
|
{
|
861
|
-
CORBA::ORB_ptr orb;
|
862
|
-
orb = r2tao_ORB_r2t (self);
|
835
|
+
CORBA::ORB_ptr orb = r2tao_ORB_r2t (self);
|
863
836
|
R2TAO_TRY
|
864
837
|
{
|
865
838
|
orb->destroy ();
|
data/ext/libr2tao/r2tao_export.h
CHANGED
data/ext/libr2tao/r2tao_ext.h
CHANGED
@@ -12,25 +12,14 @@
|
|
12
12
|
#ifndef __R2TAO_EXT_H
|
13
13
|
#define __R2TAO_EXT_H
|
14
14
|
|
15
|
-
#
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
#define _MSC_VER OLD_MSC_VER
|
24
|
-
#endif
|
25
|
-
|
26
|
-
#include <ace/pre.h>
|
27
|
-
|
28
|
-
#include <ace/config-all.h>
|
29
|
-
|
30
|
-
#include <ace/post.h>
|
31
|
-
|
32
|
-
#if defined (__cplusplus)
|
33
|
-
extern "C" {
|
15
|
+
#include <ace/config-lite.h>
|
16
|
+
#if defined (WIN32) || defined (_MSC_VER) || defined (__MINGW32__)
|
17
|
+
// Ruby ships its own msghdr
|
18
|
+
# undef ACE_LACKS_MSGHDR
|
19
|
+
// Ruby ships its own iovec
|
20
|
+
# undef ACE_LACKS_IOVEC
|
21
|
+
// Resolve conflict between mingw and ruby gettimeofday
|
22
|
+
# define ACE_LACKS_SYS_TIME_H
|
34
23
|
#endif
|
35
24
|
|
36
25
|
#endif
|
data/ext/libr2tao/required.cpp
CHANGED
@@ -17,10 +17,10 @@
|
|
17
17
|
#include "ace/Null_Mutex.h"
|
18
18
|
#include "ace/Singleton.h"
|
19
19
|
#include "ace/TSS_T.h"
|
20
|
-
#include "ace/Auto_Ptr.h"
|
21
20
|
#include "tao/AnyTypeCode/Any.h"
|
22
21
|
#include "tao/DynamicInterface/Unknown_User_Exception.h"
|
23
22
|
#include "tao/debug.h"
|
23
|
+
#include <memory>
|
24
24
|
|
25
25
|
#define RUBY_INVOKE_FUNC RUBY_ALLOC_FUNC
|
26
26
|
|
@@ -113,7 +113,6 @@ private:
|
|
113
113
|
objreg->clear_registry ();
|
114
114
|
}
|
115
115
|
}
|
116
|
-
|
117
116
|
};
|
118
117
|
|
119
118
|
VALUE R2TAO_ObjectRegistry::registry_anchor_ = Qnil;
|
@@ -145,7 +144,7 @@ extern "C" R2TAO_EXPORT void Init_libr2tao()
|
|
145
144
|
VALUE klass = rb_define_module_under (rb_eval_string ("::R2CORBA"), "TAO");
|
146
145
|
rb_define_const (klass, "MAJOR_VERSION", INT2NUM (TAO_MAJOR_VERSION));
|
147
146
|
rb_define_const (klass, "MINOR_VERSION", INT2NUM (TAO_MINOR_VERSION));
|
148
|
-
rb_define_const (klass, "
|
147
|
+
rb_define_const (klass, "MICRO_VERSION", INT2NUM (TAO_MICRO_VERSION));
|
149
148
|
rb_define_const (klass, "VERSION", rb_str_new2 (TAO_VERSION));
|
150
149
|
rb_define_const (klass, "RUBY_THREAD_SUPPORT",
|
151
150
|
#ifdef R2TAO_THREAD_SAFE
|
@@ -204,7 +203,6 @@ R2TAO_EXPORT void r2tao_unregister_object(VALUE rbobj)
|
|
204
203
|
}
|
205
204
|
|
206
205
|
#if defined (R2TAO_THREAD_SAFE)
|
207
|
-
|
208
206
|
class R2TAO_GVLGuard
|
209
207
|
{
|
210
208
|
public:
|
@@ -232,7 +230,7 @@ private:
|
|
232
230
|
~TSSManager ()
|
233
231
|
{
|
234
232
|
delete gvl_indicator_;
|
235
|
-
gvl_indicator_ =
|
233
|
+
gvl_indicator_ = nullptr;
|
236
234
|
}
|
237
235
|
|
238
236
|
static void set_indicator (bool val)
|
@@ -279,21 +277,12 @@ void* r2tao_call_with_gvl (void *data)
|
|
279
277
|
return (*arg.func_) (arg.data_);
|
280
278
|
}
|
281
279
|
|
282
|
-
# if RUBY_VER_MAJOR < 2
|
283
|
-
VALUE r2tao_call_without_gvl (void *data)
|
284
|
-
{
|
285
|
-
R2TAO_GVLGuard gvl_guard_ (false);
|
286
|
-
r2tao_gvl_call_arg<VALUE(*)(void*)>& arg = *reinterpret_cast<r2tao_gvl_call_arg<VALUE(*)(void*)>*> (data);
|
287
|
-
return (*arg.func_) (arg.data_);
|
288
|
-
}
|
289
|
-
# else
|
290
280
|
void* r2tao_call_without_gvl (void *data)
|
291
281
|
{
|
292
282
|
R2TAO_GVLGuard gvl_guard_ (false);
|
293
283
|
r2tao_gvl_call_arg<void*(*)(void*)>& arg = *reinterpret_cast<r2tao_gvl_call_arg<void*(*)(void*)>*> (data);
|
294
284
|
return (*arg.func_) (arg.data_);
|
295
285
|
}
|
296
|
-
# endif
|
297
286
|
#endif
|
298
287
|
|
299
288
|
R2TAO_EXPORT void* r2tao_call_thread_safe (void *(*func)(void *), void *data)
|
@@ -314,12 +303,8 @@ R2TAO_EXPORT VALUE r2tao_blocking_call (VALUE (*func)(void*), void*data)
|
|
314
303
|
if (R2TAO_GVLGuard::gvl_locked (true))
|
315
304
|
{
|
316
305
|
r2tao_gvl_call_arg<VALUE(*)(void*)> arg(func, data);
|
317
|
-
# if RUBY_VER_MAJOR < 2
|
318
|
-
return rb_thread_call_without_gvl(r2tao_call_without_gvl, &arg, RUBY_UBF_IO, 0);
|
319
|
-
# else
|
320
306
|
void *rc = rb_thread_call_without_gvl(r2tao_call_without_gvl, &arg, RUBY_UBF_IO, 0);
|
321
307
|
return reinterpret_cast<VALUE> (rc);
|
322
|
-
# endif
|
323
308
|
}
|
324
309
|
#endif
|
325
310
|
return (*func) (data);
|
@@ -332,14 +317,9 @@ R2TAO_EXPORT VALUE r2tao_blocking_call_ex (VALUE (*func)(void*), void*data,
|
|
332
317
|
if (R2TAO_GVLGuard::gvl_locked (true))
|
333
318
|
{
|
334
319
|
r2tao_gvl_call_arg<VALUE(*)(void*)> arg(func, data);
|
335
|
-
# if RUBY_VER_MAJOR < 2
|
336
|
-
return rb_thread_call_without_gvl(r2tao_call_without_gvl, &arg,
|
337
|
-
unblock_func, unblock_data);
|
338
|
-
# else
|
339
320
|
void *rc = rb_thread_call_without_gvl(r2tao_call_without_gvl, &arg,
|
340
321
|
unblock_func, unblock_data);
|
341
322
|
return reinterpret_cast<VALUE> (rc);
|
342
|
-
# endif
|
343
323
|
}
|
344
324
|
#else
|
345
325
|
ACE_UNUSED_ARG(unblock_func);
|
@@ -362,10 +342,6 @@ R2TAO_RBFuncall::R2TAO_RBFuncall (const char* fn, bool throw_on_ex)
|
|
362
342
|
{
|
363
343
|
}
|
364
344
|
|
365
|
-
R2TAO_RBFuncall::~R2TAO_RBFuncall ()
|
366
|
-
{
|
367
|
-
}
|
368
|
-
|
369
345
|
VALUE R2TAO_RBFuncall::invoke (VALUE rcvr, VALUE args)
|
370
346
|
{
|
371
347
|
return this->_invoke (FuncArgArray (rcvr, args));
|
@@ -420,7 +396,7 @@ VALUE R2TAO_RBFuncall::_invoke (const FuncArgs& fa)
|
|
420
396
|
_exc->completed (
|
421
397
|
static_cast<CORBA::CompletionStatus> (NUM2ULONG (rb_iv_get (rexc, "@completed"))));
|
422
398
|
|
423
|
-
|
399
|
+
std::unique_ptr<CORBA::SystemException> e_ptr(_exc);
|
424
400
|
_exc->_raise ();
|
425
401
|
}
|
426
402
|
else
|