package SL::DB::Cache;

use strict;
use warnings;

use Carp;

use parent qw(Rose::DB::Cache);

sub prepare_db {
  my ($self, $db, $entry) = @_;

  if (!$entry->is_prepared) {
    # if this a dummy kivitendo dbh, don't try to actually prepare this.
    if ($db->type =~ /KIVITENDO_EMPTY/) {
      return;
    }

    $entry->prepared(1);
  }

  if (!$db->dbh->ping) {
    $db->dbh(undef);
  }
}

1;

__END__

=head1 NAME

SL::DB::Cache - database handle caching for kivitendo

=head1 DESCRIPTION

This class provides database cache handling for kivitendo running
under FastCGI. It's based on Rose::DBx::Cache::Anywhere.

=head1 METHODS

=head2 prepare_db( I<rose_db>, I<entry> )

Overrides default method to always ping() dbh.
