DrQueueRubyBindings 0.4.1 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/ext/extconf.rb +7 -7
  2. data/ext/libdrqueue_ruby.i +13 -6
  3. metadata +3 -3
@@ -29,7 +29,7 @@ elsif RUBY_PLATFORM =~ /irix6/i
29
29
  end
30
30
 
31
31
  if File.directory? "drqueue"
32
- Dir::chdir 'drqueue'
32
+ Dir::chdir 'drqueue/src'
33
33
  # try to do a Git pull
34
34
  if xsystem('git pull') == false
35
35
  puts 'Git pull failed'
@@ -41,7 +41,7 @@ else
41
41
  puts 'Git clone failed'
42
42
  exit 1
43
43
  end
44
- Dir::chdir 'drqueue'
44
+ Dir::chdir 'drqueue/src'
45
45
  end
46
46
 
47
47
  # try to build libdrqueue
@@ -49,22 +49,22 @@ if xsystem('scons universal_binary=true build_drqman=false libdrqueue') == false
49
49
  puts 'libdrqueue build failed'
50
50
  exit 1
51
51
  end
52
- Dir::chdir '..'
52
+ Dir::chdir '../..'
53
53
 
54
54
  # create swig wrapper
55
55
  puts 'generating swig interface file'
56
- puts 'swig -ruby -Idrqueue/ -Idrqueue/libdrqueue -D'+rb_os+' -Wall -autorename libdrqueue_ruby.i'
57
- xsystem('swig -ruby -Idrqueue/ -Idrqueue/libdrqueue -D'+rb_os+' -Wall -autorename libdrqueue_ruby.i')
56
+ puts 'swig -ruby -Idrqueue/src/ -Idrqueue/src/libdrqueue -D'+rb_os+' -Wall -autorename libdrqueue_ruby.i'
57
+ xsystem('swig -ruby -Idrqueue/src/ -Idrqueue/src/libdrqueue -D'+rb_os+' -Wall -autorename libdrqueue_ruby.i')
58
58
  puts 'look for output in mkmf.log'
59
59
 
60
60
  # build for os
61
61
  $CFLAGS += ' -D'+rb_os
62
62
 
63
63
  # include the headers
64
- $CFLAGS += ' -Idrqueue/ -Idrqueue/libdrqueue'
64
+ $CFLAGS += ' -Idrqueue/src/ -Idrqueue/src/libdrqueue'
65
65
 
66
66
  # path to the drqueue lib
67
- $LOCAL_LIBS += 'drqueue/libdrqueue/libdrqueue.a'
67
+ $LOCAL_LIBS += 'drqueue/src/libdrqueue/libdrqueue.a'
68
68
 
69
69
  # create the makefile
70
70
  create_makefile('drqueue')
@@ -34,7 +34,7 @@ slaves. Also provides access to all data structures of DrQueue."
34
34
 
35
35
 
36
36
  // Tell SWIG to keep track of mappings between C/C++ structs/classes
37
- //%trackobjects;
37
+ %trackobjects;
38
38
 
39
39
 
40
40
  %include "typemaps.i"
@@ -127,10 +127,11 @@ typedef unsigned char uint8_t;
127
127
  // these methods generate new objects
128
128
  %newobject *::request_job_list;
129
129
  %newobject *::request_computer_list;
130
-
130
+ %newobject *::request_job_xfer;
131
131
 
132
132
  // JOB
133
133
  %extend job {
134
+ %newobject job;
134
135
  job ()
135
136
  {
136
137
  struct job *j;
@@ -145,6 +146,7 @@ typedef unsigned char uint8_t;
145
146
 
146
147
  ~job ()
147
148
  {
149
+ SWIG_RubyRemoveTracking(self);
148
150
  job_init(self);
149
151
  //free (self);
150
152
  job_frame_info_free (self);
@@ -175,6 +177,7 @@ typedef unsigned char uint8_t;
175
177
  return variable->value;
176
178
  }
177
179
 
180
+ %newobject request_frame_list;
178
181
  VALUE request_frame_list (int who)
179
182
  {
180
183
  VALUE l = rb_ary_new();
@@ -516,6 +519,7 @@ typedef unsigned char uint8_t;
516
519
  return (VALUE)NULL;
517
520
  }
518
521
  }
522
+
519
523
  %newobject get_pool;
520
524
  struct pool *get_pool (int n)
521
525
  {
@@ -601,6 +605,7 @@ typedef unsigned char uint8_t;
601
605
 
602
606
  // struct pool
603
607
  %extend pool {
608
+ %newobject pool;
604
609
  pool (char *name)
605
610
  {
606
611
  struct pool *p;
@@ -616,14 +621,15 @@ typedef unsigned char uint8_t;
616
621
 
617
622
  ~pool ()
618
623
  {
619
- //free (self);
620
- computer_pool_free (self);
624
+ free (self);
625
+ //computer_pool_free (self);
621
626
  }
622
627
  }
623
628
 
624
629
 
625
630
  // COMPUTER
626
631
  %extend computer {
632
+ %newobject computer;
627
633
  computer ()
628
634
  {
629
635
  struct computer *c;
@@ -642,15 +648,16 @@ typedef unsigned char uint8_t;
642
648
  computer_free (self);
643
649
  }
644
650
 
651
+ %newobject list_pools;
645
652
  VALUE list_pools (void)
646
653
  {
647
654
  VALUE l = rb_ary_new();
648
- int npools = self->limits.npools;
655
+ int npools = self->limits.npools;
649
656
 
650
657
  if ((self->limits.pool.ptr = (struct pool *) computer_pool_attach_shared_memory(&self->limits)) == (void*)-1) {
651
658
  rb_raise(rb_eException,drerrno_str());
652
659
  return (VALUE)NULL;
653
- }
660
+ }
654
661
 
655
662
  int i;
656
663
  for (i=0;i<npools;i++) {
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: DrQueueRubyBindings
3
3
  version: !ruby/object:Gem::Version
4
- hash: 13
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 1
10
- version: 0.4.1
9
+ - 2
10
+ version: 0.4.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andreas Schroeder