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 from the XML resource. Should return an array ref of styles. The style entries are hashes refs with required keys 'href' and 'type'.

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).