Spaces:
Paused
Paused
| """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 | |