File Coverage

blib/lib/Safe/World/stdoutsimple.pm
Criterion Covered Total %
statement 12 62 19.3
branch 0 14 0.0
condition n/a
subroutine 4 26 15.3
pod 0 10 0.0
total 16 112 14.2


line stmt bran cond sub pod time code
1             #############################################################################
2             ## Name: stdoutsimple.pm
3             ## Purpose: Safe::World::stdoutsimple
4             ## Author: Graciliano M. P.
5             ## Modified by:
6             ## Created: 08/09/2003
7             ## RCS-ID:
8             ## Copyright: (c) 2003 Graciliano M. P.
9             ## Licence: This program is free software; you can redistribute it and/or
10             ## modify it under the same terms as Perl itself
11             #############################################################################
12              
13             package Safe::World::stdoutsimple ;
14              
15 1     1   5 use strict qw(vars);
  1         2  
  1         36  
16              
17 1     1   5 use vars qw($VERSION @ISA) ;
  1         2  
  1         59  
18             $VERSION = '0.02' ;
19              
20 1     1   5 no warnings ;
  1         2  
  1         37  
21              
22             ##########
23             # SCOPES #
24             ##########
25              
26 1     1   5 use vars qw($Safe_World_NOW) ;
  1         2  
  1         863  
27            
28             *Safe_World_NOW = \$Safe::World::NOW ;
29              
30             #########
31             # DUMMY #
32             #########
33              
34 0     0 0   sub headers {}
35 0     0 0   sub stdout_data {}
36 0     0 0   sub buffer_data {}
37              
38 0     0 0   sub flush {}
39              
40             #########
41             # BLOCK #
42             #########
43              
44             sub block {
45 0     0 0   my $this = shift ;
46 0           $this->{BLOCKED} = 1 ;
47             }
48              
49             ###########
50             # UNBLOCK #
51             ###########
52              
53             sub unblock {
54 0     0 0   my $this = shift ;
55 0           $this->{BLOCKED} = undef ;
56             }
57              
58             #########
59             # PRINT #
60             #########
61              
62 0     0 0   sub print { &PRINT ;}
63              
64             ################
65             # PRINT_STDOUT #
66             ################
67              
68             sub print_stdout {
69 0     0 0   my $this = shift ;
70 0           my $stdout = $this->{STDOUT} ;
71            
72 0 0         return if $this->{BLOCKED} ;
73            
74 0 0         if ( ref($stdout) eq 'SCALAR' ) { $$stdout .= $_[0] ;}
  0 0          
75             elsif ( ref($stdout) eq 'CODE' ) {
76 0 0         my $sel = $Safe_World_NOW->{SELECT}{PREVSTDOUT} ? &Safe::World::SELECT( $Safe_World_NOW->{SELECT}{PREVSTDOUT} ) : undef ;
77 0           &$stdout($Safe_World_NOW , $_[0]) ;
78 0 0         &Safe::World::SELECT($sel) if $sel ;
79             }
80 0           else { print $stdout $_[0] ;}
81              
82 0           return 1 ;
83             }
84              
85             #################
86             # PRINT_HEADOUT #
87             #################
88              
89 0     0 0   sub print_headout {}
90              
91             #################
92             # CLOSE_HEADERS #
93             #################
94              
95             sub close_headers {
96 0     0 0   my $this = shift ;
97 0           $this->{HEADER_CLOSED} = 1 ;
98 0           return 1 ;
99             }
100              
101             #############
102             # TIEHANDLE #
103             #############
104              
105             sub TIEHANDLE {
106 0     0     my $class = shift ;
107 0           my ($root , $stdout) = @_ ;
108              
109 0           my $this = {
110             ROOT => $root ,
111             STDOUT => $stdout ,
112             } ;
113              
114 0           bless($this , $class) ;
115 0           return( $this ) ;
116             }
117              
118             sub PRINT {
119 0     0     my $this = shift ;
120            
121 0 0         if ( $this->{REDIRECT} ) {
122 0           ${$this->{REDIRECT}} .= join("", (@_[0..$#_])) ;
  0            
123             }
124             else {
125 0           $this->print_stdout( join("", (@_[0..$#_])) ) ;
126             }
127              
128 0           return 1 ;
129             }
130              
131 0     0     sub PRINTF { &PRINT($_[0],sprintf($_[1],@_[2..$#_])) ;}
132              
133 0     0     sub READ {}
134 0     0     sub READLINE {}
135 0     0     sub GETC {}
136 0     0     sub WRITE {}
137              
138 0     0     sub FILENO {}
139              
140 0     0     sub CLOSE {}
141              
142             sub STORE {
143 0     0     my $this = shift ;
144 0           my $stdout = shift ;
145 0 0         if ( !ref($stdout) ) {
146 0           $stdout =~ s/^\*// ;
147 0           $stdout = \*{$stdout} ;
  0            
148             }
149 0           $this->{STDOUT} = $stdout ;
150             }
151              
152 0     0     sub FETCH {}
153              
154 0     0     sub DESTROY {}
155              
156             #######
157             # END #
158             #######
159              
160             1;
161              
162