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

Diff of /nfo/perl/libs/Data/Storage/Handler/Tangram.pm

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

revision 1.1 by cvsjoko, Thu Oct 10 03:44:07 2002 UTC revision 1.2 by joko, Thu Oct 17 00:10:05 2002 UTC
# Line 3  Line 3 
3  #  $Id$  #  $Id$
4  #  #
5  #  $Log$  #  $Log$
6    #  Revision 1.2  2002/10/17 00:10:05  joko
7    #  + removed dependency from tsobj.pm, schema is now independent
8    #  + sub getNewPerlObjectByPkgName
9    #  + sub deploySchema
10    #  + sub retreatSchema
11    #
12  #  Revision 1.1  2002/10/10 03:44:07  cvsjoko  #  Revision 1.1  2002/10/10 03:44:07  cvsjoko
13  #  + new  #  + new
14  #  #
# Line 27  our $metainfo = { Line 33  our $metainfo = {
33    'disconnectMethod' => 'disconnect',    'disconnectMethod' => 'disconnect',
34  };  };
35    
36    sub getNewPerlObjectByPkgName {
37      my $pkgname = shift;
38      my $args = shift;
39      my $evstring = "use $pkgname;";
40      eval($evstring);
41      return $pkgname->new($args);
42    }
43    
44  sub connect {  sub connect {
45    
46      my $self = shift;      my $self = shift;
# Line 34  sub connect { Line 48  sub connect {
48      my $dsn = shift;      my $dsn = shift;
49      $dsn ||= $self->{dbi}->{dsn};      $dsn ||= $self->{dbi}->{dsn};
50            
51      $logger->debug( __PACKAGE__ . "->connect($dsn)" );      $logger->debug( __PACKAGE__ . "->connect( dsn $dsn )" );
52            
53      #my $storage = Tangram::Relational->connect( $schema, $dsn );      #my $storage = Tangram::Relational->connect( $schema, $dsn );
54      #my $storage = Tangram::mysql->connect( $schema, $dsn );      #my $storage = Tangram::mysql->connect( $schema, $dsn );
# Line 45  sub connect { Line 59  sub connect {
59  #      return;  #      return;
60  #    }  #    }
61    
62        my $obj = getNewPerlObjectByPkgName($self->{schema}, { EXPORT_OBJECTS => $self->{classnames} } );
63      require 'OSA/tsobj.pm';      $self->{schema_tangram} = $obj->getSchema();
64      tsobj::initSchema();      
65      #sleep 1;      #$self->{COREHANDLE} = Tangram::Relational->connect( $schema, $dsn );
66      my $schema = tsobj::getSchema();      $self->{COREHANDLE} = Tangram::Relational->connect( $self->{schema_tangram}, $dsn );
     $self->{COREHANDLE} = Tangram::Relational->connect( $schema, $dsn );  
67        
68      #$self->{STORAGEHANDLE_UNDERLYING} = $self->getUnderlyingStorage();      #$self->{STORAGEHANDLE_UNDERLYING} = $self->getUnderlyingStorage();
69      #$self->{STORAGEHANDLE_UNDERLYING}->_configureCOREHANDLE();      #$self->{STORAGEHANDLE_UNDERLYING}->_configureCOREHANDLE();
# Line 93  sub _getSubLayerHandle { Line 106  sub _getSubLayerHandle {
106        
107    # hack, make more generic!    # hack, make more generic!
108    if (!$self->{STORAGE_SUBLAYER}) {    if (!$self->{STORAGE_SUBLAYER}) {
109      my $loc = new Data::Storage::Locator( type => "DBI", dbi => $self->{dbi}, COREHANDLE => $self->{COREHANDLE}->{db} );      my $loc = Data::Storage::Locator->new( type => "DBI", dbi => $self->{dbi}, COREHANDLE => $self->{COREHANDLE}->{db} );
110      $self->{STORAGE_SUBLAYER} = new Data::Storage( $loc, { protected => 1 } );      $self->{STORAGE_SUBLAYER} = Data::Storage->new( $loc, { protected => 1 } );
111      #$self->{STORAGE_UNDER_THE_HOOD}->{STORAGEHANDLE}->_configureCOREHANDLE();      #$self->{STORAGE_UNDER_THE_HOOD}->{STORAGEHANDLE}->_configureCOREHANDLE();
112      #$self->{STORAGE_UNDER_THE_HOOD}->_configureCOREHANDLE();      #$self->{STORAGE_UNDER_THE_HOOD}->_configureCOREHANDLE();
113    }    }
# Line 144  sub configureCOREHANDLE { Line 157  sub configureCOREHANDLE {
157    
158  }  }
159    
160    sub deploySchema {
161      my $self = shift;
162      #my $dsn = $self->{locator}->{dbi}->{dsn};
163      my $dsn = $self->{dbi}->{dsn};
164      my $ok;
165      if ( my $dbh = DBI->connect($dsn, '', '', {
166                                                          PrintError => 0,
167                                                        } ) ) {
168        $ok = Tangram::Relational->deploy($self->{schema}, $dbh );
169        $dbh->disconnect();
170      }
171      return $ok;
172    }
173    
174    sub retreatSchema {
175      print "retreat\n";
176      my $self = shift;
177      #my $dsn = $self->{locator}->{dbi}->{dsn};
178      my $dsn = $self->{dbi}->{dsn};
179      my $ok;
180      if ( my $dbh = DBI->connect($dsn, '', '', {
181                                                          PrintError => 0,
182                                                        } ) ) {
183        $ok = Tangram::Relational->retreat($self->{schema}, $dbh );
184        $dbh->disconnect();
185      }
186      return $ok;
187    }
188    
189  1;  1;

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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