/[cvs]/nfo/perl/libs/Data/Storage/Container.pm
ViewVC logotype

Diff of /nfo/perl/libs/Data/Storage/Container.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4 by jonen, Wed Dec 4 07:38:07 2002 UTC revision 1.6 by joko, Thu Jan 30 21:44:00 2003 UTC
# Line 3  Line 3 
3  #  $Id$  #  $Id$
4  #  #
5  #  $Log$  #  $Log$
6    #  Revision 1.6  2003/01/30 21:44:00  joko
7    #  + temporary fix: (FIXME) now connecting to storage on storagehandle-instantiation
8    #
9    #  Revision 1.5  2003/01/19 02:39:57  joko
10    #  + moved 'deep_copy' from module 'libp' to module 'Data::Transform::Deep'
11    #  + preserved order for hashes '$self->{config}' and '$self->{locator}' by using Tie::IxHash
12    #
13  #  Revision 1.4  2002/12/04 07:38:07  jonen  #  Revision 1.4  2002/12/04 07:38:07  jonen
14  #  + deep copy  #  + deep copy
15  #  #
# Line 31  use warnings; Line 38  use warnings;
38  # get logger instance  # get logger instance
39  my $logger = Log::Dispatch::Config->instance;  my $logger = Log::Dispatch::Config->instance;
40    
41  use libp qw( deep_copy );  
42    # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   main
43    use Tie::IxHash;
44  use Data::Dumper;  use Data::Dumper;
45    
46    use Data::Transform::Deep qw( deep_copy );
47  use Data::Storage;  use Data::Storage;
48  #use Data::Storage::Locator;  #use Data::Storage::Locator;
49    
# Line 46  sub new { Line 57  sub new {
57    $logger->debug( __PACKAGE__ . "->new( @args )" );    $logger->debug( __PACKAGE__ . "->new( @args )" );
58    
59    my $self = { @_ };    my $self = { @_ };
60    return bless $self, $class;    bless $self, $class;
61      
62      # preserve order of configuration variables
63      #$self->{config} = {};
64      tie %{$self->{config}}, 'Tie::IxHash';
65      tie %{$self->{locator}}, 'Tie::IxHash';
66      
67      return $self;
68  }  }
69    
70  sub addConfig {  sub addConfig {
# Line 116  sub initLocator { Line 134  sub initLocator {
134  sub initLocators {  sub initLocators {
135    my $self = shift;    my $self = shift;
136    foreach (keys %{$self->{config}}) {    foreach (keys %{$self->{config}}) {
137        #print $_, "\n";
138      $self->initLocator($_, $self->{config}->{$_}) if !/^_/;      $self->initLocator($_, $self->{config}->{$_}) if !/^_/;
139    }    }
140    #print "locs: ", Dumper($self->{locator});    #print "locs: ", Dumper($self->{locator});
# Line 135  sub initStorage { Line 154  sub initStorage {
154    $logger->info( __PACKAGE__ . " is booting storage declared by locator \"$name\"" );    $logger->info( __PACKAGE__ . " is booting storage declared by locator \"$name\"" );
155    
156    my $storage = Data::Storage->new($locator);    my $storage = Data::Storage->new($locator);
157      
158      # TODO: do below (after 'testAvailability' and 'testIntegrity') again!!!
159      $storage->connect();
160    
161    my $log_prefix = __PACKAGE__ . "->initStorage: ";    my $log_prefix = __PACKAGE__ . "->initStorage: ";
162    $log_prefix .= "dsn=\"$self->{locator}->{$name}->{dsn}\"" if $self->{locator}->{$name}->{dsn};    $log_prefix .= "dsn=\"$self->{locator}->{$name}->{dsn}\"" if $self->{locator}->{$name}->{dsn};
# Line 162  sub initStorage { Line 184  sub initStorage {
184    # don't connect right here, do an implicit connect on (later) usage    # don't connect right here, do an implicit connect on (later) usage
185    # maybe set ->{meta}->{connectmethod} = "connect" here    # maybe set ->{meta}->{connectmethod} = "connect" here
186    #return unless $storage->connect();    #return unless $storage->connect();
187    $storage->connect() if $locator->{status}->{integrity};    #$storage->connect() if $locator->{status}->{integrity};
188    
189    # should we check emptyness?    # should we check emptyness?
190    if ($locator->{status}->{availability} && $locator->{test_emptyness}) {    if ($locator->{status}->{availability} && $locator->{test_emptyness}) {
# Line 202  sub initStorage { Line 224  sub initStorage {
224  sub initStorages {  sub initStorages {
225    my $self = shift;    my $self = shift;
226    foreach (keys %{$self->{locator}}) {    foreach (keys %{$self->{locator}}) {
227        #print $_, "\n";
228      $self->initStorage($_);      $self->initStorage($_);
229    }    }
230  }  }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.6

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed