NAME

Workflow::Persister::File - Persist workflow and history to the filesystem

VERSION

This documentation describes version 1.62 of this package

SYNOPSIS

<persister name="MainPersister"
           class="Workflow::Persister::File"
           path="/home/workflow/storage"/>

DESCRIPTION

Main persistence class for storing the workflow and workflow history records to a filesystem for later retrieval. Data are stored in serialized Perl data structure files.

METHODS

constitute_object

This method deserializes an object.

Takes a single parameter of an filesystem path pointing to an object

Returns the re-instantiated object or dies.

create_history

Serializes history records associated with a workflow object

Takes two parameters: a workflow object and an array of workflow history objects

Returns: provided array of workflow history objects upon success

create_workflow

Serializes a workflow into the persistance entity configured by our workflow.

Takes a single parameter: a workflow object

Returns a single value, a id for unique identification of out serialized workflow for possible deserialization.

fetch_history

Deserializes history records associated with a workflow object

Takes a single parameter: a workflow object

Returns an array of workflow history objects upon success

fetch_workflow

Deserializes a workflow from the persistance entity configured by our workflow.

Takes a single parameter: the unique id assigned to our workflow upon serialization (see "create_workflow").

Returns a hashref consisting of two keys:

  • state, the workflows current state

  • last_update, date indicating last update

init ( \%params )

Method to initialize the persister object. Sets up the configured generators

Throws a Workflow::Exception if a valid filesystem path is not provided with the parameters.

serialize_object

Method that writes a given object to a given path.

Takes two parameters: path (a filesystem path) and an object

Throws Workflow::Exception if unable to serialize the given object to the given path.

Returns: Nothing

update_workflow

Updates a serialized workflow in the persistance entity configured by our workflow.

Takes a single parameter: a workflow object

Returns: Nothing

TODO

  • refactor "constitute_object", no checks are made on filesystem prior to deserialization attempt.

SEE ALSO

COPYRIGHT

Copyright (c) 2003-2023 Chris Winters. All rights reserved.

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

Please see the LICENSE

AUTHORS

Please see Workflow