#to be used in conjunction with Cache::Static eval { require Cache::Static; require Cache::Static::XML_Comma_Util; }; if($@) { XML::Comma::Log->warn("disabling cache_static.macro, Cache::Static not found"); } else { my $ROOT = $Cache::Static::ROOT; my @stores = $self->elements('store'); $self->add_method( '_scache_enabled', sub { return 1; } ); foreach my $store (@stores) { $store->add_hook ( 'post_store_hook', sub { my $doc = shift; my $doc_key = my $store_spec = $doc->doc_key(); $store_spec =~ s/\|[^\|]*$//; Cache::Static::_write_spec_timestamp("XML::Comma|Doc|$doc_key"); Cache::Static::_write_spec_timestamp("XML::Comma|Store|$store_spec"); } ); $store->add_hook ( 'erase_hook', sub { my $doc = shift; my $doc_key = my $store_spec = $doc->doc_key(); $store_spec =~ s/\|[^\|]*$//; Cache::Static::_unlink_spec_timestamp("XML::Comma|Doc|$doc_key"); Cache::Static::_write_spec_timestamp("XML::Comma|Store|$store_spec"); } ); } } 1;