/* * Copyright (c) Zmanda, Inc. All Rights Reserved. * * This library is free software; you can redistribute it and/or modify it * under the terms of the GNU Lesser General Public License version 2.1 * as published by the Free Software Foundation. * * This library 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. See the GNU Lesser General Public * License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this library; if not, write to the Free Software Foundation, * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. * * Contact information: Zmanda Inc., 465 S Mathlida Ave, Suite 300 * Sunnyvale, CA 94086, USA, or: http://www.zmanda.com */ %module "Amanda::Tapelist" %include "amglue/amglue.swg" %include "exception.i" %{ #include "tapefile.h" %} %perlcode %{ use Amanda::Debug qw(:logging); =head1 NAME Amanda::Tapelist - manipulate the Amanda tapelist =head1 SYNOPSIS use Amanda::Tapelist; my $tl = Amanda::Tapelist::read_tapelist("/path/to/tapefile"); $tl->add_tapelabel($datestamp, $label); $tl->add_tapelabel($datestamp2, $label2, $comment); $tl->write("/path/to/tapefile"); =head1 API STATUS Stable =head1 OBJECT-ORIENTED INTERFACE The package-level functions C and C both return a new tapelist object. C returns C if the tapelist does not exist. Invalid entries are silently ignored. A tapelist object is a sequence of tapelist elements (referred to as TLEs in this document). Each TLE is a hash with the following keys: =over =item C -- the one-based position of the TLE in the tapelist =item C -- the datestamp on which this was written, or "0" for an unused tape =item C -- true if this tape can be reused when it is no longer active =item C