IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 17448 for trunk/Nebulous/lib


Ignore:
Timestamp:
Apr 17, 2008, 2:08:23 PM (18 years ago)
Author:
jhoblitt
Message:

add Nebulous::Client::open() '>' (truncate) mode

Location:
trunk/Nebulous/lib/Nebulous
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Nebulous/lib/Nebulous/Client.pm

    r17081 r17448  
    11# Copyright (c) 2004-2008  Joshua Hoblitt
    22#
    3 # $Id: Client.pm,v 1.41 2008-03-21 01:53:36 jhoblitt Exp $
     3# $Id: Client.pm,v 1.42 2008-04-18 00:08:23 jhoblitt Exp $
    44
    55package Nebulous::Client;
     
    503503            type        => SCALAR,
    504504            callbacks   => {
    505                 'is read or write' => sub { $_[0] =~ /^(?:read|write)$/ },
     505                'is read or write' => sub { $_[0] =~ /^(?:read|write|>)$/ },
    506506            },
    507507        },
     
    538538    }
    539539
    540     if ( $type eq 'write' ) {
     540    if ( $type eq 'write' or $type eq '>' ) {
    541541        my $num_instances = scalar @$locations;
    542542
     
    551551        };
    552552        $log->logdie( $@ ) if $@;
     553
     554        if ($type eq '>') {
     555            truncate($fh, 0) or $log->logdie("truncate failed: $!");
     556        }
    553557    } elsif ( $type eq 'read' ) {
    554558        eval {
  • trunk/Nebulous/lib/Nebulous/Client.pod

    r17081 r17448  
    285285=item * type
    286286
    287 The type of lock to acquire.  Either C<read> or C<write>.
     287The type of lock to acquire.  One of [C<read>, C<write>, C<>>].
     288
     289C<>> truncates any pre-existing files to zero length and opens it for writing.
    288290
    289291=back
Note: See TracChangeset for help on using the changeset viewer.