12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- """Simple base-classes for extensions and filters.
-
- None of the filter and extension functions are considered 'optional' by the
- framework. These base-classes provide simple implementations for the
- Initialize and Terminate functions, allowing you to omit them,
-
- It is not necessary to use these base-classes - but if you don't, you
- must ensure each of the required methods are implemented.
- """
-
-
- class SimpleExtension:
- "Base class for a simple ISAPI extension"
-
- def __init__(self):
- pass
-
- def GetExtensionVersion(self, vi):
- """Called by the ISAPI framework to get the extension version
-
- The default implementation uses the classes docstring to
- set the extension description."""
- # nod to our reload capability - vi is None when we are reloaded.
- if vi is not None:
- vi.ExtensionDesc = self.__doc__
-
- def HttpExtensionProc(self, control_block):
- """Called by the ISAPI framework for each extension request.
-
- sub-classes must provide an implementation for this method.
- """
- raise NotImplementedError("sub-classes should override HttpExtensionProc")
-
- def TerminateExtension(self, status):
- """Called by the ISAPI framework as the extension terminates."""
- pass
-
-
- class SimpleFilter:
- "Base class for a a simple ISAPI filter"
- filter_flags = None
-
- def __init__(self):
- pass
-
- def GetFilterVersion(self, fv):
- """Called by the ISAPI framework to get the extension version
-
- The default implementation uses the classes docstring to
- set the extension description, and uses the classes
- filter_flags attribute to set the ISAPI filter flags - you
- must specify filter_flags in your class.
- """
- if self.filter_flags is None:
- raise RuntimeError("You must specify the filter flags")
- # nod to our reload capability - fv is None when we are reloaded.
- if fv is not None:
- fv.Flags = self.filter_flags
- fv.FilterDesc = self.__doc__
-
- def HttpFilterProc(self, fc):
- """Called by the ISAPI framework for each filter request.
-
- sub-classes must provide an implementation for this method.
- """
- raise NotImplementedError("sub-classes should override HttpExtensionProc")
-
- def TerminateFilter(self, status):
- """Called by the ISAPI framework as the filter terminates."""
- pass
|