NAME
    Data::Storage - Generic abstract storage mechanism

SYNOPSIS
        Data::Storage->new;

DESCRIPTION
    None yet. This is an early release; fully functional, but undocumented.
    The next release will have more documentation.

METHODS
    "new"
            my $obj = Data::Storage->new;
            my $obj = Data::Storage->new(%args);

        Creates and returns a new object. The constructor will accept as
        arguments a list of pairs, from component name to initial value. For
        each pair, the named component is initialized by calling the method
        of the same name with the given value. If called with a single hash
        reference, it is dereferenced and its key/value pairs are set as
        described before.

    "clear_log"
            $obj->clear_log;

        Clears the value.

    "clear_rollback_mode"
            $obj->clear_rollback_mode;

        Clears the boolean value by setting it to 0.

    "log"
            my $value = $obj->log;
            $obj->log($value);

        A basic getter/setter method. If called without an argument, it
        returns the value. If called with a single argument, it sets the
        value.

    "log_clear"
            $obj->log_clear;

        Clears the value.

    "rollback_mode"
            $obj->rollback_mode($value);
            my $value = $obj->rollback_mode;

        If called without an argument, returns the boolean value (0 or 1).
        If called with an argument, it normalizes it to the boolean value.
        That is, the values 0, undef and the empty string become 0;
        everything else becomes 1.

    "rollback_mode_clear"
            $obj->rollback_mode_clear;

        Clears the boolean value by setting it to 0.

    "rollback_mode_set"
            $obj->rollback_mode_set;

        Sets the boolean value to 1.

    "set_rollback_mode"
            $obj->set_rollback_mode;

        Sets the boolean value to 1.

    Data::Storage inherits from Class::Accessor::Complex,
    Class::Accessor::Constructor, and Class::Accessor::Constructor::Base.

    The superclass Class::Accessor::Complex defines these methods and
    functions:

        mk_abstract_accessors(), mk_array_accessors(), mk_boolean_accessors(),
        mk_class_array_accessors(), mk_class_hash_accessors(),
        mk_class_scalar_accessors(), mk_concat_accessors(),
        mk_forward_accessors(), mk_hash_accessors(), mk_integer_accessors(),
        mk_new(), mk_object_accessors(), mk_scalar_accessors(),
        mk_set_accessors(), mk_singleton()

    The superclass Class::Accessor defines these methods and functions:

        _carp(), _croak(), _mk_accessors(), accessor_name_for(),
        best_practice_accessor_name_for(), best_practice_mutator_name_for(),
        follow_best_practice(), get(), make_accessor(), make_ro_accessor(),
        make_wo_accessor(), mk_accessors(), mk_ro_accessors(),
        mk_wo_accessors(), mutator_name_for(), set()

    The superclass Class::Accessor::Installer defines these methods and
    functions:

        install_accessor()

    The superclass Class::Accessor::Constructor defines these methods and
    functions:

        _make_constructor(), mk_constructor(), mk_constructor_with_dirty(),
        mk_singleton_constructor()

    The superclass Data::Inherited defines these methods and functions:

        every_hash(), every_list(), flush_every_cache_by_key()

    The superclass Class::Accessor::Constructor::Base defines these methods
    and functions:

        STORE(), clear_dirty(), clear_hygienic(), clear_unhygienic(),
        contains_hygienic(), contains_unhygienic(), delete_hygienic(),
        delete_unhygienic(), dirty(), dirty_clear(), dirty_set(),
        elements_hygienic(), elements_unhygienic(), hygienic(),
        hygienic_clear(), hygienic_contains(), hygienic_delete(),
        hygienic_elements(), hygienic_insert(), hygienic_is_empty(),
        hygienic_size(), insert_hygienic(), insert_unhygienic(),
        is_empty_hygienic(), is_empty_unhygienic(), set_dirty(),
        size_hygienic(), size_unhygienic(), unhygienic(), unhygienic_clear(),
        unhygienic_contains(), unhygienic_delete(), unhygienic_elements(),
        unhygienic_insert(), unhygienic_is_empty(), unhygienic_size()

    The superclass Tie::StdHash defines these methods and functions:

        CLEAR(), DELETE(), EXISTS(), FETCH(), FIRSTKEY(), NEXTKEY(), SCALAR(),
        TIEHASH()

BUGS AND LIMITATIONS
    No bugs have been reported.

    Please report any bugs or feature requests through the web interface at
    <http://rt.cpan.org>.

INSTALLATION
    See perlmodinstall for information and options on installing Perl
    modules.

AVAILABILITY
    The latest version of this module is available from the Comprehensive
    Perl Archive Network (CPAN). Visit <http://www.perl.com/CPAN/> to find a
    CPAN site near you. Or see <http://search.cpan.org/dist/Data-Storage/>.

AUTHORS
    Marcel Grnauer, "<marcel@cpan.org>"

COPYRIGHT AND LICENSE
    Copyright 2004-2009 by the authors.

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

