.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.32 .\" .\" Standard preamble: .\" ======================================================================== .de Sh \" Subsection heading .br .if t .Sp .ne 5 .PP \fB\\$1\fR .PP .. .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. | will give a .\" real vertical bar. \*(C+ will give a nicer C++. Capital omega is used to .\" do unbreakable dashes and therefore won't be available. \*(C` and \*(C' .\" expand to `' in nroff, nothing in troff, for use with C<>. .tr \(*W-|\(bv\*(Tr .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .\" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .hy 0 .if n .na .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "WWWdb::Plugin 3" .TH WWWdb::Plugin 3 "2003-04-15" "perl v5.8.8" "User Contributed Perl Documentation" .SH "NAME" WWWdb::Plugin \- Plugins for WWWdb .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use WWWdb::Plugin; .Ve .PP .Vb 3 \& $oPlugin = Plugin->new($cName, \& ["HasPrePost" => $bHasPrePost,] \& ["HasMy" => $bHasMy]); .Ve .PP .Vb 1 \& $cResult = $oPlugin->Call(@lParams); .Ve .PP .Vb 1 \& $bResult = $oPlugin->IsDefined($cType); .Ve .PP .Vb 1 \& $cName = $oPlugin->getName(); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" .SH "The Plugin class" .IX Header "The Plugin class" Plugins are one of the base\-technology, which makes WWWdb so flexible. It allows the user, to plug in his own modules \fIbefore\fR, \fIafter\fR and/or \fIinstead\fR of the system\-routine. .PP An example demonstrates, how this works. Lets assume we have a subroutine named \fIPlugin\fR. If we want to add functionality, \fIbefore\fR this routine is called we need a own plugin called \fIPrePlugin\fR. For additional functionality \fIafter\fR the call of the Routine we have to define a routine called \fIPostPlugin\fR. .PP But what, if we want to replace the default plugin completely? Ok, then we must define the subroutine \fIMyPlugin\fR. If it is defined, this subroutine instead of the original \fIPlugin\fR is called. .Sh "Note" .IX Subsection "Note" .RS 4 Currently the plugins are expected in the main:: name\-space. .RE .Sh "Class Methods" .IX Subsection "Class Methods" .IP "\fBnew\fR" 4 .IX Item "new" .Vb 3 \& $oPlugin = Plugin->new($cName, \& ["HasPrePost" => $bHasPrePost,] \& ["HasMy" => $bHasMy]); .Ve .Sp With this method, a new plugin can be allocated. The \fIName\fR\-Parameter contains the base-name of the subroutines. The \fIHasPrePost\fR and \&\fIHasMy\fR\-parameters control, what types of plugins are searched, the defaults are \fI0\fR. .IP "\fBCall\fR" 4 .IX Item "Call" .Vb 1 \& $cResult = $oPlugin->Call(@lParams); .Ve .Sp Calls the plugins, depending on the Has...\-flags given at creation time and the availability of the subroutines. The results of the subroutines are concatenated and will be returned. The given parameters were evaluated and passed to the plugin\-routines. .IP "\fBIsDefined\fR" 4 .IX Item "IsDefined" .Vb 1 \& $bResult = $oPlugin->IsDefined($cType); .Ve .Sp Checks for this plugin, if a subroutine for one of the specified types \fIPre\fR, \fIPost\fR, \fIMy\fR or \fIDefault\fR is defined. If it is, \fI1\fR is returned; \fI0\fR if not. For any other types \fIundef\fR will be given back. .Sh "Class Attributes" .IX Subsection "Class Attributes" .IP "\fBName\fR" 4 .IX Item "Name" .Vb 1 \& $cName = $oPlugin->getName(); .Ve .Sp The base-name of this Plugin. (Read\-only) .IP "\fBHasPrePost\fR" 4 .IX Item "HasPrePost" .Vb 1 \& $bHasPrePost = $oPlugin->getHasPrePost(); .Ve .Sp True, when this Plugin could have a Pre\- or Post\-Plugin. (Read\-only, private) .IP "\fBHasMy\fR" 4 .IX Item "HasMy" .Vb 1 \& $bHasMy = $oPlugin->getHasMy(); .Ve .Sp True, when this Plugin could be replaced by a My\-Plugin. (Read\-only, private)