The PCLT-DB package
"PCLT" is an abbreviation for "Parametric Composable Localizable Templates" - in fact it should also hold Detalizable. Term "Detailizable content (message)" in this package has a following meaning: some content, representing which it is possible to regulate, in how much details it is represented.
Conceptually, this package is a powerful extension to the well known Show class, that (extension) is thought to be embeded in any Haskell program, which requires multilanguage support, and/or where messages should be detailizable.
For more information about PCLT, read in it's description in it's own Cabal file.
By the base package (PCLT http://hackage.haskell.org/package/PCLT) the templates are provided to be stored statically in module declarations using Text.PCLT.HasStaticRawPCLTs.HasStaticRawPCLTs class instaniations.
The PCST-DB package adds a possibility to store templates in DB (under PostgreSQL v8.4. (not less)). ER diagram: http://i1.fastpic.ru/big/2009/1212/f0/5b9845716e5a6984e9bc9d62a61928f0.png
The following units are storable in DB:
collections of localizable templates
collections (of localizable templates) compositions
configurations of PCLT catalogs
localizable templates detalization policies
For each catalog in DB there is stored a special flag "catalog data or config changed". The flag gets raised by an army of triggers, that watches every table, and is thought to get dropped by a program, which uses DB catalog. Drop the flag right before catalog update from DB.
Unfortunately, the current implementation of this flagging system constraints the number of agents that update their catalogs from DB by only one (because, when agent updates it's catalog, it drops the flag, and other agents don't know that flag was risen, so they can't know if version of catalog in their operative memory is older then in DB or not).
But this limitation removal is planned as a first ToDo in the next version of PCLT-DB.
|Dependencies||base (4.*), bytestring, containers, convertible (≥1.0.6), HDBC (≥2.2.1), HDBC-postgresql (≥188.8.131.52), mtl, PCLT|
|Copyright||Copyright (c) 2009 Andrejs Sisojevs|
|Author||Andrejs Sisojevs <firstname.lastname@example.org>|
|Maintainer||Andrejs Sisojevs <email@example.com>|
|Upload date||Sat Dec 12 08:15:37 UTC 2009|
|Built on||ghc-6.12, ghc-7.0|