01:
02:
03:
04: use strict;
05:
06: require "GetoptRealize.pl";
07: local( $::debug ) = GetoptRealize::debug();
08:
09: package FileRealize;
10:
11:
12:
13: my ( $RZ, $RECONSTITUTED );
14:
15: {
16: local( $^F ) = 1<<31 - 1;
17:
18: GetoptRealize::openh( departure => $RZ );
19: GetoptRealize::differh( destination => $RZ );
20:
21: print STDERR " departure -> tempfiles\n" if $::debug;
22:
23: open $RECONSTITUTED, "+>", undef or die "Can't open tempfile\n";
24: }
25:
26: {
27:
28:
29: my @DESCRIPTORS = map fileno( $_ ), ( $RZ, $RECONSTITUTED );
30:
31: print STDERR
32: " fork and exec to C++ with descriptors @DESCRIPTORS\n" if $::debug;
33:
34: system { $INC[0]."/FileRealize.gateway" } ( $0, @DESCRIPTORS ) and die
35: "Realizer failure: $?\n";
36:
37:
38: }
39:
40: GetoptRealize::backh( departure => );
41: GetoptRealize::backh( destination => );
42:
43: {
44: my $DESTINATION;
45: GetoptRealize::converth( $RZ => $DESTINATION ) or (
46: GetoptRealize::closeh( $RZ ),
47: GetoptRealize::openh( destination => $DESTINATION ),
48: );
49:
50: print STDERR " tempfiles -> destination\n" if $::debug;
51:
52: while( read( $RECONSTITUTED, my $bk, 8192 ) ) { print $DESTINATION $bk; }
53:
54: GetoptRealize::closeh( $DESTINATION );
55: }
56:
57:
58:
59:
60:
61: 1;