6 |
## |
## |
7 |
## ---------------------------------------------------------------------------------------- |
## ---------------------------------------------------------------------------------------- |
8 |
## $Log$ |
## $Log$ |
9 |
|
## Revision 1.6 2003/02/21 01:47:53 joko |
10 |
|
## renamed core function |
11 |
|
## |
12 |
|
## Revision 1.5 2003/02/20 20:24:33 joko |
13 |
|
## + additional pre-flight checks |
14 |
|
## |
15 |
## Revision 1.4 2003/02/14 14:14:38 joko |
## Revision 1.4 2003/02/14 14:14:38 joko |
16 |
## + new code refactored here |
## + new code refactored here |
17 |
## |
## |
46 |
use Data::Dumper; |
use Data::Dumper; |
47 |
use Hash::Merge qw( merge ); |
use Hash::Merge qw( merge ); |
48 |
use libdb qw( hash2Sql ); |
use libdb qw( hash2Sql ); |
49 |
use Data::Transform::Deep qw( hash2object ); |
use Data::Transform::Deep qw( merge_to ); |
50 |
|
|
51 |
|
|
52 |
# get logger instance |
# get logger instance |
136 |
my $ident = shift; |
my $ident = shift; |
137 |
my $force = shift; |
my $force = shift; |
138 |
|
|
139 |
|
=pod |
140 |
|
#print "isa: ", UNIVERSAL::isa($self->{meta}->{$descent}->{storage}), "\n"; |
141 |
|
|
142 |
|
# this seems to be the first time we access this side, |
143 |
|
# so just check (again) for a valid storage handle |
144 |
|
if (! ref $self->{meta}->{$descent}->{storage}) { |
145 |
|
$logger->critical( __PACKAGE__ . "->_statloadNode( descent=$descent ident=$ident ): Storage handle undefined!" ); |
146 |
|
return; |
147 |
|
} |
148 |
|
=cut |
149 |
|
|
150 |
#$logger->debug( __PACKAGE__ . "->_statloadNode( descent=$descent ident=$ident )" ); |
#$logger->debug( __PACKAGE__ . "->_statloadNode( descent=$descent ident=$ident )" ); |
151 |
|
|
152 |
# fetch entry to retrieve checksum from |
# fetch entry to retrieve checksum from |
254 |
next; |
next; |
255 |
} |
} |
256 |
|
|
257 |
|
# 2.b check storage handle type |
258 |
|
my $dbType = $self->{meta}->{$descent}->{storage}->{locator}->{type}; |
259 |
|
if (!$dbType) { |
260 |
|
$logger->critical( __PACKAGE__ . "->touchNodeSet: Storage ( descent='$descent', dbKey='$dbkey' ) has no 'dbType' - configuration-error?" ); |
261 |
|
next; |
262 |
|
} |
263 |
|
|
264 |
# 3. check if descents (and nodes?) are actually available.... |
# 3. check if descents (and nodes?) are actually available.... |
265 |
# TODO: |
# TODO: |
266 |
# eventually pre-check mode of access-attempt (read/write) here to provide an "early-croak" if possible |
# eventually pre-check mode of access-attempt (read/write) here to provide an "early-croak" if possible |
269 |
# print Dumper($self->{meta}->{$descent}->{storage}->{locator}); |
# print Dumper($self->{meta}->{$descent}->{storage}->{locator}); |
270 |
|
|
271 |
|
|
|
my $dbType = $self->{meta}->{$descent}->{storage}->{locator}->{type}; |
|
272 |
my $nodeName = $self->{meta}->{$descent}->{nodeName}; |
my $nodeName = $self->{meta}->{$descent}->{nodeName}; |
273 |
my $accessorType = $self->{meta}->{$descent}->{accessorType}; |
my $accessorType = $self->{meta}->{$descent}->{accessorType}; |
274 |
my $accessorName = $self->{meta}->{$descent}->{accessorName}; |
my $accessorName = $self->{meta}->{$descent}->{accessorName}; |
474 |
# mix in (merge) values ... |
# mix in (merge) values ... |
475 |
# TODO: use Hash::Merge here? benchmark! |
# TODO: use Hash::Merge here? benchmark! |
476 |
# no! we'd need a Object::Merge here! it's *...2object* |
# no! we'd need a Object::Merge here! it's *...2object* |
477 |
hash2object($object, $map); |
merge_to($object, $map); |
478 |
|
|
479 |
# trace |
# trace |
480 |
#print Dumper($object); |
#print Dumper($object); |
506 |
# mix in values |
# mix in values |
507 |
#print Dumper($object); |
#print Dumper($object); |
508 |
# TODO: use Hash::Merge here??? |
# TODO: use Hash::Merge here??? |
509 |
hash2object($object, $map); |
merge_to($object, $map); |
510 |
#print Dumper($object); |
#print Dumper($object); |
511 |
#exit; |
#exit; |
512 |
|
|