The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Apache::AxKit::Provider - base Provider class

SYNOPSIS

Override the base Provider class and enable it using:

    AxProvider MyClass
    
    # alternatively use:
    # PerlSetVar AxProvider MyClass

DESCRIPTION

The Provider class is used to read in the data source for the given URL. The default Provider is Provider::File, which reads from the filesystem, although obviously you can read from just about anywhere.

Should you wish to override the default Provider, these are the methods you need to implement:

process()

Determine whether or not to process this URL. For example, you don't want to process a directory request, or if the resource doesn't exist. Return 1 to tell AxKit to process this URL, or die with a Declined exception (with a reason) if you do not wish to process this URL.

mtime()

Return the last modification time in days before the current time.

get_styles()

Extract the stylesheets and external entities from the XML resource. Should return a list of ($styles, $ext_ents). Both are array refs, the style entries are hashes refs with required keys 'href' and 'type'. The external entities entries are scalars containing the system identifier of the external entity.

get_fh()

This method should return an open filehandle, or die if that's not possible.

get_strref()

This method returns a reference to a scalar containing the contents of the stylesheet, or die if that's not possible. At least one of get_fh or get_strref must work.

key()

This method should return a "key" value that is unique to this URL.

get_ext_ent_handler()

This should return a sub reference that can be used instead of XML::Parser's default external entity handler. See the XML::Parser documentation for what this sub should do (or look at the code in the File provider).

exists()

Return 1 if the resource exists (and is readable).