WebKit.AppServer
index
/var/www/docs/Webware-1.1.1/WebKit/AppServer.py

The AppServer singleton.
 
The `AppServer` singleton is the controlling object/process/thread.
`AppServer` receives requests and dispatches them to `Application`
(via `Application.dispatchRawRequest`).
 
There is only one instance of AppServer, `globalAppServer` contains
that instance. Use it like:
 
    from WebKit.AppServer import globalAppServer
 
`ThreadedAppServer` completes the implementation, dispatching
these requests to separate threads. `AppServer`, at least in the
abstract, could support different execution models and environments,
but that support is not yet realized (Will it ever be realized?).
 
The distinction between `AppServer` and `Application` is somewhat
vague -- both are global singletons and both handle dispatching requests.
`AppServer` works on a lower level, handling sockets and threads.

 
Modules
       
WebKit.Profiler
os
sys

 
Classes
       
WebKit.ConfigurableForServerSidePath.ConfigurableForServerSidePath(MiscUtils.Configurable.Configurable)
AppServer

 
class AppServer(WebKit.ConfigurableForServerSidePath.ConfigurableForServerSidePath)
    The AppServer singleton.
 
Purpose and usage are explained in the module docstring.
 
 
Method resolution order:
AppServer
WebKit.ConfigurableForServerSidePath.ConfigurableForServerSidePath
MiscUtils.Configurable.Configurable
__builtin__.object

Methods defined here:
__init__(self, path=None)
Sets up and starts the `AppServer`.
 
`path` is the working directory for the AppServer
(directory in which AppServer is contained, by default)
 
This method loads plugins, creates the Application object,
and starts the request handling loop.
application(self)
Return the Application singleton.
checkForInstall(self)
Check whether Webware was installed.
 
Exits with an error message if Webware was not installed.
Called from `__init__`.
closeThread(self)
This method is called when the shutdown sequence is initiated.
configFilename(self)
Return the name of the AppServer configuration file.
configReplacementValues(self)
Get config values that need to be escaped.
createApplication(self)
Create and return an application object. Invoked by __init__.
defaultConfig(self)
The default AppServer.config.
initiateShutdown(self)
Ask the master thread to begin the shutdown.
isPersistent(self)
Check whether the AppServer is persistent.
 
When using `OneShot`, the AppServer will exist only for a single
request, otherwise it will stay around indefinitely.
loadPlugIn(self, path)
Load and return the given plug-in.
 
May return None if loading was unsuccessful (in which case this method
prints a message saying so). Used by `loadPlugIns` (note the **s**).
loadPlugIns(self)
Load all plug-ins.
 
A plug-in allows you to extend the functionality of WebKit without
necessarily having to modify its source. Plug-ins are loaded by
AppServer at startup time, just before listening for requests.
See the docs in `WebKit.PlugIn` for more info.
numRequests(self)
Return the number of requests.
 
Returns the number of requests received by this app server
since it was launched.
plugIn(self, name, default=<class 'MiscUtils.NoDefault'>)
Return the plug-in with the given name.
plugIns(self)
Return a list of the plug-ins loaded by the app server.
 
Each plug-in is a Python package.
printStartUpMessage(self)
Invoked by __init__, prints a little intro.
readyForRequests(self)
Declare ready for getting requests.
 
Should be invoked by subclasses when they are finally ready to
accept requests. Records some stats and prints a message.
recordPID(self)
Save the pid of the AppServer to a file.
serverSidePath(self, path=None)
Return the absolute server-side path of the WebKit app server.
 
If the optional path is passed in, then it is joined with the
server side directory to form a path relative to the app server.
shutDown(self)
Shut down the AppServer.
 
Subclasses may override and normally follow this sequence:
    1. set self._running = 1 (request to shut down)
    2. class specific statements for shutting down
    3. Invoke super's shutDown() e.g., `AppServer.shutDown(self)`
    4. set self._running = 0 (server is completely down)
startTime(self)
Return the time the app server was started.
 
The time is given as seconds, like time().
version(self)
Return WebKit version.
webKitPath(self)
Return teh WebKit path.
webwarePath(self)
Return the Webware path.

Methods inherited from WebKit.ConfigurableForServerSidePath.ConfigurableForServerSidePath:
setting(self, name, default=<class 'MiscUtils.NoDefault'>)
Return setting, using the server side path when indicated.
 
Returns the setting, filtered by serverSidePath(),
if the name ends with ``Filename`` or ``Dir``.

Methods inherited from MiscUtils.Configurable.Configurable:
commandLineConfig(self)
Return the settings that came from the command-line.
 
These settings come via addCommandLineSetting().
config(self)
Return the configuration of the object as a dictionary.
 
This is a combination of defaultConfig() and userConfig().
This method caches the config.
configName(self)
Return the name of the configuration file without the extension.
 
This is the portion of the config file name before the '.config'.
This is used on the command-line.
hasSetting(self, name)
Check whether a configuration setting has been changed.
printConfig(self, dest=None)
Print the configuration to the given destination.
 
The default destination is stdout. A fixed with font is assumed
for aligning the values to start at the same column.
setSetting(self, name, value)
Set a particular configuration setting.
userConfig(self)
Return the user config overrides.
 
These settings can be found in the optional config file.
Returns {} if there is no such file.
 
The config filename is taken from configFilename().

Data descriptors inherited from MiscUtils.Configurable.Configurable:
__dict__
dictionary for instance variables (if defined)
__weakref__
list of weak references to the object (if defined)

 
Functions
       
main()
Start the Appserver.
stop(*args, **kw)
Stop the AppServer (which may be in a different process).
time(...)
time() -> floating point number
 
Return the current time in seconds since the Epoch.
Fractions of a second may be present if the system clock provides them.

 
Data
        defaultConfig = {'CheckInterval': 100, 'PidFile': 'appserver.pid', 'PlugInDirs': [], 'PlugIns': [], 'PrintConfigAtStartUp': True, 'SilentURIs': None, 'Verbose': True}
globalAppServer = None