The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Perl::Dist::WiX::DirectoryCache - Cache of <Directory> tag objects.

VERSION

This document describes Perl::Dist::WiX::DirectoryCache version 1.250.

SYNOPSIS

        # Since this is a singleton, ->instance() retrieves the cache object
        # (creating the cache object if needed)
        my $cache = Perl::Dist::WiX::DirectoryCache->instance();
        
        $cache->add_to_cache($directory_object, $fragment_object);
        
        my $exists = $cache->exists_in_cache($directory_object);
        
        my $fragment_id = $cache->get_previous_fragment($directory_object);

        $cache->delete_cache_entry($directory_object);

DESCRIPTION

This object is a singleton designed to cache objects representing all directories to be created by a Perl::Dist::WiX-based installer.

The cache is used during the regenerate_fragments task so that a directory (defined by a Perl::Dist::WiX::Tag::Directory object) is only defined once, no matter how many fragments it is used in. (There can be as many references to a directory, defined by Perl::Dist::WiX::Tag::DirectoryRef objects, as required.)

INTERFACE

instance

Returns the cache object. (Use this instead of new().)

add_to_cache

        $cache->add_to_cache($directory_object, $fragment_object);
        

This method adds the directory object to the cache, and references the fact that it is being created in the fragment object.

exists_in_cache

        my $exists = $cache->exists_in_cache($directory_object);
        

This method returns a true value if a directory object representing the same directory is already in the cache. Otherwise, it returns a false value.

get_previous_fragment

        my $fragment_id = $cache->get_previous_fragment($directory_object);
        

This method returns the ID of the fragment that's already creating this directory. If there is no fragment already creating this directory, this method returns an undefined value.

delete_cache_entry

        $cache->delete_cache_entry($directory_object);
        

This method removes the ID of the fragment that's already assigned to this directory in the cache.

This method is used when a directory that two or more fragments want to create is added to the directory tree object instead.

delete_cache_entry

        $cache->clear_cache();

This clears the cache for a new build.

DIAGNOSTICS

See Perl::Dist::WiX::Diagnostics for a list of exceptions that this module can throw.

BUGS AND LIMITATIONS (SUPPORT)

Bugs should be reported via:

1) The CPAN bug tracker at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Perl-Dist-WiX if you have an account there.

2) Email to <bug-Perl-Dist-WiX@rt.cpan.org> if you do not.

For other issues, contact the topmost author.

AUTHORS

Curtis Jewell <csjewell@cpan.org>

Adam Kennedy <adamk@cpan.org>

SEE ALSO

Perl::Dist::WiX, http://ali.as/, http://csjewell.comyr.com/perl/

COPYRIGHT AND LICENSE

Copyright 2009 - 2010 Curtis Jewell.

Copyright 2008 - 2009 Adam Kennedy.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

The full text of the license can be found in the LICENSE file included with this distribution.