# FILE: Calendar.pm
# CREATOR: eric 02 January 2000
#
# DESCRIPTION:
#
#
# $Id: Calendar.pm,v 1.4 2000/05/24 04:41:32 eric Exp $
# $Locker: $
#
# (C) COPYRIGHT 2000, Eric Busboom, http://www.softwarestudio.org
#
# This package is free software and is provided "as is" without express
# or implied warranty. It may be used, redistributed and/or modified
# under the same terms as perl itself. ( Either the Artistic License or the
# GPL. )
#
# The Original Code is Calendar.pm. The Initial Developer of the Original
# Code is Eric Busboom
#
#======================================================================
package Net::ICal::Calendar;
use Net::ICal::Cluster;
use Net::ICal::Store;
sub new{
my $package = shift;
my $path = shift;
my $self = [];
my $nodelete = shift; # True if libical object should not be deleted in DESTROY
die "Net::ICal::Store::new \"$path\" is not a directory" if (-e !path and ! -d $path);
$self->[0] = Net::ICal::icalcalendar_new($path);
$self->[1] = $nodelete;
die "Net::ICal::Store::new::Couldn't open calendar for dir \"$path\"" if !$self->[0];
bless $self,$package;
return $self;
}
sub _impl
{
my $self = shift;
return $self->[0];
}
sub new_from_ref
{
}
sub DESTROY {
my $self = shift;
return if !$self;
return if !$self->_impl();
Net::ICal::icalcalendar_free($self->_impl());
}
sub lock{
my $self = shift;
my $comp = shift;
my $impl = $self->[0];
}
sub unlock{
my $self = shift;
my $comp = shift;
my $impl = $self->[0];
}
sub islocked{
my $self = shift;
my $comp = shift;
my $impl = $self->[0];
}
sub ownlock{
my $self = shift;
my $comp = shift;
my $impl = $self->[0];
}
sub get_booked{
my $self = shift;
my $comp = shift;
my $impl = $self->[0];
my $store = Net::ICal::icalcalendar_get_booked($impl);
return Net::ICal::Store::new_from_ref($store,1);
}
sub get_incoming{
my $self = shift;
my $comp = shift;
my $impl = $self->[0];
my $store = Net::ICal::icalcalendar_get_incoming($impl);
return Net::ICal::Cluster::new_from_ref($store,1);
}
sub get_properties{
my $self = shift;
my $comp = shift;
my $impl = $self->[0];
my $store = Net::ICal::icalcalendar_get_properties($impl);
return Net::ICal::Cluster::new_from_ref($store,1);
}
sub get_freebusy{
my $self = shift;
my $comp = shift;
my $impl = $self->[0];
my $store = Net::ICal::icalcalendar_get_freebusy($impl);
return Net::ICal::Cluster::new_from_ref($store,1);
}
1;