/[pub]/suikawiki/script/lib/SuikaWiki/DB/Util.pm
Suika

Contents of /suikawiki/script/lib/SuikaWiki/DB/Util.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download)
Sun Oct 5 11:54:03 2003 UTC (21 years, 6 months ago) by wakaba
Branch: MAIN
Changes since 1.2: +19 -3 lines
Updated

1 wakaba 1.1
2 wakaba 1.2 =head1 NAME
3    
4     SuikaWiki::DB::Util --- SuikaWiki WikiDatabase: WikiDatabase modules common utilities
5    
6     =head1 DESCRIPTION
7    
8     This module provides some functions expected to be useful for most WikiDatabase
9     implememtation modules.
10    
11     This module is part of SuikaWiki.
12    
13     =cut
14    
15 wakaba 1.1 package SuikaWiki::DB::Util;
16 wakaba 1.2 use strict;
17 wakaba 1.3 our $VERSION=do{my @r=(q$Revision: 1.2 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r};
18 wakaba 1.1 our $Err;
19    
20 wakaba 1.2 =head1 FUNCTIONS
21 wakaba 1.1
22     =over 4
23    
24     =item $err = SuikaWiki::DB::Util->error_handler ()
25    
26     Returns error handler object (Message::Util::Error instance).
27    
28     =cut
29    
30     sub error_handler ($;%) {
31     return $Err if $Err;
32     my (undef, %opt) = @_;
33    
34     require Message::Util::Error;
35 wakaba 1.2 $Err = Message::Util::Error->new ({
36 wakaba 1.1 ## Error level:
37     ## - stop: cannot continue the operation (but other operations
38     ## might be able to be performed)
39     ## - fatal: cannot continue any operation anymore
40     ## - warn: simple warning or harmless error
41     ## - debug: debug message
42     DB_OPEN => {
43     level => 'fatal',
44     description => q(Can't open database),
45     },
46     DB_UNSUPPORTED_FORMAT => {
47     level => 'stop',
48     description => q(Unsupported format of database),
49     },
50     DB_SAVE => {
51     level => 'stop',
52     description => q(Can't save database. Data might be lost),
53     },
54 wakaba 1.3 DB_WROTE => {
55     level => 'detaillog',
56     description => 'Wrote successfully',
57     },
58 wakaba 1.1 DB_CLOSE => {
59     level => 'warn',
60     description => q(Can't close database),
61     },
62 wakaba 1.3 DB_CLOSED => {
63     level => 'detaillog',
64     description => q(DB is closed successfully),
65     },
66     DB_DESTROY => {
67     level => 'detaillog',
68     description => q(instance of DB is destroyed),
69     },
70 wakaba 1.1 LOCK_START => {
71     level => 'fatal',
72     description => q(Can't lock),
73     },
74     LOCK_END => {
75     level => 'warn',
76     description => q(Can't unlock),
77     },
78     KEY_INVALID_NAME => {
79     level => 'stop',
80     description => q(Invalid key name),
81     },
82     KEY_INVALID_NS_NAME => {
83     level => 'stop',
84     description => q(Invalid key namespace),
85     },
86     KEY_SAVE => {
87     level => 'stop',
88 wakaba 1.3 description => q(Can't save to the database),
89 wakaba 1.1 },
90 wakaba 1.3 KEY_SAVE_LOCKED => {
91     level => 'stop',
92     description => q(Can't save to the database because it is locked),
93     },
94 wakaba 1.1 UNKNOWN => {
95     level => 'fatal',
96     description => 'Unknown error',
97     },
98     -error_handler => $opt{-error_handler},
99 wakaba 1.2 });
100     $Err;
101 wakaba 1.1 }
102    
103 wakaba 1.2 =item $locker = SuikaWiki::DB::Util->new_lock ($options)
104 wakaba 1.1
105     Returns new locker object (SuikaWiki::DB::Util::Lock instance).
106    
107     =cut
108    
109     sub new_lock ($$) {
110     require SuikaWiki::DB::Util::Lock;
111     return SuikaWiki::DB::Util::Lock->new (%{$_[1]});
112     }
113    
114     =back
115    
116     =cut
117    
118 wakaba 1.2 =head1 SEE ALSO
119    
120     C<SuikaWiki::DB>
121    
122     =head1 AUTHOR
123    
124     Wakaba <w@suika.fam.cx>.
125    
126     =head1 LICENSE
127    
128     Copyright AUTHOR 2003.
129    
130     This program is free software; you can redistribute it and/or
131     modify it under the same terms as Perl itself.
132    
133     =cut
134    
135 wakaba 1.3 1; # $Date: 2003/08/06 02:54:40 $

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24