package GRID::Machine::IOHandle;
use strict;
## Class methods
use overload '<>' => \⋄
# diamond works only in scalar context
sub diamond {
my $self = shift;
my $m = $self->{server};
my $r = $m->diamond($self->{index}, @_);
die $r unless $r->ok;
return $r->result;
};
sub print {
my $self = shift;
my $m = $self->{server};
$m->print($self->{index}, @_);
}
sub printf {
my $self = shift;
my $m = $self->{server};
$m->printf($self->{index}, @_);
}
sub flush {
my $self = shift;
my $m = $self->{server};
$m->flush($self->{index}, @_)->result;
}
sub autoflush {
my $self = shift;
my $m = $self->{server};
$m->autoflush($self->{index}, @_)->result;
}
sub blocking {
my $self = shift;
my $m = $self->{server};
$m->blocking($self->{index}, @_)->result;
}
sub close {
my $self = shift;
my $m = $self->{server};
$m->close($self->{index}, @_)->result;
}
sub getc {
my $self = shift;
my $m = $self->{server};
my $r = $m->getc($self->{index}, @_);
die $r unless $r->ok;
return $r->result;
}
sub getline {
my $self = shift;
my $m = $self->{server};
my $r = $m->getline($self->{index}, @_);
die $r unless $r->ok;
return $r->result;
}
sub getlines {
my $self = shift;
my $m = $self->{server};
my $r = $m->getlines($self->{index}, @_);
die $r unless $r->ok;
return $r->Results;
}
sub read {
my $self = shift;
my $m = $self->{server};
my $r = $m->read($self->{index}, @_);
die $r unless $r->ok;
return $r->result;
}
sub sysread {
my $self = shift;
my $m = $self->{server};
my $r = $m->sysread($self->{index}, @_);
die $r unless $r->ok;
return $r->result;
}
sub stat {
my $self = shift;
my $m = $self->{server};
my $r = $m->stat($self->{index}, @_);
die $r unless $r->ok;
return $r->Results;
}
1;
__END__