--- nfo/perl/libs/Data/Storage/Handler/Tangram.pm 2002/12/05 07:59:04 1.13 +++ nfo/perl/libs/Data/Storage/Handler/Tangram.pm 2002/12/05 09:40:30 1.14 @@ -1,8 +1,11 @@ ############################################ # -# $Id: Tangram.pm,v 1.13 2002/12/05 07:59:04 joko Exp $ +# $Id: Tangram.pm,v 1.14 2002/12/05 09:40:30 jonen Exp $ # # $Log: Tangram.pm,v $ +# Revision 1.14 2002/12/05 09:40:30 jonen +# + added option->{destroy} at getObject for unloading all instance +# # Revision 1.13 2002/12/05 07:59:04 joko # + now using Tie::SecureHash as a base for the COREHANDLE # + former public COREHANDLE becomes private _COREHANDLE now @@ -489,6 +492,10 @@ sub getObject { my $self = shift; my $oid = shift; + my $options = shift; + # TODO: create a deep_unload method + # unload($oid) will only unload object, not deep object hashes + $self->{_COREHANDLE}->unload() if($options->{destroy}); # TODO: review this #if (!$self->{COREHANDLE}) { return; } return $self->{_COREHANDLE}->load($oid); @@ -498,10 +505,13 @@ my $self = shift; my $oid = shift; my $options = shift; - my $obj = $self->getObject($oid); + my $obj = $self->getObject($oid, $options); my $deref = var_deref($obj); var2utf8($deref) if ($options->{utf8}); - undef($obj) if($options->{destroy}); + #$obj->clear_refs; + #$self->{COREHANDLE}->unload($obj) if($options->{destroy}); + #$obj->DESTROY; + #undef($obj) if($options->{destroy}); return $deref; }