#!/usr/local/bin/perl -w
#
# Copyright (C) 1995, 1996 Systemics Ltd (http://www.systemics.com/)
# All rights reserved.
#
package Stream::FileOutputStream;
@FileOutputStream::ISA = qw(Stream::FileOutputStream);
#
# FileOutputStream
#
# Inherits from OutputStream, redefining all of it's member
# functions:
# write
#
#
# Perhaps we should consider making this inherit from FileHandle?
#
use strict;
use Carp;
use FileHandle;
use POSIX;
sub usage
{
my ($package, $filename, $line, $subr) = caller(1);
$Carp::CarpLevel = 2;
croak "Usage: $subr(@_)";
}
sub new
{
usage("FileHandle") unless @_ == 2;
my $type = shift; my $self = {}; bless $self, $type;
my $arg = shift;
if (defined ref($arg) && ref($arg) eq 'FileHandle')
{
$self->{'fh'} = $arg;
}
else
{
$self->{'fh'} = new FileHandle $arg, 'w';
(defined($self->{'fh'})) || return "Could not open $arg";
}
$self;
}
sub close
{
shift->{'fh'}->close();
}
sub write
{
usage("data") unless @_ == 2;
my $self = shift;
my $data = shift;
$self->{'fh'}->print($data);
}
1;