Workflow::Persister - Base class for workflow persistence
# Associate a workflow with a persister <workflow type="Ticket" persister="MainDatabase"> ... # Declare a persister <persister name="MainDatabase" class="Workflow::Persister::DBI" driver="MySQL" dsn="DBI:mysql:database=workflows" user="wf" password="mypass"/> # Declare a separate persister <persister name="FileSystem" class="Workflow::Persister::File" path="/path/to/my/workflow"/>
This is the base class for persisting workflows. It does not implement anything itself but actual implementations should subclass it to ensure they fulfill the contract.
The job of a persister is to create, update and fetch the workflow object plus any data associated with the workflow. It also creates and fetches workflow history records.
create_workflow( $workflow )
Generate an ID for the workflow, serialize the workflow data (ID and state) and set the ID in the workflow.
update_workflow( $workflow )
Update the workflow state.
fetch_workflow( $workflow_id )
Retrieve the workflow data corresponding to
$workflow_id. It not found return undef, if found return a hashref with the data.
create_history( $workflow, @history )
Serialize all objects in
@history for later retrieval.
fetch_history( $workflow )
Return list of Workflow::History objects.
Copyright (c) 2003-2004 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.
Chris Winters <email@example.com>