X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=perl%2Flib%2FIDZebra.pm;fp=perl%2Flib%2FIDZebra.pm;h=8253bb51f83d4df0517bdfc033bafdcb778791ed;hb=e035737c20ac0caf47e9e48e3b11f006e9132e9c;hp=dd9365b56135766d9465f58b79c0581e35fae5b2;hpb=fc9684841bbfad0b625e7365b99bae7b7df737df;p=idzebra-moved-to-github.git diff --git a/perl/lib/IDZebra.pm b/perl/lib/IDZebra.pm index dd9365b..8253bb5 100644 --- a/perl/lib/IDZebra.pm +++ b/perl/lib/IDZebra.pm @@ -334,84 +334,12 @@ sub STORE { } -############# Class : IDZebra::RetrievalRecordBuf ############## - -package IDZebra::RetrievalRecordBuf; -@ISA = qw( IDZebra ); -%OWNER = (); -%BLESSEDMEMBERS = ( -); - -%ITERATORS = (); -*swig_buf_get = *IDZebrac::RetrievalRecordBuf_buf_get; -*swig_buf_set = *IDZebrac::RetrievalRecordBuf_buf_set; -*swig_len_get = *IDZebrac::RetrievalRecordBuf_len_get; -*swig_len_set = *IDZebrac::RetrievalRecordBuf_len_set; -sub new { - my $pkg = shift; - my @args = @_; - my $self = IDZebrac::new_RetrievalRecordBuf(@args); - return undef if (!defined($self)); - $OWNER{$self} = 1; - my %retval; - tie %retval, "IDZebra::RetrievalRecordBuf", $self; - return bless \%retval, $pkg; -} - -sub DESTROY { - return unless $_[0]->isa('HASH'); - my $self = tied(%{$_[0]}); - return unless defined $self; - delete $ITERATORS{$self}; - if (exists $OWNER{$self}) { - IDZebrac::delete_RetrievalRecordBuf($self); - delete $OWNER{$self}; - } -} - -sub DISOWN { - my $self = shift; - my $ptr = tied(%$self); - delete $OWNER{$ptr}; - }; - -sub ACQUIRE { - my $self = shift; - my $ptr = tied(%$self); - $OWNER{$ptr} = 1; - }; - -sub FETCH { - my ($self,$field) = @_; - my $member_func = "swig_${field}_get"; - my $val = $self->$member_func(); - if (exists $BLESSEDMEMBERS{$field}) { - return undef if (!defined($val)); - my %retval; - tie %retval,$BLESSEDMEMBERS{$field},$val; - return bless \%retval, $BLESSEDMEMBERS{$field}; - } - return $val; -} - -sub STORE { - my ($self,$field,$newval) = @_; - my $member_func = "swig_${field}_set"; - if (exists $BLESSEDMEMBERS{$field}) { - $self->$member_func(tied(%{$newval})); - } else { - $self->$member_func($newval); - } -} - - ############# Class : IDZebra::RetrievalRecord ############## package IDZebra::RetrievalRecord; @ISA = qw( IDZebra ); %OWNER = (); %BLESSEDMEMBERS = ( - buf => 'IDZebra::RetrievalRecordBuf', ); %ITERATORS = ();