rubyfb 0.5.5 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
data/ext/Restore.c CHANGED
@@ -88,39 +88,32 @@ VALUE cRestore;
88
88
  * @return A reference to the newly initialized Restore object.
89
89
  *
90
90
  */
91
- VALUE initializeRestore(VALUE self, VALUE file, VALUE database)
92
- {
93
- VALUE from = Qnil,
94
- to = rb_hash_new(),
95
- options = rb_hash_new();
96
-
97
- /* Extract the parameters. */
98
- if(TYPE(file) == T_FILE)
99
- {
100
- from = rb_funcall(file, rb_intern("path"), 0);
101
- }
102
- else
103
- {
104
- from = rb_funcall(file, rb_intern("to_s"), 0);
105
- }
106
-
107
- if(TYPE(database) == T_FILE)
108
- {
109
- to = rb_funcall(database, rb_intern("path"), 0);
110
- }
111
- else
112
- {
113
- to = rb_funcall(database, rb_intern("to_s"), 0);
114
- }
115
- rb_hash_aset(options, RESTORE_MODE, CREATE_DATABASE);
116
-
117
- /* Store the object attributes. */
118
- rb_iv_set(self, "@backup_file", from);
119
- rb_iv_set(self, "@database", to);
120
- rb_iv_set(self, "@options", options);
121
- rb_iv_set(self, "@log", Qnil);
122
-
123
- return(self);
91
+ VALUE initializeRestore(VALUE self, VALUE file, VALUE database) {
92
+ VALUE from = Qnil,
93
+ to = rb_hash_new(),
94
+ options = rb_hash_new();
95
+
96
+ /* Extract the parameters. */
97
+ if(TYPE(file) == T_FILE) {
98
+ from = rb_funcall(file, rb_intern("path"), 0);
99
+ } else {
100
+ from = rb_funcall(file, rb_intern("to_s"), 0);
101
+ }
102
+
103
+ if(TYPE(database) == T_FILE) {
104
+ to = rb_funcall(database, rb_intern("path"), 0);
105
+ } else {
106
+ to = rb_funcall(database, rb_intern("to_s"), 0);
107
+ }
108
+ rb_hash_aset(options, RESTORE_MODE, CREATE_DATABASE);
109
+
110
+ /* Store the object attributes. */
111
+ rb_iv_set(self, "@backup_file", from);
112
+ rb_iv_set(self, "@database", to);
113
+ rb_iv_set(self, "@options", options);
114
+ rb_iv_set(self, "@log", Qnil);
115
+
116
+ return(self);
124
117
  }
125
118
 
126
119
 
@@ -133,9 +126,8 @@ VALUE initializeRestore(VALUE self, VALUE file, VALUE database)
133
126
  * @return A reference to the attribute value.
134
127
  *
135
128
  */
136
- VALUE getRestoreFile(VALUE self)
137
- {
138
- return(rb_iv_get(self, "@backup_file"));
129
+ VALUE getRestoreFile(VALUE self) {
130
+ return(rb_iv_get(self, "@backup_file"));
139
131
  }
140
132
 
141
133
 
@@ -150,21 +142,17 @@ VALUE getRestoreFile(VALUE self)
150
142
  * @return A reference to the newly update Restore object.
151
143
  *
152
144
  */
153
- VALUE setRestoreFile(VALUE self, VALUE setting)
154
- {
155
- VALUE actual = Qnil;
156
-
157
- if(TYPE(setting) == T_FILE)
158
- {
159
- actual = rb_funcall(setting, rb_intern("path"), 0);
160
- }
161
- else
162
- {
163
- actual = rb_funcall(setting, rb_intern("to_s"), 0);
164
- }
165
- rb_iv_set(self, "@backup_file", actual);
166
-
167
- return(self);
145
+ VALUE setRestoreFile(VALUE self, VALUE setting) {
146
+ VALUE actual = Qnil;
147
+
148
+ if(TYPE(setting) == T_FILE) {
149
+ actual = rb_funcall(setting, rb_intern("path"), 0);
150
+ } else {
151
+ actual = rb_funcall(setting, rb_intern("to_s"), 0);
152
+ }
153
+ rb_iv_set(self, "@backup_file", actual);
154
+
155
+ return(self);
168
156
  }
169
157
 
170
158
 
@@ -177,9 +165,8 @@ VALUE setRestoreFile(VALUE self, VALUE setting)
177
165
  * @return A reference to the attribute value.
178
166
  *
179
167
  */
180
- VALUE getRestoreDatabase(VALUE self)
181
- {
182
- return(rb_iv_get(self, "@database"));
168
+ VALUE getRestoreDatabase(VALUE self) {
169
+ return(rb_iv_get(self, "@database"));
183
170
  }
184
171
 
185
172
 
@@ -194,21 +181,17 @@ VALUE getRestoreDatabase(VALUE self)
194
181
  * @return A reference to the newly update Restore object.
195
182
  *
196
183
  */
197
- VALUE setRestoreDatabase(VALUE self, VALUE setting)
198
- {
199
- VALUE actual = Qnil;
200
-
201
- if(TYPE(setting) == T_FILE)
202
- {
203
- actual = rb_funcall(setting, rb_intern("path"), 0);
204
- }
205
- else
206
- {
207
- actual = rb_funcall(setting, rb_intern("to_s"), 0);
208
- }
209
- rb_iv_set(self, "@database", actual);
210
-
211
- return(self);
184
+ VALUE setRestoreDatabase(VALUE self, VALUE setting) {
185
+ VALUE actual = Qnil;
186
+
187
+ if(TYPE(setting) == T_FILE) {
188
+ actual = rb_funcall(setting, rb_intern("path"), 0);
189
+ } else {
190
+ actual = rb_funcall(setting, rb_intern("to_s"), 0);
191
+ }
192
+ rb_iv_set(self, "@database", actual);
193
+
194
+ return(self);
212
195
  }
213
196
 
214
197
 
@@ -221,9 +204,8 @@ VALUE setRestoreDatabase(VALUE self, VALUE setting)
221
204
  * @return A reference to the current cache buffers setting.
222
205
  *
223
206
  */
224
- VALUE getRestoreCacheBuffers(VALUE self)
225
- {
226
- return(rb_hash_aref(rb_iv_get(self, "@options"), CACHE_BUFFERS));
207
+ VALUE getRestoreCacheBuffers(VALUE self) {
208
+ return(rb_hash_aref(rb_iv_get(self, "@options"), CACHE_BUFFERS));
227
209
  }
228
210
 
229
211
 
@@ -237,17 +219,15 @@ VALUE getRestoreCacheBuffers(VALUE self)
237
219
  * @return A reference to the newly updated Restore object.
238
220
  *
239
221
  */
240
- VALUE setRestoreCacheBuffers(VALUE self, VALUE setting)
241
- {
242
- if(rb_obj_is_kind_of(setting, rb_cInteger) == Qfalse)
243
- {
244
- rb_fireruby_raise(NULL,
245
- "Invalid cache buffers setting specified for database "\
246
- "restore.");
247
- }
248
- rb_hash_aset(rb_iv_get(self, "@options"), CACHE_BUFFERS, setting);
249
-
250
- return(self);
222
+ VALUE setRestoreCacheBuffers(VALUE self, VALUE setting) {
223
+ if(rb_obj_is_kind_of(setting, rb_cInteger) == Qfalse) {
224
+ rb_fireruby_raise(NULL,
225
+ "Invalid cache buffers setting specified for database " \
226
+ "restore.");
227
+ }
228
+ rb_hash_aset(rb_iv_get(self, "@options"), CACHE_BUFFERS, setting);
229
+
230
+ return(self);
251
231
  }
252
232
 
253
233
 
@@ -260,9 +240,8 @@ VALUE setRestoreCacheBuffers(VALUE self, VALUE setting)
260
240
  * @return A reference to the current cache buffers setting.
261
241
  *
262
242
  */
263
- VALUE getRestorePageSize(VALUE self)
264
- {
265
- return(rb_hash_aref(rb_iv_get(self, "@options"), PAGE_SIZE));
243
+ VALUE getRestorePageSize(VALUE self) {
244
+ return(rb_hash_aref(rb_iv_get(self, "@options"), PAGE_SIZE));
266
245
  }
267
246
 
268
247
 
@@ -276,17 +255,15 @@ VALUE getRestorePageSize(VALUE self)
276
255
  * @return A reference to the newly updated Restore object.
277
256
  *
278
257
  */
279
- VALUE setRestorePageSize(VALUE self, VALUE setting)
280
- {
281
- if(rb_obj_is_kind_of(setting, rb_cInteger) == Qfalse)
282
- {
283
- rb_fireruby_raise(NULL,
284
- "Invalid page size setting specified for database "\
285
- "restore.");
286
- }
287
- rb_hash_aset(rb_iv_get(self, "@options"), PAGE_SIZE, setting);
288
-
289
- return(self);
258
+ VALUE setRestorePageSize(VALUE self, VALUE setting) {
259
+ if(rb_obj_is_kind_of(setting, rb_cInteger) == Qfalse) {
260
+ rb_fireruby_raise(NULL,
261
+ "Invalid page size setting specified for database " \
262
+ "restore.");
263
+ }
264
+ rb_hash_aset(rb_iv_get(self, "@options"), PAGE_SIZE, setting);
265
+
266
+ return(self);
290
267
  }
291
268
 
292
269
 
@@ -299,9 +276,8 @@ VALUE setRestorePageSize(VALUE self, VALUE setting)
299
276
  * @return A reference to the current cache buffers setting.
300
277
  *
301
278
  */
302
- VALUE getRestoreAccessMode(VALUE self)
303
- {
304
- return(rb_hash_aref(rb_iv_get(self, "@options"), ACCESS_MODE));
279
+ VALUE getRestoreAccessMode(VALUE self) {
280
+ return(rb_hash_aref(rb_iv_get(self, "@options"), ACCESS_MODE));
305
281
  }
306
282
 
307
283
 
@@ -315,28 +291,25 @@ VALUE getRestoreAccessMode(VALUE self)
315
291
  * @return A reference to the newly updated Restore object.
316
292
  *
317
293
  */
318
- VALUE setRestoreAccessMode(VALUE self, VALUE setting)
319
- {
320
- int value = 0;
321
-
322
- if(rb_obj_is_kind_of(setting, rb_cInteger) == Qfalse)
323
- {
324
- rb_fireruby_raise(NULL,
325
- "Invalid access mode setting specified for database "\
326
- "restore.");
327
- }
328
-
329
- value = TYPE(setting) == T_FIXNUM ? FIX2INT(setting) : NUM2INT(setting);
330
- if(value != isc_spb_prp_am_readonly && value != isc_spb_prp_am_readwrite)
331
- {
332
- rb_fireruby_raise(NULL,
333
- "Invalid access mode value specified for database "\
334
- "restore.");
335
- }
336
-
337
- rb_hash_aset(rb_iv_get(self, "@options"), ACCESS_MODE, setting);
338
-
339
- return(self);
294
+ VALUE setRestoreAccessMode(VALUE self, VALUE setting) {
295
+ int value = 0;
296
+
297
+ if(rb_obj_is_kind_of(setting, rb_cInteger) == Qfalse) {
298
+ rb_fireruby_raise(NULL,
299
+ "Invalid access mode setting specified for database " \
300
+ "restore.");
301
+ }
302
+
303
+ value = TYPE(setting) == T_FIXNUM ? FIX2INT(setting) : NUM2INT(setting);
304
+ if(value != isc_spb_prp_am_readonly && value != isc_spb_prp_am_readwrite) {
305
+ rb_fireruby_raise(NULL,
306
+ "Invalid access mode value specified for database " \
307
+ "restore.");
308
+ }
309
+
310
+ rb_hash_aset(rb_iv_get(self, "@options"), ACCESS_MODE, setting);
311
+
312
+ return(self);
340
313
  }
341
314
 
342
315
 
@@ -349,17 +322,15 @@ VALUE setRestoreAccessMode(VALUE self, VALUE setting)
349
322
  * @return A reference to the current cache buffers setting.
350
323
  *
351
324
  */
352
- VALUE getRestoreBuildIndices(VALUE self)
353
- {
354
- VALUE result = Qtrue,
355
- setting = rb_hash_aref(rb_iv_get(self, "@options"), BUILD_INDICES);
325
+ VALUE getRestoreBuildIndices(VALUE self) {
326
+ VALUE result = Qtrue,
327
+ setting = rb_hash_aref(rb_iv_get(self, "@options"), BUILD_INDICES);
356
328
 
357
- if(setting != Qnil)
358
- {
359
- result = setting;
360
- }
329
+ if(setting != Qnil) {
330
+ result = setting;
331
+ }
361
332
 
362
- return(result);
333
+ return(result);
363
334
  }
364
335
 
365
336
 
@@ -373,17 +344,15 @@ VALUE getRestoreBuildIndices(VALUE self)
373
344
  * @return A reference to the newly updated Restore object.
374
345
  *
375
346
  */
376
- VALUE setRestoreBuildIndices(VALUE self, VALUE setting)
377
- {
378
- if(setting != Qfalse && setting != Qtrue)
379
- {
380
- rb_fireruby_raise(NULL,
381
- "Invalid build indices setting specified for database "\
382
- "restore.");
383
- }
384
- rb_hash_aset(rb_iv_get(self, "@options"), BUILD_INDICES, setting);
385
-
386
- return(self);
347
+ VALUE setRestoreBuildIndices(VALUE self, VALUE setting) {
348
+ if(setting != Qfalse && setting != Qtrue) {
349
+ rb_fireruby_raise(NULL,
350
+ "Invalid build indices setting specified for database " \
351
+ "restore.");
352
+ }
353
+ rb_hash_aset(rb_iv_get(self, "@options"), BUILD_INDICES, setting);
354
+
355
+ return(self);
387
356
  }
388
357
 
389
358
 
@@ -396,17 +365,15 @@ VALUE setRestoreBuildIndices(VALUE self, VALUE setting)
396
365
  * @return A reference to the current cache buffers setting.
397
366
  *
398
367
  */
399
- VALUE getRestoreCreateShadows(VALUE self)
400
- {
401
- VALUE result = Qfalse,
402
- setting = rb_hash_aref(rb_iv_get(self, "@options"), NO_SHADOWS);
368
+ VALUE getRestoreCreateShadows(VALUE self) {
369
+ VALUE result = Qfalse,
370
+ setting = rb_hash_aref(rb_iv_get(self, "@options"), NO_SHADOWS);
403
371
 
404
- if(setting != Qnil)
405
- {
406
- result = setting;
407
- }
372
+ if(setting != Qnil) {
373
+ result = setting;
374
+ }
408
375
 
409
- return(result);
376
+ return(result);
410
377
  }
411
378
 
412
379
 
@@ -420,17 +387,15 @@ VALUE getRestoreCreateShadows(VALUE self)
420
387
  * @return A reference to the newly updated Restore object.
421
388
  *
422
389
  */
423
- VALUE setRestoreCreateShadows(VALUE self, VALUE setting)
424
- {
425
- if(setting != Qfalse && setting != Qtrue)
426
- {
427
- rb_fireruby_raise(NULL,
428
- "Invalid create shadows setting specified for "\
429
- "database restore.");
430
- }
431
- rb_hash_aset(rb_iv_get(self, "@options"), NO_SHADOWS, setting);
432
-
433
- return(self);
390
+ VALUE setRestoreCreateShadows(VALUE self, VALUE setting) {
391
+ if(setting != Qfalse && setting != Qtrue) {
392
+ rb_fireruby_raise(NULL,
393
+ "Invalid create shadows setting specified for " \
394
+ "database restore.");
395
+ }
396
+ rb_hash_aset(rb_iv_get(self, "@options"), NO_SHADOWS, setting);
397
+
398
+ return(self);
434
399
  }
435
400
 
436
401
 
@@ -443,17 +408,15 @@ VALUE setRestoreCreateShadows(VALUE self, VALUE setting)
443
408
  * @return A reference to the current cache buffers setting.
444
409
  *
445
410
  */
446
- VALUE getRestoreCheckValidity(VALUE self)
447
- {
448
- VALUE result = Qtrue,
449
- setting = rb_hash_aref(rb_iv_get(self, "@options"), VALIDITY_CHECKS);
411
+ VALUE getRestoreCheckValidity(VALUE self) {
412
+ VALUE result = Qtrue,
413
+ setting = rb_hash_aref(rb_iv_get(self, "@options"), VALIDITY_CHECKS);
450
414
 
451
- if(setting != Qnil)
452
- {
453
- result = setting;
454
- }
415
+ if(setting != Qnil) {
416
+ result = setting;
417
+ }
455
418
 
456
- return(result);
419
+ return(result);
457
420
  }
458
421
 
459
422
 
@@ -467,17 +430,15 @@ VALUE getRestoreCheckValidity(VALUE self)
467
430
  * @return A reference to the newly updated Restore object.
468
431
  *
469
432
  */
470
- VALUE setRestoreCheckValidity(VALUE self, VALUE setting)
471
- {
472
- if(setting != Qfalse && setting != Qtrue)
473
- {
474
- rb_fireruby_raise(NULL,
475
- "Invalid validity checks setting specified for "\
476
- "database restore.");
477
- }
478
- rb_hash_aset(rb_iv_get(self, "@options"), VALIDITY_CHECKS, setting);
479
-
480
- return(self);
433
+ VALUE setRestoreCheckValidity(VALUE self, VALUE setting) {
434
+ if(setting != Qfalse && setting != Qtrue) {
435
+ rb_fireruby_raise(NULL,
436
+ "Invalid validity checks setting specified for " \
437
+ "database restore.");
438
+ }
439
+ rb_hash_aset(rb_iv_get(self, "@options"), VALIDITY_CHECKS, setting);
440
+
441
+ return(self);
481
442
  }
482
443
 
483
444
 
@@ -490,17 +451,15 @@ VALUE setRestoreCheckValidity(VALUE self, VALUE setting)
490
451
  * @return A reference to the current cache buffers setting.
491
452
  *
492
453
  */
493
- VALUE getRestoreCommitTables(VALUE self)
494
- {
495
- VALUE result = Qfalse,
496
- setting = rb_hash_aref(rb_iv_get(self, "@options"), COMMIT_TABLES);
454
+ VALUE getRestoreCommitTables(VALUE self) {
455
+ VALUE result = Qfalse,
456
+ setting = rb_hash_aref(rb_iv_get(self, "@options"), COMMIT_TABLES);
497
457
 
498
- if(setting != Qnil)
499
- {
500
- result = setting;
501
- }
458
+ if(setting != Qnil) {
459
+ result = setting;
460
+ }
502
461
 
503
- return(result);
462
+ return(result);
504
463
  }
505
464
 
506
465
 
@@ -514,17 +473,15 @@ VALUE getRestoreCommitTables(VALUE self)
514
473
  * @return A reference to the newly updated Restore object.
515
474
  *
516
475
  */
517
- VALUE setRestoreCommitTables(VALUE self, VALUE setting)
518
- {
519
- if(setting != Qfalse && setting != Qtrue)
520
- {
521
- rb_fireruby_raise(NULL,
522
- "Invalid commit tables setting specified for "\
523
- "database restore.");
524
- }
525
- rb_hash_aset(rb_iv_get(self, "@options"), COMMIT_TABLES, setting);
526
-
527
- return(self);
476
+ VALUE setRestoreCommitTables(VALUE self, VALUE setting) {
477
+ if(setting != Qfalse && setting != Qtrue) {
478
+ rb_fireruby_raise(NULL,
479
+ "Invalid commit tables setting specified for " \
480
+ "database restore.");
481
+ }
482
+ rb_hash_aset(rb_iv_get(self, "@options"), COMMIT_TABLES, setting);
483
+
484
+ return(self);
528
485
  }
529
486
 
530
487
 
@@ -536,17 +493,15 @@ VALUE setRestoreCommitTables(VALUE self, VALUE setting)
536
493
  * @return A reference to the current cache buffers setting.
537
494
  *
538
495
  */
539
- VALUE getRestoreMode(VALUE self)
540
- {
541
- VALUE result = Qfalse,
542
- setting = rb_hash_aref(rb_iv_get(self, "@options"), RESTORE_MODE);
496
+ VALUE getRestoreMode(VALUE self) {
497
+ VALUE result = Qfalse,
498
+ setting = rb_hash_aref(rb_iv_get(self, "@options"), RESTORE_MODE);
543
499
 
544
- if(setting != Qnil)
545
- {
546
- result = setting;
547
- }
500
+ if(setting != Qnil) {
501
+ result = setting;
502
+ }
548
503
 
549
- return(result);
504
+ return(result);
550
505
  }
551
506
 
552
507
 
@@ -559,26 +514,23 @@ VALUE getRestoreMode(VALUE self)
559
514
  * @return A reference to the newly updated Restore object.
560
515
  *
561
516
  */
562
- VALUE setRestoreMode(VALUE self, VALUE setting)
563
- {
564
- int value;
565
-
566
- if(rb_obj_is_kind_of(setting, rb_cInteger) == Qfalse)
567
- {
568
- rb_fireruby_raise(NULL,
569
- "Invalid mode setting specified for database restore.");
570
- }
571
-
572
- value = TYPE(setting) == T_FIXNUM ? FIX2INT(setting) : NUM2INT(setting);
573
- if(value != isc_spb_res_create && value != isc_spb_res_replace)
574
- {
575
- rb_fireruby_raise(NULL,
576
- "Unrecognised mode setting specified for database "\
577
- "restore.");
578
- }
579
- rb_hash_aset(rb_iv_get(self, "@options"), RESTORE_MODE, setting);
580
-
581
- return(self);
517
+ VALUE setRestoreMode(VALUE self, VALUE setting) {
518
+ int value;
519
+
520
+ if(rb_obj_is_kind_of(setting, rb_cInteger) == Qfalse) {
521
+ rb_fireruby_raise(NULL,
522
+ "Invalid mode setting specified for database restore.");
523
+ }
524
+
525
+ value = TYPE(setting) == T_FIXNUM ? FIX2INT(setting) : NUM2INT(setting);
526
+ if(value != isc_spb_res_create && value != isc_spb_res_replace) {
527
+ rb_fireruby_raise(NULL,
528
+ "Unrecognised mode setting specified for database " \
529
+ "restore.");
530
+ }
531
+ rb_hash_aset(rb_iv_get(self, "@options"), RESTORE_MODE, setting);
532
+
533
+ return(self);
582
534
  }
583
535
 
584
536
 
@@ -591,17 +543,15 @@ VALUE setRestoreMode(VALUE self, VALUE setting)
591
543
  * @return A reference to the current cache buffers setting.
592
544
  *
593
545
  */
594
- VALUE getRestoreUseAllSpace(VALUE self)
595
- {
596
- VALUE result = Qfalse,
597
- setting = rb_hash_aref(rb_iv_get(self, "@options"), USE_ALL_SPACE);
546
+ VALUE getRestoreUseAllSpace(VALUE self) {
547
+ VALUE result = Qfalse,
548
+ setting = rb_hash_aref(rb_iv_get(self, "@options"), USE_ALL_SPACE);
598
549
 
599
- if(setting != Qnil)
600
- {
601
- result = setting;
602
- }
550
+ if(setting != Qnil) {
551
+ result = setting;
552
+ }
603
553
 
604
- return(result);
554
+ return(result);
605
555
  }
606
556
 
607
557
 
@@ -615,17 +565,15 @@ VALUE getRestoreUseAllSpace(VALUE self)
615
565
  * @return A reference to the newly updated Restore object.
616
566
  *
617
567
  */
618
- VALUE setRestoreUseAllSpace(VALUE self, VALUE setting)
619
- {
620
- if(setting != Qfalse && setting != Qtrue)
621
- {
622
- rb_fireruby_raise(NULL,
623
- "Invalid space usage setting specified for database "\
624
- "restore.");
625
- }
626
- rb_hash_aset(rb_iv_get(self, "@options"), USE_ALL_SPACE, setting);
627
-
628
- return(self);
568
+ VALUE setRestoreUseAllSpace(VALUE self, VALUE setting) {
569
+ if(setting != Qfalse && setting != Qtrue) {
570
+ rb_fireruby_raise(NULL,
571
+ "Invalid space usage setting specified for database " \
572
+ "restore.");
573
+ }
574
+ rb_hash_aset(rb_iv_get(self, "@options"), USE_ALL_SPACE, setting);
575
+
576
+ return(self);
629
577
  }
630
578
 
631
579
 
@@ -639,37 +587,34 @@ VALUE setRestoreUseAllSpace(VALUE self, VALUE setting)
639
587
  * @return A reference to the Restore object executed.
640
588
  *
641
589
  */
642
- VALUE executeRestore(VALUE self, VALUE manager)
643
- {
644
- ManagerHandle *handle = NULL;
645
- char *buffer = NULL;
646
- short length = 0;
647
- ISC_STATUS status[20];
648
-
649
- /* Check that the service manager is connected. */
650
- Data_Get_Struct(manager, ManagerHandle, handle);
651
- if(handle->handle == 0)
652
- {
653
- rb_fireruby_raise(NULL,
654
- "Database restore error. Service manager not connected.");
655
- }
656
-
657
- createRestoreBuffer(rb_iv_get(self, "@backup_file"),
658
- rb_iv_get(self, "@database"),
659
- rb_iv_get(self, "@options"), &buffer, &length);
660
-
661
- /* Start the service request. */
662
- if(isc_service_start(status, &handle->handle, NULL, length, buffer))
663
- {
664
- free(buffer);
665
- rb_fireruby_raise(status, "Error performing database restore.");
666
- }
667
- free(buffer);
668
-
669
- /* Query the service until it is complete. */
670
- rb_iv_set(self, "@log", queryService(&handle->handle));
671
-
672
- return(self);
590
+ VALUE executeRestore(VALUE self, VALUE manager) {
591
+ ManagerHandle *handle = NULL;
592
+ char *buffer = NULL;
593
+ short length = 0;
594
+ ISC_STATUS status[ISC_STATUS_LENGTH];
595
+
596
+ /* Check that the service manager is connected. */
597
+ Data_Get_Struct(manager, ManagerHandle, handle);
598
+ if(handle->handle == 0) {
599
+ rb_fireruby_raise(NULL,
600
+ "Database restore error. Service manager not connected.");
601
+ }
602
+
603
+ createRestoreBuffer(rb_iv_get(self, "@backup_file"),
604
+ rb_iv_get(self, "@database"),
605
+ rb_iv_get(self, "@options"), &buffer, &length);
606
+
607
+ /* Start the service request. */
608
+ if(isc_service_start(status, &handle->handle, NULL, length, buffer)) {
609
+ free(buffer);
610
+ rb_fireruby_raise(status, "Error performing database restore.");
611
+ }
612
+ free(buffer);
613
+
614
+ /* Query the service until it is complete. */
615
+ rb_iv_set(self, "@log", queryService(&handle->handle));
616
+
617
+ return(self);
673
618
  }
674
619
 
675
620
 
@@ -681,9 +626,8 @@ VALUE executeRestore(VALUE self, VALUE manager)
681
626
  * @return A reference to the log attribute value.
682
627
  *
683
628
  */
684
- VALUE getRestoreLog(VALUE self)
685
- {
686
- return(rb_iv_get(self, "@log"));
629
+ VALUE getRestoreLog(VALUE self) {
630
+ return(rb_iv_get(self, "@log"));
687
631
  }
688
632
 
689
633
 
@@ -705,111 +649,98 @@ VALUE getRestoreLog(VALUE self)
705
649
  *
706
650
  */
707
651
  void createRestoreBuffer(VALUE file, VALUE database, VALUE options,
708
- char **buffer, short *length)
709
- {
710
- char *offset = NULL;
711
- int number = 0;
712
- long mask = 0;
713
- VALUE cache = rb_hash_aref(options, CACHE_BUFFERS),
714
- page = rb_hash_aref(options, PAGE_SIZE),
715
- mode = rb_hash_aref(options, ACCESS_MODE),
716
- policy = rb_hash_aref(options, RESTORE_MODE);
717
-
718
- /* Determine the length of the buffer. */
719
- *length = 7;
720
- *length += strlen(StringValuePtr(file)) + 3;
721
- *length += strlen(StringValuePtr(database)) + 3;
722
- if(cache != Qnil)
723
- {
724
- *length += 5;
725
- }
726
- if(page != Qnil)
727
- {
728
- *length += 5;
729
- }
730
- if(mode != Qnil)
731
- {
732
- *length += 2;
733
- }
734
-
735
- /* Create and populate the buffer. */
736
- offset = *buffer = ALLOC_N(char, *length);
737
- if(buffer == NULL)
738
- {
739
- rb_raise(rb_eNoMemError,
740
- "Memory allocation error preparing database restore.");
741
- }
742
- memset(*buffer, 8, *length);
743
-
744
- *offset++ = isc_action_svc_restore;
745
-
746
- number = strlen(StringValuePtr(file));
747
- *offset++ = isc_spb_bkp_file;
748
- ADD_SPB_LENGTH(offset, number);
749
- memcpy(offset, StringValuePtr(file), number);
750
- offset += number;
751
-
752
- number = strlen(StringValuePtr(database));
753
- *offset++ = isc_spb_dbname;
754
- ADD_SPB_LENGTH(offset, number);
755
- memcpy(offset, StringValuePtr(database), number);
756
- offset += number;
757
-
758
- if(cache != Qnil)
759
- {
760
- long value;
761
-
762
- value = TYPE(cache) == T_FIXNUM ? FIX2INT(cache) : NUM2INT(cache);
763
- *offset++ = isc_spb_res_buffers;
764
- ADD_SPB_NUMERIC(offset, value);
765
- }
766
-
767
- if(page != Qnil)
768
- {
769
- long value;
770
-
771
- value = TYPE(page) == T_FIXNUM ? FIX2INT(page) : NUM2INT(page);
772
- *offset++ = isc_spb_res_page_size;
773
- ADD_SPB_NUMERIC(offset, value);
774
- }
775
-
776
- if(mode != Qnil)
777
- {
778
- *offset++ = isc_spb_res_access_mode;
779
- *offset++ = (char)FIX2INT(mode);
780
- }
781
-
782
- mask = FIX2INT(policy);
783
-
784
- if(rb_hash_aref(options, BUILD_INDICES) == Qfalse)
785
- {
786
- mask |= isc_spb_res_deactivate_idx;
787
- }
788
-
789
- if(rb_hash_aref(options, NO_SHADOWS) == Qtrue)
790
- {
791
- mask |= isc_spb_res_no_shadow;
792
- }
793
-
794
- if(rb_hash_aref(options, VALIDITY_CHECKS) == Qfalse)
795
- {
796
- mask |= isc_spb_res_no_validity;
797
- }
798
-
799
- if(rb_hash_aref(options, COMMIT_TABLES) == Qtrue)
800
- {
801
- mask |= isc_spb_res_one_at_a_time;
802
- }
803
-
804
- if(rb_hash_aref(options, USE_ALL_SPACE) == Qtrue)
805
- {
806
- mask |= isc_spb_res_use_all_space;
807
- }
808
-
809
- *offset++ = isc_spb_options;
810
- ADD_SPB_NUMERIC(offset, mask);
811
-
812
- *offset++ = isc_spb_verbose;
652
+ char **buffer, short *length) {
653
+ char *offset = NULL;
654
+ int number = 0;
655
+ long mask = 0;
656
+ VALUE cache = rb_hash_aref(options, CACHE_BUFFERS),
657
+ page = rb_hash_aref(options, PAGE_SIZE),
658
+ mode = rb_hash_aref(options, ACCESS_MODE),
659
+ policy = rb_hash_aref(options, RESTORE_MODE);
660
+
661
+ /* Determine the length of the buffer. */
662
+ *length = 7;
663
+ *length += strlen(StringValuePtr(file)) + 3;
664
+ *length += strlen(StringValuePtr(database)) + 3;
665
+ if(cache != Qnil) {
666
+ *length += 5;
667
+ }
668
+ if(page != Qnil) {
669
+ *length += 5;
670
+ }
671
+ if(mode != Qnil) {
672
+ *length += 2;
673
+ }
674
+
675
+ /* Create and populate the buffer. */
676
+ offset = *buffer = ALLOC_N(char, *length);
677
+ if(buffer == NULL) {
678
+ rb_raise(rb_eNoMemError,
679
+ "Memory allocation error preparing database restore.");
680
+ }
681
+ memset(*buffer, 8, *length);
682
+
683
+ *offset++ = isc_action_svc_restore;
684
+
685
+ number = strlen(StringValuePtr(file));
686
+ *offset++ = isc_spb_bkp_file;
687
+ ADD_SPB_LENGTH(offset, number);
688
+ memcpy(offset, StringValuePtr(file), number);
689
+ offset += number;
690
+
691
+ number = strlen(StringValuePtr(database));
692
+ *offset++ = isc_spb_dbname;
693
+ ADD_SPB_LENGTH(offset, number);
694
+ memcpy(offset, StringValuePtr(database), number);
695
+ offset += number;
696
+
697
+ if(cache != Qnil) {
698
+ long value;
699
+
700
+ value = TYPE(cache) == T_FIXNUM ? FIX2INT(cache) : NUM2INT(cache);
701
+ *offset++ = isc_spb_res_buffers;
702
+ ADD_SPB_NUMERIC(offset, value);
703
+ }
704
+
705
+ if(page != Qnil) {
706
+ long value;
707
+
708
+ value = TYPE(page) == T_FIXNUM ? FIX2INT(page) : NUM2INT(page);
709
+ *offset++ = isc_spb_res_page_size;
710
+ ADD_SPB_NUMERIC(offset, value);
711
+ }
712
+
713
+ if(mode != Qnil) {
714
+ *offset++ = isc_spb_res_access_mode;
715
+ *offset++ = (char)FIX2INT(mode);
716
+ }
717
+
718
+ mask = FIX2INT(policy);
719
+
720
+ if(rb_hash_aref(options, BUILD_INDICES) == Qfalse) {
721
+ mask |= isc_spb_res_deactivate_idx;
722
+ }
723
+
724
+ if(rb_hash_aref(options, NO_SHADOWS) == Qtrue) {
725
+ mask |= isc_spb_res_no_shadow;
726
+ }
727
+
728
+ if(rb_hash_aref(options, VALIDITY_CHECKS) == Qfalse) {
729
+ mask |= isc_spb_res_no_validity;
730
+ }
731
+
732
+ if(rb_hash_aref(options, COMMIT_TABLES) == Qtrue) {
733
+ mask |= isc_spb_res_one_at_a_time;
734
+ }
735
+
736
+ if(rb_hash_aref(options, USE_ALL_SPACE) == Qtrue) {
737
+ mask |= isc_spb_res_use_all_space;
738
+ }
739
+
740
+ *offset++ = isc_spb_options;
741
+ ADD_SPB_NUMERIC(offset, mask);
742
+
743
+ *offset++ = isc_spb_verbose;
813
744
  }
814
745
 
815
746
 
@@ -819,37 +750,36 @@ void createRestoreBuffer(VALUE file, VALUE database, VALUE options,
819
750
  * @param module The module to create the new class definition under.
820
751
  *
821
752
  */
822
- void Init_Restore(VALUE module)
823
- {
824
- cRestore = rb_define_class_under(module, "Restore", rb_cObject);
825
- rb_define_method(cRestore, "initialize", initializeRestore, 2);
826
- rb_define_method(cRestore, "backup_file", getRestoreFile, 0);
827
- rb_define_method(cRestore, "backup_file=", setRestoreFile, 1);
828
- rb_define_method(cRestore, "database", getRestoreDatabase, 0);
829
- rb_define_method(cRestore, "database=", setRestoreDatabase, 1);
830
- rb_define_method(cRestore, "cache_buffers", getRestoreCacheBuffers, 0);
831
- rb_define_method(cRestore, "cache_buffers=", setRestoreCacheBuffers, 1);
832
- rb_define_method(cRestore, "page_size", getRestorePageSize, 0);
833
- rb_define_method(cRestore, "page_size=", setRestorePageSize, 1);
834
- rb_define_method(cRestore, "access_mode", getRestoreAccessMode, 0);
835
- rb_define_method(cRestore, "access_mode=", setRestoreAccessMode, 1);
836
- rb_define_method(cRestore, "build_indices", getRestoreBuildIndices, 0);
837
- rb_define_method(cRestore, "build_indices=", setRestoreBuildIndices, 1);
838
- rb_define_method(cRestore, "no_shadows", getRestoreCreateShadows, 0);
839
- rb_define_method(cRestore, "no_shadows=", setRestoreCreateShadows, 1);
840
- rb_define_method(cRestore, "check_validity", getRestoreCheckValidity, 0);
841
- rb_define_method(cRestore, "check_validity=", setRestoreCheckValidity, 1);
842
- rb_define_method(cRestore, "commit_tables", getRestoreCommitTables, 0);
843
- rb_define_method(cRestore, "commit_tables=", setRestoreCommitTables, 1);
844
- rb_define_method(cRestore, "restore_mode", getRestoreMode, 0);
845
- rb_define_method(cRestore, "restore_mode=", setRestoreMode, 1);
846
- rb_define_method(cRestore, "use_all_space", getRestoreUseAllSpace, 0);
847
- rb_define_method(cRestore, "use_all_space=", setRestoreUseAllSpace, 1);
848
- rb_define_method(cRestore, "execute", executeRestore, 1);
849
- rb_define_method(cRestore, "log", getRestoreLog, 0);
850
-
851
- rb_define_const(cRestore, "ACCESS_READ_ONLY", INT2FIX(isc_spb_prp_am_readonly));
852
- rb_define_const(cRestore, "ACCESS_READ_WRITE", INT2FIX(isc_spb_prp_am_readwrite));
853
- rb_define_const(cRestore, "MODE_CREATE", INT2FIX(isc_spb_res_replace));
854
- rb_define_const(cRestore, "MODE_REPLACE", INT2FIX(isc_spb_res_create));
753
+ void Init_Restore(VALUE module) {
754
+ cRestore = rb_define_class_under(module, "Restore", rb_cObject);
755
+ rb_define_method(cRestore, "initialize", initializeRestore, 2);
756
+ rb_define_method(cRestore, "backup_file", getRestoreFile, 0);
757
+ rb_define_method(cRestore, "backup_file=", setRestoreFile, 1);
758
+ rb_define_method(cRestore, "database", getRestoreDatabase, 0);
759
+ rb_define_method(cRestore, "database=", setRestoreDatabase, 1);
760
+ rb_define_method(cRestore, "cache_buffers", getRestoreCacheBuffers, 0);
761
+ rb_define_method(cRestore, "cache_buffers=", setRestoreCacheBuffers, 1);
762
+ rb_define_method(cRestore, "page_size", getRestorePageSize, 0);
763
+ rb_define_method(cRestore, "page_size=", setRestorePageSize, 1);
764
+ rb_define_method(cRestore, "access_mode", getRestoreAccessMode, 0);
765
+ rb_define_method(cRestore, "access_mode=", setRestoreAccessMode, 1);
766
+ rb_define_method(cRestore, "build_indices", getRestoreBuildIndices, 0);
767
+ rb_define_method(cRestore, "build_indices=", setRestoreBuildIndices, 1);
768
+ rb_define_method(cRestore, "no_shadows", getRestoreCreateShadows, 0);
769
+ rb_define_method(cRestore, "no_shadows=", setRestoreCreateShadows, 1);
770
+ rb_define_method(cRestore, "check_validity", getRestoreCheckValidity, 0);
771
+ rb_define_method(cRestore, "check_validity=", setRestoreCheckValidity, 1);
772
+ rb_define_method(cRestore, "commit_tables", getRestoreCommitTables, 0);
773
+ rb_define_method(cRestore, "commit_tables=", setRestoreCommitTables, 1);
774
+ rb_define_method(cRestore, "restore_mode", getRestoreMode, 0);
775
+ rb_define_method(cRestore, "restore_mode=", setRestoreMode, 1);
776
+ rb_define_method(cRestore, "use_all_space", getRestoreUseAllSpace, 0);
777
+ rb_define_method(cRestore, "use_all_space=", setRestoreUseAllSpace, 1);
778
+ rb_define_method(cRestore, "execute", executeRestore, 1);
779
+ rb_define_method(cRestore, "log", getRestoreLog, 0);
780
+
781
+ rb_define_const(cRestore, "ACCESS_READ_ONLY", INT2FIX(isc_spb_prp_am_readonly));
782
+ rb_define_const(cRestore, "ACCESS_READ_WRITE", INT2FIX(isc_spb_prp_am_readwrite));
783
+ rb_define_const(cRestore, "MODE_CREATE", INT2FIX(isc_spb_res_replace));
784
+ rb_define_const(cRestore, "MODE_REPLACE", INT2FIX(isc_spb_res_create));
855
785
  }