package Amiga::Exec;

use 5.016000;
use strict;
use warnings;
use Carp;

require Exporter;
#use AutoLoader;

our @ISA = qw(Exporter);

# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.

# This allows declaration       use Amiga::Exec ':all';
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
# will save memory.
our %EXPORT_TAGS = ( 'all' => [ qw(
) ] );

our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );

our @EXPORT = qw(

our $VERSION = '0.02';

require XSLoader;
XSLoader::load('Amiga::Exec', $VERSION);

sub Wait
    my %params = @_;
    my $signalmask = 0;
    my $timeout = 0;

    if(exists $params{'SignalMask'})
    	$signalmask = $params{'SignalMask'};
    if(exists $params{'TimeOut'})
    	$timeout = $params{'TimeOut'};

    my $result = Amiga::Exec::_Wait($signalmask,$timeout);
    return $result;

# Preloaded methods go here.

# Autoload methods go after =cut, and are processed by the autosplit program.

# Below is stub documentation for your module. You'd better edit it!

=head1 NAME

Amiga::Exec - Perl extension for low level amiga support


This a  perl class / module to enables you to use various low level Amiga features such as waiting on an Exec signal


    # Wait for signla

    use Amiga::Exec;
    my $result = Amiga::ARexx->Wait('SignalMask' => $signalmask, 'TimeOut' => $timeoutinusecs);                                                                          );


The interface to  Exec in entirely encapsulated within the perl class, there
is no need to access the low level methods directly and they are not exported by default.

=head1 Amiga::ARexx METHODS

=head2 Wait

 $signals = Amiga::Exec->Wait('SignalMask' => $signalmask,
                              'TimeOut' => $timeoutinusecs );

Wait on a signal set with optional timeout. The result ($signals) should be checked to
determine which signal was raised. It will be 0 for timeout.

=head3 Signal

The signal Exec signal mask

=head3 TimeOut

optional time out in microseconds.

=head2 EXPORT

None by default.

=head2 Exportable constants


=head1 AUTHOR

Andy Broad <>


Copyright (C) 2013 by Andy Broad.