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

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

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

revision 1.3 by jonen, Mon Dec 16 05:08:22 2002 UTC revision 1.7 by joko, Thu Dec 19 16:37:54 2002 UTC
# Line 247  sub make_id Line 247  sub make_id
247      return sprintf "%d%0$self->{cid_size}d", $id, $class_id;      return sprintf "%d%0$self->{cid_size}d", $id, $class_id;
248    }    }
249    
250    
251    # create global unique identifers using Data::UUID
252    sub make_guid
253      {
254        my $self = shift;
255    
256        my $guid;
257    
258        # try to use Data::UUID first ...
259        eval("use Data::UUID;");
260        if (!$@) {
261          my $ug = Data::UUID->new();
262          $guid = $ug->create_str();
263          
264        # ... if this fails, try to fallback to Data::UUID::PurePerl instead ...
265        } else {
266          eval("use Data::UUID::PurePerl;");
267          if (!$@) {
268            $guid = Data::UUID::PurePerl::generate_id();
269          } else {
270            croak "couldn't create globally unique identifier";
271          }
272        }
273        
274        return $guid;
275      }
276    
277  sub make_1st_id_in_tx  sub make_1st_id_in_tx
278    {    {
279      my ($self) = @_;      my ($self) = @_;
# Line 455  sub _insert Line 482  sub _insert
482      return $self->id($obj)      return $self->id($obj)
483        if $self->id($obj);        if $self->id($obj);
484    
485            # insert global unique identifier in object to persist across re-deploys
486              $obj->{guid} = $self->make_guid();
487            
488      $saving->insert($obj);      $saving->insert($obj);
489    
490      my $class_name = ref $obj;      my $class_name = ref $obj;
# Line 484  sub _insert Line 514  sub _insert
514    
515            if ($Tangram::TRACE) {            if ($Tangram::TRACE) {
516                  printf $Tangram::TRACE "executing %s with (%s)\n",                  printf $Tangram::TRACE "executing %s with (%s)\n",
517                  $cache->{INSERTS}[$i],                  $cache->{INSERTS}[$i],
518                  join(', ', map { $_ || 'NULL' } @state[ @{ $fields->[$i] } ] )                  join(', ', map { $_ || 'NULL' } @state[ @{ $fields->[$i] } ] )
519            }            }
520    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.7

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