GnuPG::Handles - GnuPG handles bundle


GnuPG-Interface documentation Contained in the GnuPG-Interface distribution.

Index


Code Index:

NAME

Top

GnuPG::Handles - GnuPG handles bundle

SYNOPSIS

Top

  use IO::Handle;
  my ( $stdin, $stdout, $stderr,
       $status_fh, $logger_fh, $passphrase_fh,
     )
    = ( IO::Handle->new(), IO::Handle->new(), IO::Handle->new(),
        IO::Handle->new(), IO::Handle->new(), IO::Handle->new(),
      );

  my $handles = GnuPG::Handles->new
    ( stdin      => $stdin,
      stdout     => $stdout,
      stderr     => $stderr,
      status     => $status_fh,
      logger     => $logger_fh,
      passphrase => $passphrase_fh,
    );

DESCRIPTION

Top

GnuPG::Handles objects are generally instantiated to be used in conjunction with methods of objects of the class GnuPG::Interface. GnuPG::Handles objects represent a collection of handles that are used to communicate with GnuPG.

OBJECT METHODS

Top

Initialization Methods

new( %initialization_args )

This methods creates a new object. The optional arguments are initialization of data members.

hash_init( %args ).

OBJECT DATA MEMBERS

Top

stdin

This handle is connected to the standard input of a GnuPG process.

stdout

This handle is connected to the standard output of a GnuPG process.

stderr

This handle is connected to the standard error of a GnuPG process.

status

This handle is connected to the status output handle of a GnuPG process.

logger

This handle is connected to the logger output handle of a GnuPG process.

passphrase

This handle is connected to the passphrase input handle of a GnuPG process.

command

This handle is connected to the command input handle of a GnuPG process.

options

This is a hash of hashrefs of settings pertaining to the handles in this object. The outer-level hash is keyed by the names of the handle the setting is for, while the inner is keyed by the setting being referenced. For example, to set the setting direct to true for the filehandle stdin, the following code will do:

    # assuming $handles is an already-created
    # GnuPG::Handles object, this sets all
    # options for the filehandle stdin in one blow,
    # clearing out all others
    $handles->options( 'stdin', { direct => 1 } );

    # this is useful to just make one change
    # to the set of options for a handle
    $handles->options( 'stdin' )->{direct} = 1;

    # and to get the setting...
    $setting = $handles->options( 'stdin' )->{direct};

    # and to clear the settings for stdin
    $handles->options( 'stdin', {} );

The currently-used settings are as follows:

direct

If the setting direct is true for a handle, the GnuPG process spawned will access the handle directly. This is useful for having the GnuPG process read or write directly to or from an already-opened file.

SEE ALSO

Top

GnuPG::Interface,


GnuPG-Interface documentation Contained in the GnuPG-Interface distribution.

#  Handles.pm
#    - interface to the handles used by GnuPG::Interface
#
#  Copyright (C) 2000 Frank J. Tobin <ftobin@cpan.org>
#
#  This module is free software; you can redistribute it and/or modify it
#  under the same terms as Perl itself.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
#  $Id: Handles.pm,v 1.8 2001/12/09 02:24:10 ftobin Exp $
#

package GnuPG::Handles;
use Any::Moose;
with qw(GnuPG::HashInit);

use constant HANDLES => qw(
    stdin
    stdout
    stderr
    status
    logger
    passphrase
    command
);

has "$_" => (
    isa     => 'Any',
    is      => 'rw',
    clearer => 'clear_' . $_,
) for HANDLES;

has _options => (
    isa        => 'HashRef',
    is         => 'rw',
    lazy_build => 1,
);

sub options {
    my $self = shift;
    my $key = shift;

    return $self->_options->{$key};
}

sub _build__options { {} }

sub BUILD {
    my ( $self, $args ) = @_;

    # This is done for the user's convenience so that they don't
    # have to worry about undefined hashrefs
    $self->_options->{$_} = {} for HANDLES;
    $self->hash_init(%$args);
}

__PACKAGE__->meta->make_immutable;

1;