Name

File::DataClass::Storage - Storage base class

Version

This document describes version v0.26.$Rev: 1 $

Synopsis

Description

Storage base class

Configuration and Environment

Defines the following attributes;

backup

Extension appended to the file name. Used to create a backup of the updated file. Defaults to the null string so no backup created

encoding

Used by subclasses to encode/decode the file data on ouput/input. Defaults to the null string

extn

The filename extension for this type of file. Usually overridden in the subclass. Default to the null string

schema

A weakened schema object reference

Subroutines/Methods

create_or_update

$bool = $self->create_or_update( $path, $result, $updating, $condition );

Does the heavy lifting for "insert" and "update"

delete

$bool = $storage->delete( $path, $result );

Deletes the specified element object returning true if successful. Throws an error otherwise. Path is an instance of File::DataClass::IO

dump

$data = $storage->dump( $path, $data );

Dumps the data to the specified path. Path is an instance of File::DataClass::IO

insert

$bool = $storage->insert( $path, $result );

Inserts the specified element object returning true if successful. Throws an error otherwise. Path is an instance of File::DataClass::IO

load

$hash_ref = $storage->load( @paths );

Loads each of the specified files merging the resultant hash ref which it returns. Paths are instances of File::DataClass::IO

meta_pack

meta_unpack

read_file

($data, $mtime) = $self->read_file( $path, $for_update ):

Read a file from cache or disk

select

$hash_ref = $storage->select( $path );

Returns a hash ref containing all the elements of the type specified in the schema. Path is an instance of File::DataClass::IO

txn_do

Executes the supplied coderef wrapped in lock on the pathname

update

$bool = $storage->update( $path, $result, $updating, $condition );

Updates the specified element object returning true if successful. Throws an error otherwise. Path is an instance of File::DataClass::IO

validate_params

Diagnostics

None

Dependencies

File::DataClass::HashMerge

Incompatibilities

There are no known incompatibilities in this module

Bugs and Limitations

There are no known bugs in this module. Please report problems to the address below. Patches are welcome

Author

Peter Flanigan, <Support at RoxSoft.co.uk>

License and Copyright

Copyright (c) 2013 Peter Flanigan. All rights reserved

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

This program is distributed in the hope that it will be useful, but WITHOUT WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE