The ucw Reference Manual

Next: , Previous: , Up: (dir)   [Contents][Index]

The ucw Reference Manual

This is the ucw Reference Manual, version 0.9, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Aug 15 06:05:50 2022 GMT+0.

Table of Contents


1 Introduction

-*- outline -*-

This directory contains UnCommon Web (UCW), a Common Lisp web application
platform.

* Getting Started

Well, there's a shortcut nowadays.  Marco Baringer made a UCW boxset
with all the dependencies boxed up and ready to fire.

wget http://common-lisp.net/project/ucw/ucw-boxset.tar.gz
tar -zxf ucw-boxset.tar.gz
cd ucw-boxset
YOURLISPHERE (-)-load start.lisp

This will start UCW with the built in httpd server backend. But if you
want to get the dependencies seperately or want a different initial setup,
then read on!

Assuming that every dependency is set up correctly then evaluating

(load (merge-pathnames "etc/start.lisp"
                       (asdf:component-pathname (asdf:find-system :ucw))))

should start up the examples at http://localhost:8080/

** Dependencies

UCW depends an a number of external libraries:

    * arnesi - an all purpose lisp toolkit
    * yaclml - yet another common lisp markup language
    * parenscript - javascript in common-lisp
    * iterate - a lispy loop
    * rfc2388 - implements multipart/form specification
    * rfc2109 - implements cookie specification
    * trivial-garbage - portable weak hashtables and pointers
    * bordeaux-threads - portable threads
    * split-sequence - splits sequences
    * slime - Superior Lisp Interaction Mode for Emacs
    * cl-ppcre - regular expressions lib
    * cl-l10n - l10n and i18n lib
    * trivial-sockets - handles stream sockets for undemanding network  
      applications 
    * net.uri or PURI - parses URI's according to the RFC 2396
      specification 
    * cl-fad - a portable pathname library based on code from PCL
    * net-telent-date - an RFC822-compliand date parser and printer
    * cl-launch - invokes lisp code from the command line
    * detachtty - a screen-like detachment tool to be able to detach
      and reattach the lisp server from and to a console 
    * a server backend - be it mod_lisp (apache 1 or 2), araneida,
      allegroserve, portable aserve or the built in httpd server 
    * asdf - a package loader facility

    
*** arnesi

Arnesi is a Common Lisp utility suite. It contains various "bits 'n
pieces" of code which were useful while developing other code. It can
be found on http://common-lisp.net/project/bese/arnesi.html. 

You will need the latest version:

darcs get http://common-lisp.net/project/bese/repos/arnesi_dev/
    
Daily snapshots are available at
http://common-lisp.net/project/bese/tarballs/arnesi_dev-latest.tar.gz 


*** yaclml

yaclml is a collection of macros and utilities for generating XML/HTML
like markup from lisp code. It can be found on
http://common-lisp.net/project/bese/yaclml.html. 

You will need the latest version:

darcs get http://common-lisp.net/project/bese/repos/yaclml/
    
Daily snapshots are available at:
http://common-lisp.net/project/bese/tarballs/yaclml-latest.tar.gz 


*** parenscript - ucw version

Parenscript is a javascript compiler. You will need to get the latest
development version: 

darcs get http://common-lisp.net/project/ucw/repos/parenscript/
    
Daily snapshots are available at:
http://common-lisp.net/project/ucw/tarballs/parenscript-latest.tar.gz 


*** iterate

Iterate is an iteration construct for Common Lisp. It can be found on
http://common-lisp.net/project/iterate/

Download link:
http://common-lisp.net/project/iterate/releases/iterate-current.tar.gz 


*** rfc2388 - ucw version

Rfc2388 is a lisp implemantation of RFC 2388, which is used to process
form data posted with HTTP POST method using enctype
"multipart/form-data". 

UCW uses its own fork of rfc2388. You can get the latest code from the
darcs repository located at
http://common-lisp.net/project/ucw/repos/rfc2388: 

darcs get http://common-lisp.net/project/ucw/repos/rfc2388/

Daily snapshots are available at
http://common-lisp.net/project/ucw/tarballs/rfc2388-latest.tar.gz 


*** rfc2109 - ucw version

Rfc2109 is the lisp implementation of the cookie protocol. You can get
it at: http://common-lisp.net/project/rfc2109/: 

darcs get http://common-lisp.net/project/rfc2109/rfc2109
    
Daily snapshots are available at
http://www.common-lisp.net/project/rfc2109/release/rfc2109-latest.tar.gz 


*** split-sequence

splits sequences

info: http://www.cliki.net/SPLIT-SEQUENCE

download: http://ww.telent.net/cclan/split-sequence.tar.gz (you might
have to select a mirror first) 

If said link is dead, go to http://ww.telent.net/cclan-choose-mirror
to delete your CCLAN-SITE cookie and choose another mirror. At least
some of them are definitely working. 


*** SLIME

The Superior Lisp Interaction Mode for Emacs.

Download and install the latest CVS version of SLIME from
http://common-lisp.net/project/slime. 

To checkout from CVS you must first login to the repository:

export CVSROOT=:pserver:anonymous@common-lisp.net:/project/slime/cvsroot
cvs login
    
Enter anonymous when prompted for the password. You can then check out
the latest version with: 

cvs checkout slime
    
It's swank you want to add to your asd systems dir. To solve a current
problem with cl-launch you might want to overwrite your swank.asd file
with this one:

http://cl-debian.alioth.debian.org/repository/pvaneynd/slime/debian/swank.asd

Check the description on cl-launch to see why.


*** cl-l10n

Localization and internationalization library: http://common-lisp.net/project/cl-l10n/

Get the latest version with:
  darcs get http://www.common-lisp.net/project/cl-l10n/repos/cl-l10n


*** cl-ppcre

Edi Weitz's regular expression library: http://www.weitz.de/cl-ppcre/.

Download the latest version: http://weitz.de/files/cl-ppcre.tar.gz


*** trivial-sockets

Networking library to create small server applications. Download the
latest version from: http://ww.telent.net/cclan/trivial-sockets.tar.gz
(you might have to select a mirror first. 

If said link is dead, go to http://ww.telent.net/cclan-choose-mirror
to delete your CCLAN-SITE cookie and choose another mirror. At least
some of them are definitely working. 

Or use asdf install.


*** net.uri/PURI

All of the backends (except araneida) depend on Franz's open-source
net.uri library. It only works on Allegro but Kevin Rosenberg has made
a portable version called PURI. 

For allegro users, NET.URI can be downloaded from here (it may be
included in your version of acl):
http://opensource.franz.com/uri/index.html 

If you're not using allegro you'll need puri which can be downloaded
from http://puri.b9.com/download.html 


*** cl-fad

A portable pathname library based on code from Peter Seibels book
Practical Common Lisp. 

info: http://www.cliki.net/CL-FAD

download: http://weitz.de/files/cl-fad.tar.gz


*** net-telent-date

A library consisting mostly of the time parsing routines from CMUCL
that were removed from SBCL. Additionally it has a universal-time to
rfc822 date convertor.

info: http://www.cliki.net/net-telent-date

download: http://ww.telent.net/cclan/net-telent-date.tar.gz

*** cl-launch

A bash script to make your Lisp software easily invokable from the
shell command-line. 

info: http://www.cliki.net/cl-launch

download page: http://fare.tunes.org/files/cl-launch/

Download and add to your shell executable search path so ucw can find
it while loading. Cl-launch can either be called cl-launch or
cl-launch.sh, ucw will check for both. Also cl-launch depends on swank
behavior other than that of the current cvs code, at least under sbcl,
eg via swank-loader it looks for files under the load path, which is not
what you want if you made a symbolic link to another dir. The easiest way
to get around this problem is to overwrite your swank.asd file (in the
slime directory root), with this one:

http://cl-debian.alioth.debian.org/repository/pvaneynd/slime/debian/swank.asd 

If you are a Debian user and you got slime/swank through apt-get, you
already have this version on your harddisk/pendrive.

The downside might be that swank won't work anymore as it should,
although i haven't heard anyone about this yet. Another approach is to
copy your swank*.fasls from the slime directory to the relevant shadow
directory under ~/.cache/... 

Check this thread for more info:
http://common-lisp.net/pipermail/slime-devel/2006-March/004664.html

Yes, ucw is bleeding edge ;)


*** detachtty - ucw version

A screen-like detachment tool to be able to detach and re-attach the
lisp server from and to a console. Ucw uses a custom detachtty
version, e.g. detachtty-9 plus a patch by Kevin Rosenberg. It accepts
an eval argument when invoking a lisp, with obvious benefits. Get it
through Darcs: 

darcs get http://common-lisp.net/project/bese/repos/detachtty/

Go to the directory root and compile and install:

make
make install
    

** the backend

choose one of mod_lisp/mod_lisp2, araneida, aserve/paserve or the
built-in httpd server


*** mod_lisp/mod_lisp2 for apache

You can choose between apache 1 and 2. First of course you have to
have a Apache web server up and runnnig; then you have to add the
mod-lisp module by Marc Battyani which you find at
http://www.fractalconcept.com/asp/html/mod_lisp.html 

First download the mod_lisp c file. Watch out, don't follow the logic
of the website. Except for the windows version the info is outdated
concerning the apache 1 version and info about apache 2 is
non-existent. Go to subversion from the download page or click the
links below: 

    * apache 1 .c file - mod_lisp.c
    * apache 2 .c file - mod_lisp2.c
   
use the command:

apxs -i -c mod_lisp.c
    
or

apxs2 -i -c mod_lisp2.c
    
for respectively apache 1 or 2. This will install the module in the
appropriate apache directory. Then add the following lines to
'httpd.conf' in your apache configuration directory for both apache 1
and 2. Just be sure to change mod_lisp.so to mod_lisp2.so for apache
2:

# This goes near the other LoadModlue directives
    
LoadModule lisp_module modules/mod_lisp.so
    
LispServer 127.0.0.1 3001 ucw
    

               SetHandler lisp-handler

    
This means that ucw INTERNALLY talks to apache on port 3001 at the
internet address 127.0.0.1 (so in this case your localhost). The
locationmatch part redirects all traffic from (in this case) 127.0.0.1
with prefix "/path/" and files ending on .ucw to ucw. So
http://127.0.0.1/path/something.ucw as well as
http://127.0.0.1/path/anotherpath/somethingelse.ucw will be
redirected, but not http://127.0.0.1/somethingfaulty.ucw or
http://127.0.0.1/path/somethingfaulty.html.


*** allegroserve or portableaserve

Should you want to use the aserve backend you will need to download
and install either the AllegroServe if you use acl or portableaserve
for any other. AllegroServe doesn't seem to have an asdf file, you're
going to have to load it manually or however AllegroServe handles it's
own files. Portableaserve does however.

AllegroServe can be downloaded from here (it may be included in your
version of acl): http://opensource.franz.com/aserve/

portableaserve is hosted on sourceforge: http://portableaserve.sf.net

portableaserve download: http://constantly.at/lisp/aserve.tar.gz

To use portableaserve you'll also need the Allegro Common Lisp
compatibility package (acl-compat). It's part of portableaserve and so
it's home is also the before-mentioned sourceforge site.

acl-compat download: http://constantly.at/lisp/acl-compat.tar.gz


*** araneida

Should you want to use the araneida backend you will need to download
araneida. Get the latest version just to be on the safe
side. Originally araneida was meant to live behind apache and it can
of course still be configured as such. Explaining this is beyond the
scope of this document but have a look at this site for more info.

info: http://www.cliki.net/Araneida}

download: http://common-lisp.net/project/araneida/release/araneida-latest.tar.gz

or use darcs, although the connection seems a bit slow:

darcs get http://verisons.telent.net/araneida/


*** httpd

Ucw's in-house server. It's a simple server bundled with ucw. Nice for
testing.


** Setting up ASDF

UCW, and all the libraries it depends on, use ASDF for loading and
compiling the code in the proper order. The first thing you must do is
make sure that ASDF can find the system definitions for ucw and all
the related libraries.

ASDF searches for system definition files by looking in the
directories in the list asdf:*central-registry*. To make a system
definition visible you can either push the name of the directory which
contains the .asd file onto the list asdf:*central-registry* or you
can create a symlink from the .asd file to a directory which is
already in the list asdf:*central-registry*. 

For example: on some linux installations the directory
/usr/share/common-lisp/systems is in the list asdf:*central-registry*,
by creating a symlink from a particular .asd file to
/usr/share/common-lisp/systems (ln -s /path/to/library/lib.asd
/usr/share/common-lisp/systems) we guarentee that (adsf:oos
'asdf:load-op :lib) will Just Work(TM).


** Testing UCW

When you have set up all your dependencies correctly, you can test
ucw by first creating either /etc/ucw/applications.d or
/path/to/home/.ucw/applications.d, firing
up your favorite distribution and type:

(load "/path/to/ucw/etc/start.lisp")

If all went well, you have started ucw with the httpd backend. Surf to
\link{\href{http://127.0.0.1:8080}\text{http://127.0.0.1:8080}} and
again if all went well you should see the example page. That's it!
Start hacking!!

To run ucw detached use the ucwctl script under /path/to/ucw/bin/
For an explanation of it's configuration check the ucw-intro html under
/docs/ucw-intro.


* Documentation

Check the docs section for various introductions, tutorials, quickstarts and
code examples. The API documentation is, as much as possible, contained in
the docstrings of the various classes, methods, and packages which make
up UCW itself. Using a good inspector (SLIME's inspector for example)
you should be able to easily navigate and browse the API.

* Developing UCW

Eventually (probably too soon) you'll discover a bug or a missing
feature in UCW and want to fix it. The first thing to do is to send an
email to bese-devel@common-lisp.net and make sure it's a real bug or
missing feature (and not a user or documentation error).

If you do have a bug fix or feature improvement you'd like to submit
there are two ways to go about sending the patch: if the patch is
relativly small than just send a plain old diff or a tar ball of the
arch changeset to the list. If it is bigger, send it to ucw_public
and eventually it will find it's way to ucw_dev. If the change is
bigger than bigger or requires multiple patches over time then branch
off of ucw_dev and publish your repository with your changes. 

** Reporting BUGS

The simplest thing you can is just send an email to
bese-devel@common-lisp.net. We keep a collection of all the known bugs
and issues as text files in the directory docs/issues.

*** Using darcs

**** Creating a changeset

# darcs send

or, if you don't have sendmail properly set up;

# darcs send -o CHANGESET

Then just mail the file CHANGESET to bese-devel@common-lisp.net

**** Branching from ucw--dev

You already have a branch. :)


2 Systems

The main system appears first, followed by any subsystem dependency.


Next: , Previous: , Up: Systems   [Contents][Index]

2.1 ucw

UncommonWeb : Standard Components

Maintainer

Drew Crampsie <drewc@tech.coop>

Author

Marco Baringer <mb@bese.it>

License

BSD (sans advertising clause)

Long Description

Containts a simple, standard component library.

Version

0.9

Dependencies
  • ucw-core (system).
  • cl-ppcre (system).
  • closer-mop (system).
Source

ucw.asd.

Child Component

src (module).


Previous: , Up: Systems   [Contents][Index]

2.2 ucw-core

Core features of UnCommon Web

Author

Marco Baringer <mb@bese.it>

License

BSD (sans advertising clause)

Long Description

Contains the base features essential for a useful Read Eval Render Loop (RERL).

Version

0.9

Dependencies
  • arnesi (system).
  • swank (system).
  • iterate (system).
  • yaclml (system).
  • local-time (system).
  • usocket (system).
  • rfc2109 (system).
  • net-telent-date (system).
  • cl-fad (system).
  • trivial-garbage (system).
  • bordeaux-threads (system).
  • closer-mop (system).
Source

ucw-core.asd.

Child Component

src (module).


Next: , Previous: , Up: The ucw Reference Manual   [Contents][Index]

3 Modules

Modules are listed depth-first from the system components tree.


Next: , Previous: , Up: Modules   [Contents][Index]

3.1 ucw/src

Source

ucw.asd.

Parent Component

ucw (system).

Child Component

ucw-standard (module).


3.2 ucw/src/ucw-standard

Source

ucw.asd.

Parent Component

src (module).

Child Components

3.3 ucw/src/ucw-standard/application-mixins

Dependencies
Source

ucw.asd.

Parent Component

ucw-standard (module).

Child Components

3.4 ucw/src/ucw-standard/components

Dependency

standard-components.lisp (file).

Source

ucw.asd.

Parent Component

ucw-standard (module).

Child Components

3.5 ucw/src/ucw-standard/yaclml

Dependency

standard-tags.lisp (file).

Source

ucw.asd.

Parent Component

ucw-standard (module).

Child Component

tal.lisp (file).


3.6 ucw-core/src

Source

ucw-core.asd.

Parent Component

ucw-core (system).

Child Components

Next: , Previous: , Up: Modules   [Contents][Index]

3.7 ucw-core/src/backend

Dependencies
Source

ucw-core.asd.

Parent Component

src (module).

Child Component

accept-headers.lisp (file).


3.8 ucw-core/src/rerl

Dependencies
Source

ucw-core.asd.

Parent Component

src (module).

Child Components

3.9 ucw-core/src/rerl/standard-component

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Child Components

3.10 ucw-core/src/core-components

Dependency

rerl (module).

Source

ucw-core.asd.

Parent Component

src (module).

Child Component

window.lisp (file).


4 Files

Files are sorted by type and then listed depth-first from the systems components trees.


Previous: , Up: Files   [Contents][Index]

4.1 Lisp


Next: , Previous: , Up: Lisp   [Contents][Index]

4.1.1 ucw/ucw.asd

Source

ucw.asd.

Parent Component

ucw (system).

ASDF Systems

ucw.

Packages

it.bese.ucw.system.


4.1.2 ucw-core/ucw-core.asd

Source

ucw-core.asd.

Parent Component

ucw-core (system).

ASDF Systems

ucw-core.

Public Interface
Internals

4.1.3 ucw/src/ucw-standard/standard-package.lisp

Source

ucw.asd.

Parent Component

ucw-standard (module).

Packages

4.1.4 ucw/src/ucw-standard/standard-action.lisp

Dependency

standard-package.lisp (file).

Source

ucw.asd.

Parent Component

ucw-standard (module).

Public Interface
Internals

4.1.5 ucw/src/ucw-standard/standard-dispatchers.lisp

Dependency

standard-package.lisp (file).

Source

ucw.asd.

Parent Component

ucw-standard (module).

Public Interface
Internals

4.1.6 ucw/src/ucw-standard/standard-tags.lisp

Dependency

standard-action.lisp (file).

Source

ucw.asd.

Parent Component

ucw-standard (module).

Public Interface
Internals

4.1.7 ucw/src/ucw-standard/standard-components.lisp

Dependency

standard-tags.lisp (file).

Source

ucw.asd.

Parent Component

ucw-standard (module).

Public Interface
Internals

4.1.8 ucw/src/ucw-standard/file-serve.lisp

Dependency

standard-package.lisp (file).

Source

ucw.asd.

Parent Component

ucw-standard (module).

Public Interface

4.1.9 ucw/src/ucw-standard/application-mixins/cookie-session-application.lisp

Source

ucw.asd.

Parent Component

application-mixins (module).

Public Interface
Internals

4.1.10 ucw/src/ucw-standard/application-mixins/secure-application.lisp

Source

ucw.asd.

Parent Component

application-mixins (module).

Public Interface
Internals

4.1.11 ucw/src/ucw-standard/application-mixins/static-roots-application.lisp

Source

ucw.asd.

Parent Component

application-mixins (module).

Public Interface

4.1.12 ucw/src/ucw-standard/application-mixins/tal-application.lisp

Source

ucw.asd.

Parent Component

application-mixins (module).

Public Interface

tal-application-mixin (class).

Internals

4.1.13 ucw/src/ucw-standard/application-mixins/transactional-application.lisp

Source

ucw.asd.

Parent Component

application-mixins (module).

Public Interface
Internals

4.1.14 ucw/src/ucw-standard/components/html-element.lisp

Source

ucw.asd.

Parent Component

components (module).

Public Interface
Internals

*xml-id-counter* (special variable).


4.1.15 ucw/src/ucw-standard/components/cached.lisp

Source

ucw.asd.

Parent Component

components (module).

Public Interface
Internals

4.1.16 ucw/src/ucw-standard/components/container.lisp

Dependency

html-element.lisp (file).

Source

ucw.asd.

Parent Component

components (module).

Public Interface
Internals

4.1.17 ucw/src/ucw-standard/components/error.lisp

Source

ucw.asd.

Parent Component

components (module).

Public Interface
Internals

4.1.18 ucw/src/ucw-standard/components/option-dialog.lisp

Source

ucw.asd.

Parent Component

components (module).

Public Interface
Internals

4.1.19 ucw/src/ucw-standard/components/paged-list.lisp

Source

ucw.asd.

Parent Component

components (module).

Public Interface
Internals

4.1.20 ucw/src/ucw-standard/components/redirect.lisp

Source

ucw.asd.

Parent Component

components (module).

Public Interface

render (method).

Internals

4.1.21 ucw/src/ucw-standard/components/tal.lisp

Source

ucw.asd.

Parent Component

components (module).

Public Interface
Internals

4.1.22 ucw/src/ucw-standard/components/task.lisp

Source

ucw.asd.

Parent Component

components (module).

Public Interface

4.1.23 ucw/src/ucw-standard/components/user-login.lisp

Source

ucw.asd.

Parent Component

components (module).

Public Interface
Internals

4.1.24 ucw/src/ucw-standard/yaclml/tal.lisp

Source

ucw.asd.

Parent Component

yaclml (module).

Public Interface

render-template (method).

Internals

4.1.25 ucw-core/src/core-package.lisp

Source

ucw-core.asd.

Parent Component

src (module).

Packages

4.1.26 ucw-core/src/helpers.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.27 ucw-core/src/loggers.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

src (module).

Public Interface
Internals

defucwlogger (macro).


4.1.28 ucw-core/src/vars.lisp

Dependency

core-package.lisp (file).

Source

ucw-core.asd.

Parent Component

src (module).

Public Interface
Internals

4.1.29 ucw-core/src/control.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

src (module).

Public Interface

4.1.30 ucw-core/src/backend/accept-headers.lisp

Source

ucw-core.asd.

Parent Component

backend (module).

Internals

parse-accept-language-header (function).


4.1.31 ucw-core/src/rerl/protocol.lisp

Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.32 ucw-core/src/rerl/rerl-variables.lisp

Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.33 ucw-core/src/rerl/rerl-utils.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.34 ucw-core/src/rerl/conditions.lisp

Dependency

protocol.lisp (file).

Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.35 ucw-core/src/rerl/backtracking.lisp

Dependency

basic-classes.lisp (file).

Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.36 ucw-core/src/rerl/request-loop-error.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.37 ucw-core/src/rerl/basic-classes.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.38 ucw-core/src/rerl/basic-action.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.39 ucw-core/src/rerl/basic-application.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.40 ucw-core/src/rerl/standard-component/standard-component.lisp

Dependency

standard-component-class.lisp (file).

Source

ucw-core.asd.

Parent Component

standard-component (module).

Public Interface
Internals

4.1.41 ucw-core/src/rerl/standard-component/control-flow.lisp

Dependency

standard-component.lisp (file).

Source

ucw-core.asd.

Parent Component

standard-component (module).

Public Interface
Internals

4.1.43 ucw-core/src/rerl/standard-component/transactions.lisp

Dependency

standard-component.lisp (file).

Source

ucw-core.asd.

Parent Component

standard-component (module).


4.1.44 ucw-core/src/rerl/basic-dispatchers.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.45 ucw-core/src/rerl/standard-request-context.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.46 ucw-core/src/rerl/standard-server.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.47 ucw-core/src/rerl/basic-session.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.48 ucw-core/src/rerl/standard-session-frame.lisp

Dependencies
Source

ucw-core.asd.

Parent Component

rerl (module).

Public Interface
Internals

4.1.49 ucw-core/src/core-components/window.lisp

Source

ucw-core.asd.

Parent Component

core-components (module).

Public Interface

5 Packages

Packages are listed by definition order.


Next: , Previous: , Up: Packages   [Contents][Index]

5.1 it.bese.ucw.core

Source

core-package.lisp.

Nickname

ucw-core

Use List
Used By List
Public Interface
Internals

5.2 it.bese.ucw.system

Source

ucw.asd.

Nickname

ucw.system

Use List
  • asdf/interface.
  • common-lisp.
Used By List
Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.3 it.bese.ucw.core.generated

Source

core-package.lisp.


5.4 ucw-standard

Source

standard-package.lisp.

Nickname

ucw

Use List
Used By List

ucw-user.

Public Interface
Internals

Next: , Previous: , Up: Packages   [Contents][Index]

5.5 it.bese.ucw.loggers

Source

core-package.lisp.

Nickname

ucw-log

Use List
Used By List

it.bese.ucw.core.

Public Interface
Internals

defucwlogger (macro).


Next: , Previous: , Up: Packages   [Contents][Index]

5.6 ucw-user

Source

standard-package.lisp.

Use List

Previous: , Up: Packages   [Contents][Index]

5.7 ucw-tags

Source

standard-package.lisp.

Nickname

<ucw

Use List
  • common-lisp.
  • it.bese.yaclml.
Public Interface
Internals

6 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


Next: , Previous: , Up: Definitions   [Contents][Index]

6.1 Public Interface


6.1.1 Special variables

Special Variable: *context*

The current request-context object.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Special Variable: *current-component*

When rendering this is bound to the current component (the second argument passed to render).

Package

it.bese.ucw.core.

Source

protocol.lisp.

Special Variable: *debug-on-error*

The default, system wide, value for debug-on-error. Applications may override this.

Package

it.bese.ucw.core.

Source

vars.lisp.

Special Variable: *default-action-class*

Default action class for MAKE-ACTION

Package

it.bese.ucw.core.

Source

vars.lisp.

Special Variable: *default-application*

The application object to use when none is explicitly specified.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Special Variable: *default-server*

The server object to use when none is explicitly specified.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Special Variable: *dispatcher-registers*
Package

ucw-standard.

Source

standard-dispatchers.lisp.

Special Variable: *dispatcher-url-suffix*
Package

ucw-standard.

Source

standard-dispatchers.lisp.

Special Variable: *inspect-components*

When rendering, should we put links next to components that will bring up the inspector?

Package

it.bese.ucw.core.

Source

vars.lisp.

Special Variable: *load-as-production-p*

When T, load the UCW lisp files so that it will be used in a production system.
This means that debug-only blocks are skipped and various variables are initialized accordingly.

Package

it.bese.ucw.system.

Source

ucw-core.asd.

Special Variable: *request-content-length-limit*

While uploading a file the size of the request may go higher then this in which case UCW signals an error. See also the REQUEST-CONTENT-LENGTH-LIMIT slot of BASIC-BACKEND.

Package

it.bese.ucw.core.

Source

vars.lisp.

Special Variable: *response*
Package

it.bese.ucw.core.

Source

protocol.lisp.

Special Variable: *source-component*
Package

ucw-standard.

Source

standard-action.lisp.

Special Variable: *ucw-applications*

Each element of this list is evaluated and should return an application instance. (A CLOS object instance evaluates to itself, so you are free to provide either app instances or expressions evaluating to app instances.)

Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: *ucw-applications-directory*
Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: *ucw-backend-host*
Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: *ucw-backend-port*
Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: *ucw-backend-type*
Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: *ucw-compile-time-log-level*

UCW logger messages below this level will not be compiled into the code, so they will have no performance penalty.

Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: *ucw-log-level*

This is the default runtime log level for the UCW loggers.

Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: *ucw-log-root-directory*
Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: *ucw-server-class*
Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: *ucw-swank-port*
Package

it.bese.ucw.system.

Source

ucw-core.asd.

Special Variable: *ucw-systems*

The asdf systems listed here will be loaded as part of the configuration process.

Package

it.bese.ucw.system.

Source

vars.lisp.

Special Variable: +action-compound-name-delimiter+
Package

it.bese.ucw.core.

Source

standard-action.lisp.

Special Variable: +action-parameter-name+
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: +frame-parameter-name+
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: +session-parameter-name+
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.


6.1.2 Symbol macros

Symbol Macro: +http-accepted+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-authorization-required+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-bad-gateway+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-bad-request+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-conflict+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-continue+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-created+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-expectation-failed+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-failed-dependency+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-forbidden+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-gateway-time-out+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-gone+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-internal-server-error+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-length-required+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-method-not-allowed+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-moved-permanently+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-moved-temporarily+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-multi-status+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-multiple-choices+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-no-content+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-non-authoritative-information+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-not-acceptable+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-not-found+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-not-implemented+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-not-modified+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-ok+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-partial-content+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-payment-required+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-precondition-failed+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-proxy-authentication-required+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-request-entity-too-large+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-request-time-out+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-request-uri-too-large+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-requested-range-not-satisfiable+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-reset-content+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-see-other+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-service-unavailable+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-switching-protocols+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-temporary-redirect+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-unsupported-media-type+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-use-proxy+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +http-version-not-supported+
Package

it.bese.ucw.core.

Source

vars.lisp.

Symbol Macro: +xhtml-namespace-uri+
Package

it.bese.ucw.core.

Source

vars.lisp.


6.1.3 Macros

Macro: a (&rest g0)

A Simple <:A which does not require javascript.

Package

ucw-tags.

Source

standard-tags.lisp.

Macro: defaction (&rest args-and-body)
Package

ucw-standard.

Source

standard-action.lisp.

Macro: defcomponent (name supers slots &rest options)

Macro for defining a component class.

This macro is used to create component classes and provides options for easily creating the methods which often accompany a component definition.

NAME, SUPERS and SLOTS as treated as per defclass. The following extra options are allowed:

(:ENTRY-POINT url (&key application class)) - Define an entry-point on the url URL which simply calls an instance of this component. Any request parameters passed to the entry-point are used to initialize the slots in the component. This option may appear multiple times.

(:DEFAULT-BACKTRACK function-designator) - Unless the slots already have a :backtrack option FUNCTION-DESIGNATOR is added. As with the ’regular’ :backtrack options if you pass T here it is assumed to mean #’IDENTITY.

(:RENDER (&optional COMPONENT) &body BODY) - Generate a render method specialized to COMPONENT. COMPONENT may be a symbol, in which case the method will be specialized on the componnet class. If COMPONNET is omited the component is bound to a variable with the same name as the class.

(:ACTION &optional NAME) - Generate a defmethod/cc form named NAME (which defaults to the name of the component) which simply CALL’s this component class passing all the arguments passed to the action as initargs.

Package

it.bese.ucw.core.

Source

standard-component.lisp.

Macro: defentry-point (url (&key application class priority action-options with-call/cc) request-lambda-list &body body)

Define an entry point bound to the url URL of type CLASS.

URL must be a string which, when appended to APPLICATION’s url-prefix, specifies the complete url for this entry point. CLASS is a symbol naming the dispatcher class.

APPLICATION (evaluated) specifies the application object this entry point will be attached to. If NIL *default-application* will be used, otherwise it must be the name of an existing application.

REQUEST-LAMBDA-LIST is a request lambda list as per WITH-REQUEST-PARAMS.

The body of the entry-point is executed whenever the server recieves a request for the specified url. The body can contain calls to components but must not contain answer forms.

If the backend supports it then the url is
automatically registered with the backend, otherwise (mod_lisp) developers must manually configure the backend.

Package

it.bese.ucw.core.

Source

basic-action.lisp.

Macro: form (&rest g0)

A Simple form which does not require javascript.

Package

ucw-tags.

Source

standard-tags.lisp.

Macro: handle-raw-request ((&key content-type http-status-code content-disposition expires-in-ut max-age-in-secs send-headers cache with-network-stream error-handler with-yaclml-stream) &body body)

This macro handles a raw request. Will set the http cache control headers according to the supplied arguments, send the headers, execute the BODY and close the request. WITH-NETWORK-STREAM will be bound to the network stream unless it’s nil. When WITH-YACLML-STREAM is not nil the body will run inside a with-yaclml-stream block and after it finished it will be properly encoded and written into the network stream. Additionally if it is a symbol then it will be bound with that name.

Package

it.bese.ucw.core.

Source

basic-action.lisp.

Macro: input (&rest g0)
Package

ucw-tags.

Source

standard-tags.lisp.

Macro: make-place (form &optional copyer)

Create a new place around FORM.

Package

it.bese.ucw.core.

Source

backtracking.lisp.

Macro: option (&rest g0)

Replacement for the standard OPTION tag, must be used with <UCW:SELECT tag. Unlike "regular" OPTION tags the :value attribute can be any lisp object (printable or not).

Package

ucw-tags.

Source

standard-tags.lisp.

Macro: option-dialog ((message-spec &rest message-args) &body options)
Package

ucw-standard.

Source

option-dialog.lisp.

Macro: register-action ((&rest args &key through-redirect frame &allow-other-keys) &body body)

Makes a new action and registers it in FRAME. For more details see make-action.

Package

it.bese.ucw.core.

Source

standard-session-frame.lisp.

Macro: select (&rest g0)
Package

ucw-tags.

Source

standard-tags.lisp.

Macro: submit (&rest g0)
Package

ucw-tags.

Source

standard-tags.lisp.

Macro: textarea (&rest g0)
Package

ucw-tags.

Source

standard-tags.lisp.

Macro: ucw.admin.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.admin.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.admin.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.admin.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.admin.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.admin.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.backend.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.backend.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.backend.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.backend.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.backend.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.backend.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.action.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.action.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.action.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.action.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.action.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.action.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.dojo.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.dojo.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.dojo.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.dojo.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.dojo.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.dojo.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.layers.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.layers.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.layers.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.layers.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.layers.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.layers.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.render.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.render.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.render.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.render.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.render.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.render.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.component.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.examples.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.examples.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.examples.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.examples.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.examples.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.examples.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.l10n.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.l10n.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.l10n.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.l10n.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.l10n.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.l10n.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.actions.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.actions.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.actions.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.actions.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.actions.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.actions.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.ajax.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.ajax.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.ajax.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.ajax.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.ajax.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.ajax.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.application.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.application.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.application.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.application.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.application.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.application.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.dispatcher.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.dispatcher.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.dispatcher.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.dispatcher.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.dispatcher.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.dispatcher.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.server.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.server.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.server.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.server.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.server.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.server.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session-frame.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session-frame.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session-frame.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session-frame.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session-frame.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session-frame.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.session.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.threads.debug (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.threads.dribble (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.threads.error (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.threads.fatal (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.threads.info (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.threads.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.rerl.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: ucw.warn (message-control &rest message-args)
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Macro: with-dummy-context ((&key render action application) &body body)
Package

it.bese.ucw.core.

Source

standard-request-context.lisp.

Macro: with-lock-held-on-application (application &body body)
Package

it.bese.ucw.core.

Source

rerl-utils.lisp.

Macro: with-lock-held-on-session (session &body body)
Package

it.bese.ucw.core.

Source

rerl-utils.lisp.

Macro: with-request-params (request-lambda-list request &body body)

Bind, according the REQUEST-LAMBDA-LIST the parameters in REQUEST and execute BODY.

REQUEST-LAMBDA-LIST is a list of the form:

( [ ( symbol string ) | symbol ]
[ default-value [ supplied-symbol-name ]? ]? )

If the request contains a param (no distinction between GET and POST params is made) named STRING (which defaults to the symbol name of SYMBOL) the variable SYMBOL is bound to the associated value (which is always a string) . If no parameter with that name was passed SYMBOL will be bound to DEFAULT-VALUE and the variable named SUPPLIED-SYMBOL-NAME will be bound to NIL.

NB: Parameter names are matched case insensitively.

Package

it.bese.ucw.core.

Source

basic-action.lisp.


6.1.4 Ordinary functions

Function: abort-action (&optional failure-message)

Calling it without arguments means a graceful abort, while providing a failure message means there was an error. An ajax request will for example show the FAILURE-MESSAGE in one way or another when provided.

Package

it.bese.ucw.core.

Source

basic-action.lisp.

Function: action-href (action &key component frame)

Given an action returns an URL (as a string) which will call the action lambda.

The COMPONENT parameter is passed directly to COMPUTE-URL, FRAME is passed to REGISTER-ACTION. ACTION may be a lambda
or an action object made with MAKE-ACTION factory methods.

Package

it.bese.ucw.core.

Source

basic-action.lisp.

Function: add-query-parameter-to-uri (uri name value)
Package

it.bese.ucw.core.

Source

helpers.lisp.

Function: answer (&optional val)
Package

ucw-standard.

Source

standard-action.lisp.

Function: append-path-to-uri (uri path)
Package

it.bese.ucw.core.

Source

helpers.lisp.

Function: call (thing &rest args)
Package

ucw-standard.

Source

standard-action.lisp.

Function: call-as-request-handler (server request response thunk)

Sets up a proper request-handling environment around THUNK

Package

it.bese.ucw.core.

Source

standard-server.lisp.

Function: call-as-response-handler (response thunk &key content-type send-response)
Package

it.bese.ucw.core.

Source

standard-server.lisp.

Function: call-as-window (component-type &rest component-init-args)
Package

ucw-standard.

Source

standard-action.lisp.

Reader: callback-lambda (instance)
Writer: (setf callback-lambda) (instance)
Package

it.bese.ucw.core.

Source

standard-session-frame.lisp.

Target Slot

lambda.

Function: close-transaction (&optional session)
Package

ucw-standard.

Source

transactional-application.lisp.

Function: create-server (&key backend applications start-p server-class log-level log-to-console-p log-root-directory)

Creates and returns a UCW server according to SERVER-CLASS, HOST and PORT. Affects *DEFAULT-SERVER*.

BACKEND is a list of (BACKEND-TYPE &rest INITARGS). BACKEND-TYPE may be :HTTPD, :MOD-LISP, an existing
backend, an existing UCW server backend or :DEFAULT in which case it attempts to return a sane default from the UCW backends loaded and available, or any other value for which a valid MAKE-BACKEND method has been defined. INITARGS will be passed, unmodified, to MAKE-BACKEND.

APPLICATIONS is a list of defined applications to be loaded into the server.

Logs are generated in verbosity defined by LOG-LEVEL and directed to LOG-ROOT-DIRECTORY if defined.

Package

it.bese.ucw.core.

Source

control.lisp.

Function: external-format-for (what)
Package

it.bese.ucw.core.

Source

vars.lisp.

Function: (setf external-format-for) (what)
Package

it.bese.ucw.core.

Source

vars.lisp.

Function: find-parent-typed (component type &key otherwise)
Package

it.bese.ucw.core.

Source

standard-component.lisp.

Function: get-session-value (key &optional default session)

Convenience wrapper around session.value.

SESSION defaults to the current session.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Function: (setf get-session-value) (key &optional session)

Convience wrapper around (setf session.value).

SESSION defaults to the current session.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Function: iterate-sessions-with-lock-held (app visitor)
Package

it.bese.ucw.core.

Source

basic-application.lisp.

Function: jump (component-type &rest component-init-args)
Package

ucw-standard.

Source

standard-action.lisp.

Function: make-action (lambda &rest initargs &key class &allow-other-keys)

Makes a new unregistered action.

Package

it.bese.ucw.core.

Source

basic-action.lisp.

Function: make-uri (&rest initargs)
Package

it.bese.ucw.core.

Source

helpers.lisp.

Function: mark-session-expired (session)
Package

it.bese.ucw.core.

Source

basic-session.lisp.

Function: open-transaction (&optional session)
Package

ucw-standard.

Source

transactional-application.lisp.

Function: print-uri-to-string (uri &optional escape)
Package

it.bese.ucw.core.

Source

helpers.lisp.

Function: print-uri-to-string-sans-query (uri)
Package

it.bese.ucw.core.

Source

helpers.lisp.

Function: query-path-sans-prefix (context)

Returns the part of the context’s request’s query-path after the context’s application’s url-prefix. NB: The returned value shares structure with the query-path. NB: We assume the proper application has already been placed in CONTEXT.

Package

it.bese.ucw.core.

Source

standard-request-context.lisp.

Function: register-callback (lambda &rest args &key frame id &allow-other-keys)

Makes a new callback and registers it in FRAME. For more details see make-callback.

Package

it.bese.ucw.core.

Source

standard-session-frame.lisp.

Function: register-dispatcher (application dispatcher)
Package

it.bese.ucw.core.

Source

basic-application.lisp.

Function: send-standard-error-page (&key condition message title http-status-code)
Package

it.bese.ucw.core.

Source

request-loop-error.lisp.

Function: serve-file (file-name &rest args &key request response last-modified content-type content-disposition-filename content-disposition-size expires)
Package

ucw-standard.

Source

file-serve.lisp.

Function: serve-sequence (sequence &key request response last-modified content-type content-disposition expires)

Write SEQUENCE into the network stream and clean up the request. SEQUENCE may be a string or a byte vector. When it’s a string it will be encoded according to what the (encoding response) protocol answers.

Package

ucw-standard.

Source

file-serve.lisp.

Function: serve-stream (stream &key request response last-modified content-type content-length content-disposition content-disposition-filename content-disposition-size expires)
Package

ucw-standard.

Source

file-serve.lisp.

Function: session-authenticated-p (&optional session)
Package

ucw-standard.

Source

secure-application.lisp.

Function: session-user (&optional session)
Setf Expander: (setf session-user) (&optional session)
Package

ucw-standard.

Source

secure-application.lisp.

Function: ucw.log-level ()
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Function: (setf ucw.log-level) ()
Package

it.bese.ucw.loggers.

Source

loggers.lisp.

Function: unique-dom-id (&key prefix)

Generates a unique DOM id

Package

ucw-standard.

Source

html-element.lisp.


6.1.5 Generic functions

Generic Reader: action-isolated-p (object)
Generic Writer: (setf action-isolated-p) (object)
Package

it.bese.ucw.core.

Methods
Reader Method: action-isolated-p ((action-with-isolation-support action-with-isolation-support))
Writer Method: (setf action-isolated-p) ((action-with-isolation-support action-with-isolation-support))

Isolated actions are invalidated after the first call.

Source

basic-classes.lisp.

Target Slot

isolated.

Generic Function: add-component (container component &optional key)
Package

ucw-standard.

Methods
Method: add-component ((container container) (component component) &optional key)

Add component at the end of the component list.

Source

container.lisp.

Generic Function: answer-component (callee value)

Return control to CALLEE’s CALLER, continuing
with the value VALUE.

answer-component can be called by user code though it will generally be called through the UCW:ANSWER function.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: answer-component ((target standard-component) value)
Source

control-flow.lisp.

Generic Function: application-authorize-call (application user from to)

Check user credentials to call TO by FROM in APPLICATION.

Package

ucw-standard.

Source

secure-application.lisp.

Methods
Method: application-authorize-call ((app secure-application-mixin) user from to)
Method: application-authorize-call :around ((app secure-application-mixin) user from to)
Method: application-authorize-call (app user from to)
Generic Function: application-check-password (application user password)

Validate PASSWORD against USER for APPLICATION.

Package

ucw-standard.

Source

secure-application.lisp.

Methods
Method: application-check-password ((app application) user password)
Generic Function: application-find-user (application username)

Find USER by USERNAME for APPLICATION.

Package

ucw-standard.

Source

secure-application.lisp.

Methods
Method: application-find-user ((app application) username)
Generic Reader: application.charset (object)
Generic Writer: (setf application.charset) (object)
Package

it.bese.ucw.core.

Methods
Reader Method: application.charset ((basic-application basic-application))
Writer Method: (setf application.charset) ((basic-application basic-application))

Default charset for sent text/html documents.

Source

basic-classes.lisp.

Target Slot

charset.

Generic Reader: application.dispatchers (object)
Package

it.bese.ucw.core.

Methods
Reader Method: application.dispatchers ((basic-application basic-application))

A list of request
dispatchers. The user supplied list of dispatchers is extended with other dispatchers that are required for UCW to function properly (action-dispatcher, a parenscript-dispatcher, etc). If you want full control over the active dispatchers use the (setf application.dispatchers) accessor or, if you want control over the order of the dispathcers, (slot-value instance ’dispatchers).

Source

basic-classes.lisp.

Target Slot

dispatchers.

Generic Function: (setf application.dispatchers) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf application.dispatchers) :around ((app basic-application))
Source

basic-application.lisp.

Target Slot

dispatchers.

Method: (setf application.dispatchers) ((basic-application basic-application))

A list of request
dispatchers. The user supplied list of dispatchers is extended with other dispatchers that are required for UCW to function properly (action-dispatcher, a parenscript-dispatcher, etc). If you want full control over the active dispatchers use the (setf application.dispatchers) accessor or, if you want control over the order of the dispathcers, (slot-value instance ’dispatchers).

Source

basic-classes.lisp.

Generic Reader: application.online-users (object)
Package

ucw-standard.

Methods
Reader Method: application.online-users ((user-track-application-mixin user-track-application-mixin))

automatically generated reader method

Source

secure-application.lisp.

Target Slot

online-users.

Generic Writer: (setf application.online-users) (object)
Package

ucw-standard.

Methods
Writer Method: (setf application.online-users) ((user-track-application-mixin user-track-application-mixin))

automatically generated writer method

Source

secure-application.lisp.

Target Slot

online-users.

Generic Reader: application.server (object)
Package

it.bese.ucw.core.

Methods
Reader Method: application.server ((minimal-application minimal-application))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

server.

Generic Writer: (setf application.server) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf application.server) ((minimal-application minimal-application))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

server.

Generic Reader: application.static-roots (object)
Generic Writer: (setf application.static-roots) (object)
Package

ucw-standard.

Methods
Reader Method: application.static-roots ((static-roots-application-mixin static-roots-application-mixin))
Writer Method: (setf application.static-roots) ((static-roots-application-mixin static-roots-application-mixin))

A list of (URL-subdir . pathname)
pairs to use when looking for static files. This follows standard CL pathname syntax i.e. you must include a trailing / in both the URL-subdir and pathname.

Source

static-roots-application.lisp.

Target Slot

static-roots.

Generic Reader: application.url-prefix (application)

Returns the url prefix (a string) for APPLICATION.

The URL prefix is that string which, when used as the prefix of an incoming http query path, identifies an application.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: application.url-prefix ((minimal-application minimal-application))

A string specifying the
start (prefix) of all the urls this app should handle.

This value is used by the standard-server to decide what app a particular request is aimed at and for generating links to actions within the app.

Source

basic-classes.lisp.

Target Slot

url-prefix.

Generic Writer: (setf application.url-prefix) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf application.url-prefix) ((minimal-application minimal-application))

A string specifying the
start (prefix) of all the urls this app should handle.

This value is used by the standard-server to decide what app a particular request is aimed at and for generating links to actions within the app.

Source

basic-classes.lisp.

Target Slot

url-prefix.

Generic Function: backtrack (frame place &optional value)
Package

it.bese.ucw.core.

Source

backtracking.lisp.

Methods
Method: backtrack ((frame session-frame) place &optional value)
Generic Function: backtrack-slot (frame object slot-name &optional copyer)
Package

it.bese.ucw.core.

Source

backtracking.lisp.

Methods
Method: backtrack-slot ((frame standard-session-frame) object slot-name &optional copyer)
Generic Function: call-action (action application session frame)

This protocol is started when we are ready to call the action.
If the action was found to be valid then the default implementation simply funcalls the action wrapped in an error handler.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: call-action :around (action application (session transactional-session-mixin) (frame transactional-session-frame-mixin))
Source

transactional-application.lisp.

Method: call-action :before ((action basic-action) application (session basic-session) previous-frame)
Source

basic-action.lisp.

Method: call-action ((action action-with-isolation-support) application session frame)
Source

basic-action.lisp.

Method: call-action ((action action) application session frame)

The base method simply funcalls the action.

Source

basic-action.lisp.

Method: call-action :around ((action action) application session frame)

Install an error handler that redirects all errors to the HANDLE-TOPLEVEL-CONDITION protocol.

Source

basic-action.lisp.

Generic Function: call-callbacks (action frame request)

Call all the callbacks in REQUEST for FRAME.

Methods defined on this generic function must be built up from using map-parameters (part of the backend protocol). Return nil iff there were no callbacks executed.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: call-callbacks :around ((action basic-action) frame request)
Source

basic-action.lisp.

Method: call-callbacks (action (frame standard-session-frame) (request request))

Execute all the callback lambda in CONTEXT’s request.

Simply goes through the request’s params and, for every param
which isn’t +action-parameter-name+, +frame-parameter-name+ or +session-parameter-name+, looks up and call the associated lambda in the current frame. Makes sure dependent callbacks are executed after their dependencies.

Source

standard-session-frame.lisp.

Generic Function: call-component (from to)

Transfer control from the component CALLER, to
the component CALLEE.

CALLEE should replace CALLER in the user interface (by setting itself in CALLER’s place). CALLEE can return control to CALLER by calling answer-component.

call-component can be called by user code even though it will generally be called through the UCW:CALL function.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Method Combination

cc-standard.

Methods
Method: call-component :before (from (to standard-component))
Source

secure-application.lisp.

Method: call-component :primary ((from null) (to standard-component))

Passes control to the TO when there is no current (FROM) component. This method is called in dispatchers, actions should always have a FROM component.

Source

control-flow.lisp.

Method: call-component :primary ((from standard-component) (to standard-component))

Transfer control from FROM to the component TO.

This method grabs the current continuation (and so doesn’t return normally) passes it to TO and puts TO in FROM’s place (by modifying FROM’s component.place).

This method does not return normally but simply stops the execution of the current action and returns when TO answers.

Source

control-flow.lisp.

Generic Function: call-render (action application session frame)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: call-render ((action basic-action) application session frame)
Source

basic-action.lisp.

Generic Function: cancel (self)
Package

ucw-standard.

Source

user-login.lisp.

Method Combination

cc-standard.

Methods
Method: cancel :primary ((self user-login))
Generic Function: child-components (standard-component &key predicate key)

Return the children of a component.

Package

it.bese.ucw.core.

Source

standard-component.lisp.

Methods
Method: child-components ((c container) &key predicate key)
Source

container.lisp.

Method: child-components ((component standard-component) &key predicate key)

Find all children components of the given components.
This will only return children components that were declared on the class as a component and have components in those slots.

Generic Function: clear-container (c)
Package

ucw-standard.

Methods
Method: clear-container ((c container))
Source

container.lisp.

Generic Function: close-request (request)

This method is called when the server is done
with REQUEST. If any shared resources were grabbed during the request handling they should be freed.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: component-at (container index)
Package

ucw-standard.

Methods
Method: component-at ((container container) (index integer))

Returns the component object in CONTAINER associated at the given INDEX.

Source

container.lisp.

Generic Function: (setf component-at) (container index &optional key)
Package

ucw-standard.

Methods
Method: (setf component-at) :after ((container switching-container) index &optional key)
Source

container.lisp.

Method: (setf component-at) ((container container) (index integer) &optional key)

Associates KEY with COMPONENT in the container CONTAINER at the given index.
If KEY is not provided use the key-generator lambda. (setf (c 0 "optinal-key") x)

Source

container.lisp.

Generic Reader: component-cache (object)
Generic Writer: (setf component-cache) (object)
Package

ucw-standard.

Methods
Reader Method: component-cache ((cache-component-mixin cache-component-mixin))
Writer Method: (setf component-cache) ((cache-component-mixin cache-component-mixin))

A string holding the output to use
for this component. This string will be written directly to the html stream.

Source

cached.lisp.

Target Slot

cached-output.

Generic Function: component-cache-invalid-p (component)

Returns T if COMPONENT’s cache is invalid.

Package

ucw-standard.

Source

cached.lisp.

Methods
Method: component-cache-invalid-p ((n num-hits-cache-component-mixin))
Method: component-cache-invalid-p ((c timeout-cache-component-mixin))
Method: component-cache-invalid-p :around ((c cache-component-mixin))
Generic Reader: component.calling-component (object)
Package

it.bese.ucw.core.

Methods
Reader Method: component.calling-component ((standard-component standard-component))

The component which transfered control to this component.

When this component ANSWERs it returns control to the calling-component and modifes the associated place. Only in the case of top level components will this slot be NIL.

Source

standard-component.lisp.

Target Slot

calling-component.

Generic Writer: (setf component.calling-component) (component)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Writer Method: (setf component.calling-component) ((standard-component standard-component))

The component which transfered control to this component.

When this component ANSWERs it returns control to the calling-component and modifes the associated place. Only in the case of top level components will this slot be NIL.

Source

standard-component.lisp.

Target Slot

calling-component.

Generic Reader: component.place (object)
Generic Writer: (setf component.place) (object)
Package

it.bese.ucw.core.

Methods
Reader Method: component.place ((standard-component standard-component))
Writer Method: (setf component.place) ((standard-component standard-component))

The place (a PLACE object) which holds this component.

Only in the case of top level component will this slot be NIL.

Source

standard-component.lisp.

Target Slot

place.

Generic Function: compute-url (action component)

Return a URL with the proper session, frame and action-id parameters.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: compute-url ((action action) (component standard-component))

Walks up the component tree based at COMPONENT and calls UPDATE-URL on the components.

Source

standard-component.lisp.

Method: compute-url :around (action (app application-with-session-handling-mixin))

Appends the session and frame parameters UCW needs to find the session and the frame.

Source

basic-application.lisp.

Method: compute-url ((action action) (app basic-application))

Creates the default url for APP which, when requested, will cause the action to be called.

The generated URL’s path will be the app’s url-prefix.

Source

basic-application.lisp.

Generic Reader: container.contents (object)
Generic Writer: (setf container.contents) (object)
Package

ucw-standard.

Methods
Reader Method: container.contents ((container container))
Writer Method: (setf container.contents) ((container container))

An alist of (key . component) holding the controlled components.

Source

container.lisp.

Target Slot

contents.

Generic Function: container.current-component (container)
Package

ucw-standard.

Methods
Method: container.current-component ((container switching-container))
Source

container.lisp.

Generic Function: (setf container.current-component) (container)
Package

ucw-standard.

Methods
Method: (setf container.current-component) ((container switching-container))

This method assumes that the container was initialized with #’identity as key generator.

Returns two values: (VALUE T) if the set actually happenend,
or (VALUE NIL) if the given component is already the current component.

Source

container.lisp.

Method: (setf container.current-component) ((container switching-container))
Source

container.lisp.

Generic Reader: container.current-component-key (object)
Package

ucw-standard.

Methods
Reader Method: container.current-component-key ((switching-container switching-container))

The key of the current component.

Source

container.lisp.

Target Slot

current-component-key.

Generic Function: (setf container.current-component-key) (container)
Package

ucw-standard.

Methods
Method: (setf container.current-component-key) ((container switching-container))
Source

container.lisp.

Generic Reader: container.key-generator (object)
Generic Writer: (setf container.key-generator) (object)
Package

ucw-standard.

Methods
Reader Method: container.key-generator ((container container))
Writer Method: (setf container.key-generator) ((container container))

A lambda that generates the keys from a component when they are not specified

Source

container.lisp.

Target Slot

key-generator.

Generic Reader: container.key-test (object)
Generic Writer: (setf container.key-test) (object)
Package

ucw-standard.

Methods
Reader Method: container.key-test ((container container))
Writer Method: (setf container.key-test) ((container container))

Function used to compare two keys.

Source

container.lisp.

Target Slot

key-test.

Generic Reader: context.action (object)
Package

it.bese.ucw.core.

Methods
Reader Method: context.action ((standard-request-context standard-request-context))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

action.

Generic Writer: (setf context.action) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf context.action) ((standard-request-context standard-request-context))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

action.

Generic Reader: context.application (context)

Accessor for the application object in CONTEXT.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: context.application ((standard-request-context standard-request-context))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

application.

Generic Writer: (setf context.application) (context)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Writer Method: (setf context.application) ((standard-request-context standard-request-context))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

application.

Generic Function: context.current-frame (context)

Return the "current" (most recent) session-frame in CONTEXT’s session.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: context.current-frame ((context request-context))

Simply call session.current-frame on context’s session object.

Generic Function: (setf context.current-frame) (context)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: (setf context.current-frame) ((context request-context))

Simply call (setf session.current-frame) on context’s session object.

Generic Reader: context.request (context)

Accessor for the request object in CONTEXT.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: context.request ((standard-request-context standard-request-context))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

request.

Generic Writer: (setf context.request) (context)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Writer Method: (setf context.request) ((standard-request-context standard-request-context))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

request.

Generic Reader: context.response (context)

Accessor for the response object in CONTEXT.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: context.response ((standard-request-context standard-request-context))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

response.

Generic Writer: (setf context.response) (context)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Writer Method: (setf context.response) ((standard-request-context standard-request-context))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

response.

Generic Reader: context.session (context)

Accessor for the session object in CONTEXT.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: context.session ((standard-request-context standard-request-context))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

session.

Generic Function: (setf context.session) (context)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: (setf context.session) :after ((context cookie-session-request-context-mixin))
Source

cookie-session-application.lisp.

Writer Method: (setf context.session) ((standard-request-context standard-request-context))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

session.

Generic Function: context.window-component (context)

Return the "current" (most recenct) window component in CONTEXT’s session.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: context.window-component ((context request-context))
Source

standard-request-context.lisp.

Generic Function: (setf context.window-component) (context)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: (setf context.window-component) ((context request-context))
Source

standard-request-context.lisp.

Generic Function: cookies (request)

Returns the cookies in this request in a sequence.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: debug-on-error (application)

Returns T if APPLICATION should attempt to debug errors (instead of just returning an error page).

Package

it.bese.ucw.core.

Source

vars.lisp.

Methods
Method: debug-on-error :around ((app basic-application))
Source

basic-application.lisp.

Reader Method: debug-on-error ((minimal-application minimal-application))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

debug-on-error.

Method: debug-on-error (app)

Method used when there is no current application or its debug-on-error slot is unbound.

Generic Function: (setf debug-on-error) (app)
Package

it.bese.ucw.core.

Source

vars.lisp.

Methods
Writer Method: (setf debug-on-error) ((minimal-application minimal-application))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

debug-on-error.

Method: (setf debug-on-error) ((app null))
Generic Function: delete-session (application session)

Remove the session SESSION from APPLICATION.

User code may not call this function directly, see MARK-SESSION-INVALID if you want to mark a session invalid.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: delete-session :after (application (self user-track-session-mixin))
Source

secure-application.lisp.

Method: delete-session ((application application-with-session-handling-mixin) (session session))
Source

basic-application.lisp.

Method: delete-session :around ((application minimal-application) (session basic-session))
Source

basic-application.lisp.

Method: delete-session :around (application session)
Source

basic-application.lisp.

Generic Function: dispatch (dispatcher application context)

Entry point into a dispatcher. Must return T
if the context has been handled or NIL if it hasn’t.

No methods defined on this function may rebind *context*, nor change CONTEXT’s application. Only if the method returns T is it allowed to modify CONTEXT or APPLICATION, even in that case methods defined on this function must not modify CONTEXT’s application nor rebind *context*.

Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Methods
Method: dispatch ((dispatcher dispatcher) (application basic-application) (context standard-request-context))
Generic Function: encoding (response)

Return a symbol representing the desired encoding when writing strings into the network stream.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: ensure-session (application context &optional new-session)

Makes sure the context has a valid session,
set it to NEW-SESSION if there’s none. Returns the session.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: ensure-session ((app application-with-session-handling-mixin) (context standard-request-context) &optional session)

If CONTEXT’s request specifies a session then put it in the context, otherwise create a new context.

Updates the session’s last-access time.

Source

basic-application.lisp.

Method: ensure-session :around (application context &optional session)
Source

basic-application.lisp.

Generic Function: exit-user (self)
Package

ucw-standard.

Source

secure-application.lisp.

Method Combination

cc-standard.

Methods
Method: exit-user :primary ((self standard-component))

Delete session and throw user away to entry point.

Generic Function: find-action-id (context)

Same as find-session-id but looks for the action id.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: find-action-id :around ((context standard-request-context))
Source

standard-action.lisp.

Method: find-action-id ((context standard-request-context))
Source

standard-request-context.lisp.

Generic Function: find-component (c key)
Package

it.bese.ucw.core.

Methods
Method: find-component ((c container) key)

Returns the component object in C associated with KEY.

Source

container.lisp.

Generic Function: (setf find-component) (container key)
Package

it.bese.ucw.core.

Methods
Method: (setf find-component) ((container container) key)

Associates KEY with COMPONENT in the container CONTAINER.

Source

container.lisp.

Generic Function: find-session-id (context)

Returns the client supplied session-id in CONTEXT.

Methods should inspect the context’s request object and return a string specifying the session-id. No guarantee on the validity (well-formedness or existence) of the returned session-id is made.

If no session-id is supplied NIL must be returned.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: find-session-id :around ((context cookie-session-request-context-mixin))
Source

cookie-session-application.lisp.

Method: find-session-id ((context standard-request-context))

Returns the value of the GET or POST parameter named +session-parameter-name+

Source

standard-request-context.lisp.

Generic Reader: frame.id (session-frame)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: frame.id ((standard-session-frame standard-session-frame))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

id.

Generic Writer: (setf frame.id) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf frame.id) ((standard-session-frame standard-session-frame))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

id.

Generic Reader: frame.window-component (session-frame)

Accessor for SESSION-FRAME’s window component.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: frame.window-component ((standard-session-frame standard-session-frame))

The root component for this
frame. The standard-server calls render on this component when the frame is ready to be presented to the user.

Source

basic-classes.lisp.

Target Slot

window-component.

Generic Writer: (setf frame.window-component) (session-frame)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Writer Method: (setf frame.window-component) ((standard-session-frame standard-session-frame))

The root component for this
frame. The standard-server calls render on this component when the frame is ready to be presented to the user.

Source

basic-classes.lisp.

Target Slot

window-component.

Generic Function: get-header (message header-name)

Return the value of the header named HEADER-NAME.

HEADER-NAME must be a string and will be compared case sensitvly agaist the headers in the message.

Callers are not allowed to modify the value returned by GET-HEADER.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: (setf get-header) (message header-name)

Change the value of the header named
HEADER-NAME. Like in get-header HEADER-NAME must be a string.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: get-parameter (request parameter-name)

Returns the query value, a string or a list of
strings, associated with the name PARAMETER-NAME. As with GET-HEADER callers are not allowed to modify the value retruned by this function.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: handle-action (action application session frame)

Determines how a UCW action is processed.

This method is called when a valid session was identified or created and
an action needs to be executed in that session (this includes entry points, too).

This method can be a central point for user code to hook into, for app specific purposes like setting up a db transaction, etc.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Method Combination

wrapping-standard.

Methods
Method: handle-action :around ((action standard-action) a s f)
Source

standard-action.lisp.

Method: handle-action :around ((action basic-action) application (session basic-session) previous-frame)
Source

basic-action.lisp.

Method: handle-action ((action action) application (session basic-session) previous-frame)
Source

basic-action.lisp.

Method: handle-action :wrap-around ((action action) application (session basic-session) frame)
Source

basic-action.lisp.

Method: handle-action :around (action application (session basic-session) frame)
Source

basic-action.lisp.

Method: handle-action :wrap-around (action application (session basic-session) frame)
Source

basic-action.lisp.

Method: handle-action :before ((action action-with-isolation-support) application session frame)
Source

basic-action.lisp.

Method: handle-action ((action action) application session frame)

The base method simply starts the CALL-ACTION protocol.

Source

basic-action.lisp.

Generic Function: handle-request (server request response)

Perform one iteration of the RERL on REQUEST and RESPONSE.

Methods defined on this generic function must be built from the methods associated-application and service and should, as much as possible, handle all conditions signalled by calls to service.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: handle-request ((server standard-server) (request request) (response response))
Source

standard-server.lisp.

Generic Function: handle-toplevel-condition (application condition action)

Process a condition that reached the UCW toplevel.
If this function returns it means that the callers must try to clean up and continue.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: handle-toplevel-condition (application (error too-many-sessions) action)
Source

request-loop-error.lisp.

Method: handle-toplevel-condition (application (error no-handler-for-request) action)
Source

request-loop-error.lisp.

Method: handle-toplevel-condition (application (error serious-condition) action)
Source

request-loop-error.lisp.

Method: handle-toplevel-condition :before (application (error serious-condition) action)
Source

request-loop-error.lisp.

Generic Reader: handler (object)
Generic Writer: (setf handler) (object)
Package

it.bese.ucw.core.

Methods
Reader Method: handler ((function-handler function-handler))
Writer Method: (setf handler) ((function-handler function-handler))

Called when the dispatchers finds a
maching request. This function must be a zero arg’ed (lambda ()
...)

Source

standard-dispatchers.lisp.

Target Slot

handler.

Reader Method: handler ((entry-point-handler entry-point-handler))
Writer Method: (setf handler) ((entry-point-handler entry-point-handler))

Function to run when this
entry-point-handler runs. This handler is a zero-arged.

Source

basic-dispatchers.lisp.

Target Slot

handler.

Generic Function: handler-handle (handler application context matcher-result)

Abstract function for handler classes to
implement the handling of the matched request.

These methods may modify context as they wish since they are matched, request will be closed after this method is run.

Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Methods
Method: handler-handle :around ((handler regexp-binding-handler) application context matcher-result)
Source

standard-dispatchers.lisp.

Method: handler-handle :around ((handler starts-with-binding-handler) application context matcher-result)
Source

standard-dispatchers.lisp.

Method: handler-handle ((dispatcher simple-dispatcher) (application basic-application) (context standard-request-context) matcher-result)
Source

standard-dispatchers.lisp.

Method: handler-handle ((function-handler function-handler) (application basic-application) (context standard-request-context) matcher-result)
Source

standard-dispatchers.lisp.

Method: handler-handle ((dispatcher action-dispatcher) (application basic-application) (context standard-request-context) matcher-result)
Method: handler-handle ((handler entry-point-handler) (application basic-application) (context standard-request-context) matcher-result)
Generic Function: headers-are-sent-p (response)

Returns whether the headers are already written to the network stream or not.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: html-element.css-class (object)
Package

ucw-standard.

Methods
Method: html-element.css-class :around ((self list-container))
Source

container.lisp.

Reader Method: html-element.css-class ((html-element-mixin html-element-mixin))

automatically generated reader method

Source

html-element.lisp.

Target Slot

css-class.

Generic Writer: (setf html-element.css-class) (object)
Package

ucw-standard.

Methods
Writer Method: (setf html-element.css-class) ((html-element-mixin html-element-mixin))

automatically generated writer method

Source

html-element.lisp.

Target Slot

css-class.

Generic Reader: html-element.css-style (object)
Package

ucw-standard.

Methods
Reader Method: html-element.css-style ((html-element-mixin html-element-mixin))

automatically generated reader method

Source

html-element.lisp.

Target Slot

css-style.

Generic Writer: (setf html-element.css-style) (object)
Package

ucw-standard.

Methods
Writer Method: (setf html-element.css-style) ((html-element-mixin html-element-mixin))

automatically generated writer method

Source

html-element.lisp.

Target Slot

css-style.

Generic Reader: html-element.dom-id (object)
Package

ucw-standard.

Methods
Reader Method: html-element.dom-id ((html-element-mixin html-element-mixin))

automatically generated reader method

Source

html-element.lisp.

Target Slot

dom-id.

Generic Writer: (setf html-element.dom-id) (object)
Package

ucw-standard.

Methods
Writer Method: (setf html-element.dom-id) ((html-element-mixin html-element-mixin))

automatically generated writer method

Source

html-element.lisp.

Target Slot

dom-id.

Generic Function: html-stream (response)

Return the stream we can write html output to.

This stream may be cached in order to provide an accurate Content-Length header.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: jump-to-component (target)
Package

it.bese.ucw.core.

Methods
Method: jump-to-component ((target standard-component))

Transfer control of the window to TARGET.

This method, unlike call-component, drops the backtrack and component stack and clears the session table. TARGET will be placed in the current frame’s window-component (and so sholud be a window-component or similar). Using the backbutton or accessing previously cloned windows will no longer work.

Source

control-flow.lisp.

Generic Reader: lock-of (object)
Package

it.bese.ucw.core.

Methods
Reader Method: lock-of ((basic-session basic-session))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

lock.

Reader Method: lock-of ((standard-server standard-server))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

lock.

Reader Method: lock-of ((minimal-application minimal-application))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

lock.

Generic Writer: (setf lock-of) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf lock-of) ((basic-session basic-session))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

lock.

Writer Method: (setf lock-of) ((standard-server standard-server))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

lock.

Writer Method: (setf lock-of) ((minimal-application minimal-application))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

lock.

Generic Function: login-user (self)
Package

ucw-standard.

Source

secure-application.lisp.

Method Combination

cc-standard.

Methods
Method: login-user :primary ((self standard-component))
Generic Function: logout-user (self)
Package

ucw-standard.

Source

secure-application.lisp.

Method Combination

cc-standard.

Methods
Method: logout-user :primary ((self standard-component))

Delete user but stay at the same place.

Generic Function: make-backend (backend-spec &key &allow-other-keys)

Returns a UCW server backend as requested by
the functional arguments. BACKEND-SPEC may be :HTTPD, :MOD-LISP, an existing backend, an existing UCW server backend or :DEFAULT in which case it attempts to return a sane default from the UCW backends loaded and available.

Package

it.bese.ucw.core.

Source

control.lisp.

Methods
Method: make-backend ((backend-spec backend) &key)
Method: make-backend ((backend-spec (eql :default)) &rest keys)
Method: make-backend ((backend-spec (eql :iolib)) &rest keys)
Method: make-backend ((backend-spec (eql :mod-lisp)) &rest keys)
Method: make-backend ((backend-spec (eql :httpd)) &rest keys)
Method: make-backend (backend-spec &rest args)
Generic Function: make-request-context (application request response)

Create a new request-context form REQUEST and RESPONSE.

The returned context will have its application, request and response slots set to APPLICATION, REQUEST and RESPONSE.

This method need not neccessarily return a new object each time but may reuse previouly created objects in which case a call to clear-context must be made before returning the object.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: make-request-context ((app minimal-application) (request request) (response response))
Source

basic-application.lisp.

Generic Function: map-parameters (request lambda)

Apply LAMBDA to all the parameters in REQUEST.

LAMBDA will be passed two arguments: the name of the parameter, a string, and the value of the parameter, a string or a list of strings. The values are passed in that order and LAMBDA must not modify any of the values passed to it.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: matcher-match (matcher application context)

Abstract method for subclasses to implement a
matcher. This method would return multiple-values according to matcher internal nature, but the first return value is always used to indicate if this matcher matched.

No methods defined on this function may rebind *context*, nor change CONTEXT’s application. Only if the method matches the request, it is allowed to modify CONTEXT or APPLICATION, even in that case methods defined on this function must not modify CONTEXT’s application nor rebind *context*.

Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Methods
Method: matcher-match ((matcher regexp-url-matcher) (application basic-application) (context standard-request-context))

Returns two values to handler on success: the whole match as a string plus an array of substrings (or NILs) corresponding to the matched registers.

Source

standard-dispatchers.lisp.

Method: matcher-match ((matcher starts-with-matcher) (application basic-application) (context standard-request-context))

Returns matched url-string to handler.

Source

standard-dispatchers.lisp.

Method: matcher-match ((matcher action-dispatcher) (application basic-application) (context standard-request-context))
Method: matcher-match ((matcher url-matcher) (application basic-application) (context standard-request-context))

Returns matched url-string to handler.

Method: matcher-match ((matcher session-frame-matcher) (application basic-application) (context standard-request-context))
Generic Function: mime-part-body (mime-part)

Returns the body of MIME-PART.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: mime-part-headers (mime-part)

Returns an alist of the headers of MIME-PART.

The alist must be of the form (NAME . VALUE) where both NAME and VALUE are strings.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Reader: network-stream (response)

Return the stream attached to the client’s browser.

Any bytes written to this stream are sent immediatly to the client (though buffering issues may arise).

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: network-stream ((dummy-response dummy-response))

automatically generated reader method

Source

standard-request-context.lisp.

Target Slot

network-stream.

Generic Writer: (setf network-stream) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf network-stream) ((dummy-response dummy-response))

automatically generated writer method

Source

standard-request-context.lisp.

Target Slot

network-stream.

Generic Function: note-cache-updated (component output)

Called whenever COMPONENT’s cache is updated. It is safe to override the primary method.

Package

ucw-standard.

Source

cached.lisp.

Methods
Method: note-cache-updated ((n num-hits-cache-component-mixin) output)
Method: note-cache-updated ((c timeout-cache-component-mixin) output)
Method: note-cache-updated ((component cache-component-mixin) output)
Generic Function: notify-session-expiration (session)

This is called after the session has been deleted.

While this method is called the application is not locked (so it’s ok to grab external resouces) but the session is.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: notify-session-expiration (session)
Source

basic-application.lisp.

Method: notify-session-expiration :before ((session basic-session))
Source

basic-application.lisp.

Generic Function: on-authorization-reject (app user from to)
Package

ucw-standard.

Source

secure-application.lisp.

Method Combination

cc-standard.

Methods
Method: on-authorization-reject :primary ((app application) user from (to standard-component))
Generic Function: paged-list.current-page (range)
Package

ucw-standard.

Methods
Method: paged-list.current-page ((range paged-list))
Source

paged-list.lisp.

Generic Function: paged-list.have-next-p (view)
Package

ucw-standard.

Methods
Method: paged-list.have-next-p ((view paged-list))

Returns true if VIEW has a page after the current one.

Source

paged-list.lisp.

Generic Function: paged-list.have-previous-p (view)
Package

ucw-standard.

Methods
Method: paged-list.have-previous-p ((view paged-list))

Returns true if VIEW has a page before the current one.

Source

paged-list.lisp.

Generic Reader: paged-list.offset (object)
Generic Writer: (setf paged-list.offset) (object)
Package

ucw-standard.

Methods
Reader Method: paged-list.offset ((paged-list paged-list))
Writer Method: (setf paged-list.offset) ((paged-list paged-list))

Which of the pages we’re currently looking at.

Source

paged-list.lisp.

Target Slot

offset.

Generic Function: paged-list.page-count (list)
Package

ucw-standard.

Methods
Method: paged-list.page-count ((list paged-list))
Source

paged-list.lisp.

Generic Reader: paged-list.page-size (object)
Package

ucw-standard.

Methods
Reader Method: paged-list.page-size ((paged-list paged-list))

automatically generated reader method

Source

paged-list.lisp.

Target Slot

page-size.

Generic Writer: (setf paged-list.page-size) (object)
Package

ucw-standard.

Methods
Writer Method: (setf paged-list.page-size) ((paged-list paged-list))

automatically generated writer method

Source

paged-list.lisp.

Target Slot

page-size.

Generic Reader: paged-list.pages (object)
Package

ucw-standard.

Methods
Reader Method: paged-list.pages ((paged-list paged-list))

automatically generated reader method

Source

paged-list.lisp.

Target Slot

pages.

Generic Reader: parent (component)

Returns the parent of COMPONENT.

Only window components and detached components may return NIL from this function.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: parent ((standard-component standard-component))

automatically generated reader method

Source

standard-component.lisp.

Target Slot

parent.

Generic Writer: (setf parent) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf parent) ((standard-component standard-component))

automatically generated writer method

Source

standard-component.lisp.

Target Slot

parent.

Generic Function: place (place)
Package

it.bese.ucw.core.

Source

backtracking.lisp.

Methods
Method: place ((place place))

Returns the current value of PLACE.

Generic Function: (setf place) (place)
Package

it.bese.ucw.core.

Source

backtracking.lisp.

Methods
Method: (setf place) ((place place))

Set the value of PLACE to VALUE.

Generic Reader: query-path (request)

Return the QUERY-PATH of REQUEST as a string.

The returned string may share structure with objects in the request and sholud be considered read-only. The returned query-path must be already escaped.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: query-path ((condition inexistent-request-part))
Source

conditions.lisp.

Target Slot

query-path.

Generic Writer: (setf query-path) (condition)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf query-path) ((condition inexistent-request-part))
Source

conditions.lisp.

Target Slot

query-path.

Generic Function: refresh-component (component)

This generic action is should simply redraw COMPONENT without performing any action.

It can be used as the :action parameter to forms which have
multiple submit buttons and we don’t want hitting the enter key
to call one of the actions.

Package

it.bese.ucw.core.

Source

control-flow.lisp.

Method Combination

cc-standard.

Methods
Method: refresh-component :primary ((c component))
Generic Function: register-action-in-frame (frame action-entry)

Register an action in the frame and return its id.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: register-action-in-frame ((frame standard-session-frame) action)
Source

standard-session-frame.lisp.

Generic Function: register-application (server applictaion)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: register-application ((server standard-server) (app application))
Source

standard-server.lisp.

Method: register-application :around ((server standard-server) (app application))
Source

standard-server.lisp.

Generic Function: register-callback-in-frame (frame callback &key id)

Registers a callback-entry in this frame and return the callback itself.

When passed in an action generated by FRAME then CALLBACK will be called passing it the value of the corresponding request param.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: register-callback-in-frame ((frame standard-session-frame) callback &key id)

Registers a callback-entry in this frame. When passed in an
action generated by FRAME then CALLBACK will be called passing it the value of the corresponding request param.

Source

standard-session-frame.lisp.

Generic Function: remove-component (c key)
Package

ucw-standard.

Methods
Method: remove-component :around ((c switching-container) key)
Source

container.lisp.

Method: remove-component ((c container) key)

Removes the component object in C associated with KEY. Returns T when container was found and actually removed.

Source

container.lisp.

Generic Function: render (component)

The generic entry point for rendering components to the user.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Method Combination

wrapping-standard.

Methods
Method: render ((self user-login))
Source

user-login.lisp.

Method: render ((task task-component))
Source

task.lisp.

Method: render :around ((component tal-component))

Render a template based component.

The name of the template is the value returned by the generic function TAL-COMPONENT.TEMPLATE-NAME, the template will be rendered
in the environment returned by the generic function TAL-COMPONENT-ENVIRONMENT.

Source

tal.lisp.

Method: render ((redirect redirect-component))
Source

redirect.lisp.

Method: render ((dialog option-dialog))
Source

option-dialog.lisp.

Method: render ((pane tabbed-pane))
Source

container.lisp.

Method: render ((container list-container))
Source

container.lisp.

Method: render ((container switching-container))
Source

container.lisp.

Method: render :after ((n num-hits-cache-component-mixin))
Source

cached.lisp.

Method: render :wrapping ((c cache-component-mixin))
Source

cached.lisp.

Method: render :wrap-around ((widget html-inline-element-mixin))

Wrap component in a <span> tag.

Source

html-element.lisp.

Method: render :wrap-around ((widget html-block-element-mixin))

Wrap component in a <div> tag.

Source

html-element.lisp.

Method: render ((m info-message))
Source

standard-components.lisp.

Method: render ((window basic-window-features-mixin))

This convience method assumes: 1) the stylesheet is
external (as opposed to inlined) or is not used; 2) the script file is javascript and is external or is no script is used and 3) the title is either a literal or a lambda with one argument (the window).

Source

standard-components.lisp.

Method: render :wrap-around (component)
Source

standard-components.lisp.

Method: render :before ((window window-component))
Source

window.lisp.

Method: render ((comp dummy-root-component))
Source

standard-request-context.lisp.

Method: render :wrapping ((component standard-component))

Setup up a convience restart, bind *yaclml-stream* and add inspector links.

Source

standard-component.lisp.

Method: render :wrap-around ((component standard-component))
Source

standard-component.lisp.

Method: render (component)
Source

standard-component.lisp.

Generic Function: render-html-body (window)
Package

it.bese.ucw.core.

Source

standard-components.lisp.

Methods
Method: render-html-body :before ((self user-login-window))
Source

user-login.lisp.

Method: render-html-body ((self user-login-window))
Source

user-login.lisp.

Method: render-html-body ((err error-message-window))
Source

error.lisp.

Method: render-html-body ((window standard-window-component))
Method: render-html-body :around ((window basic-window-features-mixin))
Generic Function: render-paged-list-item (paged-list item)

Render a single element of a paged-list.

Package

ucw-standard.

Source

paged-list.lisp.

Methods
Method: render-paged-list-item ((paged-list paged-list) item)

Standard implementation of RENDER-PAGED-LIST-ITEM. Simply applies ITEM to princ (via <:as-html).

Generic Function: render-pane-contents (pane)
Package

ucw-standard.

Source

container.lisp.

Methods
Method: render-pane-contents ((pane tabbed-pane))
Generic Function: render-pane-options (pane)
Package

ucw-standard.

Source

container.lisp.

Methods
Method: render-pane-options ((pane tabbed-pane))
Generic Function: render-template (context template-name environment)
Package

ucw-standard.

Methods
Method: render-template ((context request-context) template-name environment)
Source

tal.lisp.

Generic Function: request-context-class (application)

Returns a list of the context mixin classes.

Custom implementations should look something like this: (defmethod request-context-class list ((app your-application)) ’your-request-context-mixin)

Package

it.bese.ucw.core.

Source

protocol.lisp.

Method Combination

list.

Options

:most-specific-first

Methods
Method: request-context-class list ((app cookie-session-application-mixin))
Source

cookie-session-application.lisp.

Method: request-context-class list ((app minimal-application))
Source

basic-application.lisp.

Generic Function: respond (self value)
Package

ucw-standard.

Source

option-dialog.lisp.

Method Combination

cc-standard.

Methods
Method: respond :primary ((self option-dialog) value)
Generic Reader: response-managed-p (object)
Generic Writer: (setf response-managed-p) (object)
Package

it.bese.ucw.core.

Methods
Reader Method: response-managed-p ((response response))
Writer Method: (setf response-managed-p) ((response response))

SEND-RESPONSE for unmanaged responses is a no-op.

Source

protocol.lisp.

Target Slot

managed.

Generic Function: restart-application (application)

Calls shutdown-application and then startup-application on APPLICATION.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: restart-application ((app basic-application))

Calls shutdown-application and then startup-application on APP.

Source

basic-application.lisp.

Generic Function: restart-server (server)
Package

it.bese.ucw.core.

Methods
Method: restart-server ((server standard-server))
Source

standard-server.lisp.

Generic Function: scroll-backward (range &optional n)
Package

ucw-standard.

Source

paged-list.lisp.

Method Combination

cc-standard.

Methods
Method: scroll-backward :primary ((range paged-list) &optional n)
Generic Function: scroll-end (range)
Package

ucw-standard.

Source

paged-list.lisp.

Method Combination

cc-standard.

Methods
Method: scroll-end :primary ((range paged-list))
Generic Function: scroll-forward (view &optional n)
Package

ucw-standard.

Source

paged-list.lisp.

Method Combination

cc-standard.

Methods
Method: scroll-forward :primary ((view paged-list) &optional n)
Generic Function: scroll-start (range)
Package

ucw-standard.

Source

paged-list.lisp.

Method Combination

cc-standard.

Methods
Method: scroll-start :primary ((range paged-list))
Generic Function: scroll-to-page (range page-number)
Package

ucw-standard.

Source

paged-list.lisp.

Method Combination

cc-standard.

Methods
Method: scroll-to-page :primary ((range paged-list) page-number)
Generic Function: secure-application-p (application)

Does APPLICATION require authorized access.

Package

ucw-standard.

Source

secure-application.lisp.

Methods
Method: secure-application-p ((app secure-application-mixin))
Method: secure-application-p (app)
Generic Function: send-headers (response)

Sends all the headers in RESPONSE to the
client. Unlike the send-response method we don’t add a Content-Length header, though if one is present in RESPONSE it will be sent.

After calling this method the response data, a sequence of bytes, should be sent to RESPONSE’s network-stream.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Generic Function: send-response (response)

Assuming RESPONSE is complete send it to the
client. When calling this function we assume all headers have already been set and the body’s content has been collected in the response object.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: send-response :around ((response response))
Source

standard-request-context.lisp.

Generic Reader: server.applications (server)

Return a list of all the application objects SERVER manages.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: server.applications ((standard-server standard-server))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

applications.

Generic Writer: (setf server.applications) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf server.applications) ((standard-server standard-server))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

applications.

Generic Reader: server.backend (object)
Package

it.bese.ucw.core.

Methods
Reader Method: server.backend ((standard-server standard-server))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

backend.

Generic Writer: (setf server.backend) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf server.backend) ((standard-server standard-server))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

backend.

Generic Reader: server.started (object)
Package

it.bese.ucw.core.

Methods
Reader Method: server.started ((standard-server standard-server))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

started.

Generic Writer: (setf server.started) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf server.started) ((standard-server standard-server))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

started.

Generic Function: service (relevant-object context)

The core request handling generic function.

The service protocol consists of 4 passes: application -> session -> session-frame -> action. At each phase the appropriate object is passed to service with the current request object (which is also bound to *context*). The appropiate object must perform whatever it needs and then explicitly call service again passing it the next object in the chain.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: service :around ((app standard-application) context)
Source

standard-components.lisp.

Method: service ((application basic-application) (context request-context))
Source

basic-application.lisp.

Generic Function: session-class (application)

Returns a list of the session mixin classes.

Custom implementations should look something like this: (defmethod session-class list ((app your-application)) ’your-session-mixin)

Package

it.bese.ucw.core.

Source

protocol.lisp.

Method Combination

list.

Options

:most-specific-first

Methods
Method: session-class list ((application transactional-application-mixin))
Source

transactional-application.lisp.

Method: session-class list ((app user-track-application-mixin))
Source

secure-application.lisp.

Method: session-class list ((app basic-application))
Source

basic-application.lisp.

Generic Function: session-frame-class (session)

Returns a list of the session frame mixin classes.

Custom implementations should look something like this: (defmethod session-frame-class list ((session your-session-class)) ’your-session-frame-mixin)

Package

it.bese.ucw.core.

Source

protocol.lisp.

Method Combination

list.

Options

:most-specific-first

Methods
Method: session-frame-class list ((session transactional-session-mixin))
Source

transactional-application.lisp.

Method: session-frame-class list ((s basic-session))
Source

basic-session.lisp.

Generic Reader: session-of (condition)
Generic Writer: (setf session-of) (condition)
Package

it.bese.ucw.core.

Methods
Reader Method: session-of ((condition session-is-invalid))
Writer Method: (setf session-of) ((condition session-is-invalid))
Source

conditions.lisp.

Target Slot

session.

Reader Method: session-of ((standard-component standard-component))

The owner session of this component. A component may only be used in one session at a time.

Source

standard-component.lisp.

Target Slot

session.

Generic Function: session-valid-p (session)

UCW guarantees to only call this function from inside HANDLE-ACTION (and therefore with the session being locked) to check if the session is valid.

This method is similar to SESSION-EXPIRED-P but users can install more heavyweight customizations on it and assume being wrapped by HANDLE-ACTION and WITH-LOCK-HELD-ON-SESSION.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: session-valid-p ((session basic-session))
Source

basic-session.lisp.

Generic Reader: session.id (session)

Returns the id of SESSION.

An ID is a unique (within the same application) object identifying SESSION.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Reader Method: session.id ((basic-session basic-session))

automatically generated reader method

Source

basic-classes.lisp.

Target Slot

id.

Generic Writer: (setf session.id) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf session.id) ((basic-session basic-session))

automatically generated writer method

Source

basic-classes.lisp.

Target Slot

id.

Generic Function: shutdown-application (application)

Terminate the application’s life cycle.

Release any and all resources held by APPLICATION. The value returned by the generic function is unspecified.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: shutdown-application :before ((app application-with-session-handling-mixin))
Source

basic-application.lisp.

Method: shutdown-application :around ((application minimal-application))
Source

basic-application.lisp.

Method: shutdown-application ((application application))
Source

basic-application.lisp.

Generic Function: shutdown-server (server)

Make SERVER stop responding to requests and close/release and resources.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: shutdown-server ((server standard-server))

First call SHUTDOWN-APPLICATION on all the apps registered with SERVER, then call SHUTDOWN-BACKEND on SERVER’s backend.

Source

standard-server.lisp.

Method: shutdown-server :around ((server standard-server))
Source

standard-server.lisp.

Generic Function: start (task)

action which gets called automatically when
task-component is active. Use defmethod/cc to define your specialized "start" methods

Package

ucw-standard.

Source

task.lisp.

Method Combination

cc-standard.

Generic Function: startup-application (application)

Start the application’s request-eval-response loop.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: startup-application :after ((app static-roots-application-mixin))
Source

static-roots-application.lisp.

Method: startup-application :before ((app application-with-session-handling-mixin))

Simply clears out the app’s session-table.

Source

basic-application.lisp.

Method: startup-application ((app application))
Source

basic-application.lisp.

Generic Function: startup-server (server)

Make SERVER start responding to requests.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: startup-server ((server standard-server))

Startup SERVER. This calls startup-backend on the server’s backend and startup-application on all the application objcets registered with SERVER.

Source

standard-server.lisp.

Method: startup-server :around ((server standard-server))
Source

standard-server.lisp.

Generic Function: submit (self)
Package

ucw-standard.

Source

user-login.lisp.

Method Combination

cc-standard.

Methods
Method: submit :primary ((self user-login))
Generic Function: switch-component (container key)
Package

ucw-standard.

Source

container.lisp.

Method Combination

cc-standard.

Methods
Method: switch-component :primary ((container switching-container) key)
Generic Function: tal-component-environment (component)

Create the TAL environment for rendering COMPONENT’s template.

Methods defined on this generic function must return a TAL environment: a list of TAL binding sets (see the documentation for YACLML:MAKE-STANDARD-TAL-ENVIRONMENT for details on TAL environments.)

Package

ucw-standard.

Source

tal.lisp.

Method Combination

nconc.

Options

:most-specific-first

Methods
Method: tal-component-environment nconc ((component simple-tal-component))
Method: tal-component-environment nconc ((component tal-component))

Create the basic TAL environment.

Binds the symbol ucw:component to the component object itself, also puts the object COMPONENT on the environment (after the binding of ucw:component) so that slots are, by default, visable.

Method: tal-component-environment nconc ((dialog option-dialog))
Source

option-dialog.lisp.

Generic Function: unregister-application (server applictaion)
Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: unregister-application ((server standard-server) (app application))
Source

standard-server.lisp.

Method: unregister-application :around ((server standard-server) (app application))
Source

standard-server.lisp.

Generic Function: update-url (component url)

Prepare URL for rendering as action urls.

Each component can define a method on UPDATE-URL to add component-specific parameters. This is generally coupled with a url-dispatcher to create bookmark-able urls.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Methods
Method: update-url ((comp standard-component) url)

Do nothing to the URL.

Source

standard-component.lisp.

Generic Reader: uri.host (object)
Package

it.bese.ucw.core.

Methods
Reader Method: uri.host ((uri uri))

automatically generated reader method

Source

helpers.lisp.

Target Slot

host.

Generic Writer: (setf uri.host) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf uri.host) ((uri uri))

automatically generated writer method

Source

helpers.lisp.

Target Slot

host.

Generic Reader: uri.path (object)
Package

it.bese.ucw.core.

Methods
Reader Method: uri.path ((uri uri))

automatically generated reader method

Source

helpers.lisp.

Target Slot

path.

Generic Writer: (setf uri.path) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf uri.path) ((uri uri))

automatically generated writer method

Source

helpers.lisp.

Target Slot

path.

Generic Reader: uri.query (object)
Package

it.bese.ucw.core.

Methods
Reader Method: uri.query ((uri uri))

automatically generated reader method

Source

helpers.lisp.

Target Slot

query.

Generic Writer: (setf uri.query) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf uri.query) ((uri uri))

automatically generated writer method

Source

helpers.lisp.

Target Slot

query.

Generic Reader: url-string (object)
Package

it.bese.ucw.core.

Methods
Reader Method: url-string ((url-matcher url-matcher))

automatically generated reader method

Source

basic-dispatchers.lisp.

Target Slot

url-string.

Generic Function: (setf url-string) (object)
Package

it.bese.ucw.core.

Methods
Method: (setf url-string) :after ((matcher regexp-url-matcher))
Source

standard-dispatchers.lisp.

Writer Method: (setf url-string) ((url-matcher url-matcher))

automatically generated writer method

Source

basic-dispatchers.lisp.

Target Slot

url-string.

Generic Reader: user-login (object)
Package

ucw-standard.

Methods
Reader Method: user-login ((user-login-window user-login-window))

automatically generated reader method

Source

user-login.lisp.

Target Slot

user-login.

Generic Writer: (setf user-login) (object)
Package

ucw-standard.

Methods
Writer Method: (setf user-login) ((user-login-window user-login-window))

automatically generated writer method

Source

user-login.lisp.

Target Slot

user-login.

Generic Reader: window-body (object)
Package

ucw-standard.

Methods
Reader Method: window-body ((standard-window-component standard-window-component))

automatically generated reader method

Source

standard-components.lisp.

Target Slot

body.

Generic Writer: (setf window-body) (object)
Package

ucw-standard.

Methods
Writer Method: (setf window-body) ((standard-window-component standard-window-component))

automatically generated writer method

Source

standard-components.lisp.

Target Slot

body.

Generic Reader: window-component.content-prologue (object)
Generic Writer: (setf window-component.content-prologue) (object)
Package

ucw-standard.

Methods
Reader Method: window-component.content-prologue ((basic-window-features-mixin basic-window-features-mixin))
Writer Method: (setf window-component.content-prologue) ((basic-window-features-mixin basic-window-features-mixin))

Unless nil it’s printed <:as-is before any other output. Suitable for <?xml...?> lines.

Source

standard-components.lisp.

Target Slot

content-prologue.

Generic Function: window-component.content-type (object)
Package

it.bese.ucw.core.

Methods
Reader Method: window-component.content-type :around ((window window-component))

Either use slot value, or compute content-type from current application charset.

Source

window.lisp.

Target Slot

content-type.

Method: window-component.content-type ((window-component window-component))

The Content-Type header for the
http response (also used in the meta tag)

Source

window.lisp.

Generic Writer: (setf window-component.content-type) (object)
Package

it.bese.ucw.core.

Methods
Writer Method: (setf window-component.content-type) ((window-component window-component))

The Content-Type header for the
http response (also used in the meta tag)

Source

window.lisp.

Target Slot

content-type.

Generic Reader: window-component.doctype (object)
Generic Writer: (setf window-component.doctype) (object)
Package

ucw-standard.

Methods
Reader Method: window-component.doctype ((basic-window-features-mixin basic-window-features-mixin))
Writer Method: (setf window-component.doctype) ((basic-window-features-mixin basic-window-features-mixin))

Doctype for this window.

Source

standard-components.lisp.

Target Slot

doctype.

Generic Reader: window-component.html-tag-attributes (object)
Generic Writer: (setf window-component.html-tag-attributes) (object)
Package

ucw-standard.

Methods
Reader Method: window-component.html-tag-attributes ((basic-window-features-mixin basic-window-features-mixin))
Writer Method: (setf window-component.html-tag-attributes) ((basic-window-features-mixin basic-window-features-mixin))

A yaclml attribute list that’ll be rendered into the <:html tag’s attributes.

Source

standard-components.lisp.

Target Slot

html-tag-attributes.

Generic Reader: window-component.icon (object)
Generic Writer: (setf window-component.icon) (object)
Package

ucw-standard.

Methods
Reader Method: window-component.icon ((basic-window-features-mixin basic-window-features-mixin))
Writer Method: (setf window-component.icon) ((basic-window-features-mixin basic-window-features-mixin))

Optional URL for an icon.

Source

standard-components.lisp.

Target Slot

icon.

Generic Reader: window-component.javascript (object)
Generic Writer: (setf window-component.javascript) (object)
Package

ucw-standard.

Methods
Reader Method: window-component.javascript ((basic-window-features-mixin basic-window-features-mixin))
Writer Method: (setf window-component.javascript) ((basic-window-features-mixin basic-window-features-mixin))

List of javascript includes.

Each element must be a list whose first value is either the symbol :SRC or :JS.

(:SRC url) - writes <script src="URL"></script> tag. (:JS form) - equivalent to (:SCRIPT (js:js* form)) (:SCRIPT string) - write <script>STRING</script>.

The elements will be rendered in order.

Source

standard-components.lisp.

Target Slot

javascript.

Generic Reader: window-component.stylesheet (object)
Generic Writer: (setf window-component.stylesheet) (object)
Package

ucw-standard.

Methods
Reader Method: window-component.stylesheet ((basic-window-features-mixin basic-window-features-mixin))
Writer Method: (setf window-component.stylesheet) ((basic-window-features-mixin basic-window-features-mixin))

The URL of the css file to use as a stylesheet for this window.

Source

standard-components.lisp.

Target Slot

stylesheet.

Generic Function: window-component.title (object)
Package

ucw-standard.

Methods
Method: window-component.title ((err error-message-window))
Source

error.lisp.

Reader Method: window-component.title ((basic-window-features-mixin basic-window-features-mixin))

automatically generated reader method

Source

standard-components.lisp.

Target Slot

title.

Generic Writer: (setf window-component.title) (object)
Package

ucw-standard.

Methods
Writer Method: (setf window-component.title) ((basic-window-features-mixin basic-window-features-mixin))

automatically generated writer method

Source

standard-components.lisp.

Target Slot

title.


6.1.6 Standalone methods

Method: compute-effective-slot-definition :around ((class standard-component-class) slot-name direct-slot-definitions)
Package

sb-mop.

Source

standard-component-class.lisp.

Method: dequeue :around ((queue frame-queue) &optional default-value)
Package

it.bese.arnesi.

Source

basic-session.lisp.

Method: direct-slot-definition-class ((class standard-component-class) &rest slot-initargs)
Package

sb-mop.

Source

standard-component-class.lisp.

Method: effective-slot-definition-class ((class standard-component-class) &key &allow-other-keys)
Package

sb-mop.

Source

standard-component-class.lisp.

Method: enqueue :after ((queue frame-queue) frame)
Package

it.bese.arnesi.

Source

basic-session.lisp.

Method: finalize-inheritance :after ((class standard-component-class))

:after initialization function for standard-component-class objects.

Setup the proper values in component-class.backtrack-slots and component-class.component-slots in CLASS based on the effective slots of CLASS.

Package

sb-mop.

Source

standard-component-class.lisp.

Method: initialize-instance :around ((class standard-component-class) &rest initargs &key direct-superclasses direct-slots)
Source

standard-component-class.lisp.

Method: initialize-instance :after ((self basic-session) &key)
Source

basic-classes.lisp.

Method: initialize-instance :after ((handler entry-point-handler) &key)
Source

basic-dispatchers.lisp.

Method: initialize-instance :after ((self basic-application) &key)
Source

basic-classes.lisp.

Method: initialize-instance :after ((action action) &key)
Source

basic-action.lisp.

Method: initialize-instance :after ((error inexistent-request-part) &key)
Source

conditions.lisp.

Method: initialize-instance ((c container) &rest args)
Source

container.lisp.

Method: initialize-instance :before ((instance list-container) &key orientation)
Source

container.lisp.

Method: perform :around ((op operation) (component ucw-source-file))
Package

asdf/action.

Source

ucw-core.asd.

Method: print-object ((uri uri) stream-0)
Source

helpers.lisp.

Method: print-object ((self url-matcher) stream-0)
Source

basic-dispatchers.lisp.

Method: print-object ((app application) stream-0)
Source

basic-application.lisp.

Method: print-object ((frame standard-session-frame) stream-0)
Source

basic-classes.lisp.

Method: print-object ((s basic-session) stream-0)
Source

basic-classes.lisp.

Method: print-object ((p place) stream-0)
Source

basic-classes.lisp.

Method: print-object ((server standard-server) stream-0)
Source

standard-server.lisp.

Method: print-object ((app basic-application) stream-0)
Source

basic-classes.lisp.

Method: reinitialize-instance :around ((class standard-component-class) &rest initargs &key direct-superclasses direct-slots)
Source

standard-component-class.lisp.

Method: shared-initialize :after ((session basic-session) slot-names &key &allow-other-keys)
Source

basic-session.lisp.

Method: shared-initialize :after ((c standard-component) slot-names &key frame &allow-other-keys)

Perform the standard initialization for C.

This method registers C’s transaction slot for backtracking and any other slot which has been declared as backtracked. It then proceeds to initialize any component slots in C.

Source

standard-component.lisp.

Method: shared-initialize :after ((app basic-application) slot-names &key &allow-other-keys)
Source

basic-application.lisp.

Method: shared-initialize :after ((app application-with-session-handling-mixin) slot-names &key &allow-other-keys)
Source

basic-application.lisp.

Method: shared-initialize :after ((app minimal-application) slot-names &key &allow-other-keys)
Source

basic-application.lisp.

Method: shared-initialize :before ((action standard-action) slots &rest args)
Source

standard-action.lisp.

Method: shared-initialize :after ((c container) slot-names &rest initargs &key contents)

This method sets up any initial contents for backtacking. If the contents are created via (setf find-component) then the backtracking is done there.

Source

container.lisp.

Method: shared-initialize :after ((range paged-list) slot-names &key data page-size &allow-other-keys)
Source

paged-list.lisp.

Method: shared-initialize :after ((container switching-container) slot-names &key &allow-other-keys)

Make sure the non-visible contained components are detached (their parent is nil).

Source

container.lisp.

Method: shared-initialize :after ((matcher regexp-url-matcher) slot-names &key &allow-other-keys)
Source

standard-dispatchers.lisp.

Method: (setf slot-value-using-class) ((class standard-component-class) (instance standard-component) (slot-def standard-component-effective-slot))
Package

sb-mop.

Source

standard-component.lisp.

Method: validate-superclass ((component-class standard-component-class) (super-class standard-class))

Declare that standard-component-classes can be sub classes of standard-class.

Package

sb-mop.

Source

standard-component-class.lisp.


6.1.7 Classes

Class: action
Package

it.bese.ucw.core.

Source

basic-classes.lisp.

Direct superclasses

funcallable-standard-object.

Direct subclasses

renderable-action.

Direct methods
Direct slots
Slot: action-lambda
Initform

(lambda nil (error "no action function"))

Initargs

:lambda

Readers

action-lambda-of.

Writers

(setf action-lambda-of).

Class: action-dispatcher

This is the core dispatcher for ucw. Due to
how ucw’s COMPUTE-URL method works it is important that the action-dispatcher be checked before any url-dispatchers, so it should be the first element in an application’s dispatcher list.

Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:priority+action-dispatcher-default-priority+
Class: action-with-isolation-support
Package

it.bese.ucw.core.

Source

basic-classes.lisp.

Direct superclasses

basic-action.

Direct methods
Direct slots
Slot: valid

Invalid actions are never called anymore.

Type

boolean

Initform

t

Readers

action-valid-p.

Writers

(setf action-valid-p).

Slot: isolated

Isolated actions are invalidated after the first call.

Type

boolean

Initargs

:isolated

Readers

action-isolated-p.

Writers

(setf action-isolated-p).

Slot: backtracks
Readers

action-backtracks.

Writers

(setf action-backtracks).

Class: application

A UCW application.

Application objects are responsible for:

- Managing a collection of sessions and finding the right session for a given request.

- Managing session life time (session creation and expiration).

- Creating request contexts.

- Managing dispatchers and associating them to request objects.

- Creating http query paths which subsequently (when requested)
call action lambdas.

Since application objects are used to create sessions (via
make-new-session) they are also important when customizing the
functionality of the RERL.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Direct subclasses
Direct methods
Class: basic-action
Package

it.bese.ucw.core.

Source

basic-classes.lisp.

Direct superclasses

renderable-action.

Direct subclasses
Direct methods
Direct Default Initargs
InitargValue
:call-rendert
Direct slots
Slot: call-callbacks
Type

boolean

Initform

t

Initargs

:call-callbacks

Readers

action-call-callbacks-p.

Writers

(setf action-call-callbacks-p).

Slot: call-render
Type

boolean

Initargs

:call-render

Readers

action-call-render-p.

Writers

(setf action-call-render-p).

Slot: make-new-frame
Type

boolean

Initform

t

Initargs

:make-new-frame

Readers

action-make-new-frame-p.

Writers

(setf action-make-new-frame-p).

Class: basic-application

The base UCW application class.

Package

it.bese.ucw.core.

Source

basic-classes.lisp.

Direct superclasses
Direct subclasses

standard-application.

Direct methods
Direct Default Initargs
InitargValue
:dispatchers(list (make-instance (quote action-dispatcher)))
Direct slots
Slot: charset

Default charset for sent text/html documents.

Initform

:utf-8

Initargs

:charset

Readers

application.charset.

Writers

(setf application.charset).

Slot: dispatchers

A list of request
dispatchers. The user supplied list of dispatchers is extended with other dispatchers that are required for UCW to function properly (action-dispatcher, a parenscript-dispatcher, etc). If you want full control over the active dispatchers use the (setf application.dispatchers) accessor or, if you want control over the order of the dispathcers, (slot-value instance ’dispatchers).

Initargs

:dispatchers

Readers

application.dispatchers.

Writers

(setf application.dispatchers).

Class: basic-session
Package

it.bese.ucw.core.

Source

basic-classes.lisp.

Direct superclasses

session.

Direct methods
Direct slots
Slot: frames

The table of session-frame objects generated in this session.

Initform

(make-instance (quote it.bese.ucw.core::frame-queue) :size it.bese.ucw.core::+session-backtracking-max-depth+)

Readers

session.frames.

Writers

(setf session.frames).

Slot: current-frame
Readers

session.current-frame.

Writers

(setf session.current-frame).

Slot: id
Initargs

:id

Readers

session.id.

Writers

(setf session.id).

Slot: last-access
Initform

(get-universal-time)

Initargs

:last-access

Readers

session.last-access.

Writers

(setf session.last-access).

Slot: object-table
Initform

(trivial-garbage::make-hash-table :test (quote eql))

Initargs

:object-pool

Readers

session.object-pool.

Writers

(setf session.object-pool).

Slot: live-backtracks

A cumulated hashtable of all the ALLOCATED-BACKTRACKS of each frame.
When a new frame is created, only these backtracks are cloned. When a frame is dropped, its ALLOCATED-BACKTRACKS are remhash’s from here. Because weak pointers are too expensive for this.

Initform

(trivial-garbage::make-hash-table :test (function eq))

Readers

live-backtracks-of.

Writers

(setf live-backtracks-of).

Slot: lock
Package

bordeaux-threads.

Readers

lock-of.

Writers

(setf lock-of).

Slot: session-frame-class

Caches the class of the effective session frame.

Readers

session-frame-class-of.

Writers

(setf session-frame-class-of).

Class: cache-component-mixin

Component which caches its output.
0
The component caching protocol consists of the generic functions COMPONENT-CACHE-INVALID-P, REFRESH-COMPONENT-OUTPUT, and NOTE-CACHE-UPDATED. Caching is managed in a :wrapping method on RENDER.

Package

ucw-standard.

Source

cached.lisp.

Direct superclasses

standard-component.

Direct subclasses
Direct methods
Direct slots
Slot: cached-output

A string holding the output to use
for this component. This string will be written directly to the html stream.

Readers

component-cache.

Writers

(setf component-cache).

Class: component

The generic super class of all components.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Direct subclasses
Direct methods
Class: container

Allow multiple components to share the same place.

The container component serves to manage a set of components.
It does not provide any render impementation, which is the resposibility of the subclasses (e.g. switching-container or list-container).

Each contained component has a "key" associated with it which
is used to retrieve a particular component. Keys are compared with container.key-test.

The :contents inintarg, if provided, must be either a list of (key . component) or a list of components. In the latter case it will be converted into (component . component) form.

Package

ucw-standard.

Source

container.lisp.

Direct superclasses

standard-component.

Direct subclasses
Direct methods
Direct slots
Slot: contents

An alist of (key . component) holding the controlled components.

Initform

(quote nil)

Initargs

:contents

Readers

container.contents.

Writers

(setf container.contents).

Slot: key-generator

A lambda that generates the keys from a component when they are not specified

Initform

(function identity)

Initargs

:key-generator

Readers

container.key-generator.

Writers

(setf container.key-generator).

Slot: key-test

Function used to compare two keys.

Initform

(function eql)

Initargs

:key-test

Readers

container.key-test.

Writers

(setf container.key-test).

Class for applications which use cookies for sesion tracking.

Cookie session applications work exactly like standard-applications except that when the session is not found using the standard mechanisms the id is looked for in a cookie.

Package

ucw-standard.

Source

cookie-session-application.lisp.

Direct methods

request-context-class.

Class: dispatcher
Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: priority

Dispatchers will be checked from
highest-priority to lowest priority. The default values for priority on the various classes assume this is a positive integer less than most-positive-fixnum.

Initform

0

Initargs

:priority

Readers

priority.

Writers

(setf priority).

Class: entry-point-handler

This handler is used to handle entry-points.

Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: handler

Function to run when this
entry-point-handler runs. This handler is a zero-arged.

Initargs

:handler

Readers

handler.

Writers

(setf handler).

Class: error-message-window

Generic component for showing server side error messages.

Package

ucw-standard.

Source

error.lisp.

Direct superclasses

basic-window-component.

Direct methods
Direct slots
Slot: message
Initform

"[no message specified]"

Initargs

:message

Readers

message.

Writers

(setf message).

Class: handler

Abstract handler class.

Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Direct subclasses

function-handler.

Class: html-block-element-mixin

A component which should be wrapped in a <div>.

Package

ucw-standard.

Source

html-element.lisp.

Direct superclasses

html-element-mixin.

Direct subclasses
Direct methods

render.

Class: html-element-mixin

An HTML element.

HTML elements control aspects that are relevant to almost all tags.

They provide a place to store the class, id, and style of the component. The specific render methods of the components themselves must pass these values to whatever code is used to render the actual tag.

Package

ucw-standard.

Source

html-element.lisp.

Direct subclasses
Direct methods
Direct slots
Slot: css-class
Type

(or null string list)

Initargs

:css-class

Readers

html-element.css-class.

Writers

(setf html-element.css-class).

Slot: dom-id
Type

(or null string)

Initargs

:dom-id

Readers

html-element.dom-id.

Writers

(setf html-element.dom-id).

Slot: css-style
Type

(or null string)

Initargs

:css-style

Readers

html-element.css-style.

Writers

(setf html-element.css-style).

Class: html-inline-element-mixin

A component which should be wrapped in a <span>

Package

ucw-standard.

Source

html-element.lisp.

Direct superclasses

html-element-mixin.

Direct methods

render.

Class: list-container

A simple renderable container component.

This component is exactly like the regular CONTAINER but provides
an implementation of RENDER which renders its contents in <:ol/<:li tags

Package

ucw-standard.

Source

container.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:css-classucw-list-container
:orientationhorizontal
Direct slots
Slot: orientation
Initform

:horizontal

Initargs

:orientation

Readers

orientation.

Writers

(setf orientation).

Class: matcher

Abstract matcher class.

Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Direct subclasses
Class: minimal-dispatcher

A dispatcher which does as little work as
possible. The handler function must do basically everything (including shutdowning down request and response).

Package

ucw-standard.

Source

standard-dispatchers.lisp.

Direct superclasses
Direct Default Initargs
InitargValue
:priority+minimal-dispatcher-default-priority+
Class: num-hits-cache-component-mixin

Render the component every HITS views.

Package

ucw-standard.

Source

cached.lisp.

Direct superclasses

cache-component-mixin.

Direct methods
Direct Default Initargs
InitargValue
:hits10
Direct slots
Slot: hits-since-refresh

Number of views since last refresh.

Readers

hits-since-refresh.

Writers

(setf hits-since-refresh).

Slot: hits

Number of before the cache is invalid.

Initargs

:hits

Readers

hits.

Writers

(setf hits).

Class: option-dialog

Component for querying the user.

The value of the slot MESSAGE is used as a general heading.

The OPTIONS slot must be an alist of (VALUE . LABEL). LABEL (a string) will be used as the text of a link which, when clikced, will answer VALUE.

If the CONFIRM slot is T the user will be presented with a second OPTION-DIALOG asking the user if they are sure they want to submit that value.

Package

ucw-standard.

Source

option-dialog.lisp.

Direct superclasses

standard-component.

Direct methods
Direct slots
Slot: message
Initargs

:message

Readers

message.

Writers

(setf message).

Slot: options
Initargs

:options

Readers

options.

Writers

(setf options).

Slot: confirm
Initargs

:confirm

Readers

confirm.

Writers

(setf confirm).

Class: paged-list

Component for showing the user a set of data one "page" at a time.

The data set is presented one "page" at a time with links to the the first, previous, next and last page. Each page shows at most PAGE-SIZE elements of the data. The data is passed to the paged-list at instance creation time via the :DATA initarg.

The generic function RENDER-PAGED-LIST-ITEM is used to render each item of DATA.

In order to change the rendering of the single elements of a range view developer’s should create a sub class of PAGED-LIST and define their RENDER-PAGED-LIST-ITEM methods on that.

Package

ucw-standard.

Source

paged-list.lisp.

Direct superclasses

standard-component.

Direct methods
Direct slots
Slot: offset

Which of the pages we’re currently looking at.

Initform

0

Initargs

:offset

Readers

paged-list.offset.

Writers

(setf paged-list.offset).

Slot: pages
Initform

(quote nil)

Readers

paged-list.pages.

Writers

This slot is read-only.

Slot: page-size
Initform

20

Initargs

:page-size

Readers

paged-list.page-size.

Writers

(setf paged-list.page-size).

Class: place

A "pointer" or "locative", an object encapsulating a settable and readable place

Package

it.bese.ucw.core.

Source

basic-classes.lisp.

Direct methods
Direct slots
Slot: getter
Initargs

:getter

Readers

place.getter.

Writers

(setf place.getter).

Slot: setter
Initargs

:setter

Readers

place.setter.

Writers

(setf place.setter).

Slot: copyer
Initargs

:copyer

Readers

place.copyer.

Writers

(setf place.copyer).

Slot: form
Package

it.bese.arnesi.

Initargs

:form

Readers

place.form.

Writers

(setf place.form).

Class: regexp-dispatcher

Matches URL using a cl-ppcre regular expression. Captured registers are available via ‘ucw:*dispatcher-registers*’

Package

ucw-standard.

Source

standard-dispatchers.lisp.

Direct superclasses
Direct Default Initargs
InitargValue
:priority+regex-dispatcher-default-priority+
Class: request

Generic superclass for all HTTP requests.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Direct superclasses

message.

Direct methods
Class: request-context

The generic super class of all request contexts.

A request-context object contains all the information associated with one particular request/response loop. The request context is usually accessed via the special variable *context* and contains the currently relevant application, session, session-frame, request and response object.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Direct subclasses

standard-request-context.

Direct methods
Class: response

Generic superlcass for all HTTP responses.

An HTTP response has, other than the headers, two streams:

1) the html-stream - This is a character based stream which can be used to send ISO-8859-1 characters to the client.

2) the network-stream - This is the binary (unsigned-byte 8) stream attached directly to the client’ browser.

Package

it.bese.ucw.core.

Source

protocol.lisp.

Direct superclasses

message.

Direct methods
Direct slots
Slot: managed

SEND-RESPONSE for unmanaged responses is a no-op.

Initform

t

Readers

response-managed-p.

Writers

(setf response-managed-p).

Class: secure-application-mixin

Mixin class for applications which require authorized access.
Concrete application must specialize the following methods: APPLICATION-FIND-USER (APPLICATION USERNAME) APPLICATION-CHECK-PASSWORD (APPLICATION USER PASSWORD) APPLICATION-AUTHORIZE-CALL (APPLICATION USER FROM-COMPONENT TO-COMPONENT).

Package

ucw-standard.

Source

secure-application.lisp.

Direct methods
Direct slots
Slot: login-component

Class of component for user login.
It must return authenticated USER data or NIL on answer.

Initform

(quote ucw-standard:user-login-window)

Initargs

:login-component

Readers

login-component.

Writers

(setf login-component).

Slot: insecure-components

Calls to these components are never checked.

Initform

(quote (ucw-standard:error-message-window))

Initargs

:insecure-components

Readers

insecure-components.

Writers

(setf insecure-components).

Class: simple-dispatcher

This class of dispatchers avoids all of UCW’s
standard call/cc (and therefore frame/backtracking/component) mechanism.

Unlike all other UCW dispatchers a simple-dispatcher must not use CALL, and must perform the rendering directly within the handler.

Package

ucw-standard.

Source

standard-dispatchers.lisp.

Direct superclasses
Direct methods

handler-handle.

Direct Default Initargs
InitargValue
:priority+simple-dispatcher-default-priority+
Class: simple-tal-component
Package

ucw-standard.

Source

tal.lisp.

Direct superclasses
Direct methods

tal-component-environment.

Direct slots
Slot: environment
Initargs

:environment

Class: standard-action
Package

ucw-standard.

Source

standard-action.lisp.

Direct superclasses

basic-action.

Direct methods
Direct slots
Slot: source-component
Readers

action-source-component.

Writers

(setf action-source-component).

Class: standard-application
Package

it.bese.ucw.core.

Source

standard-components.lisp.

Direct superclasses

basic-application.

Direct methods
Direct slots
Slot: action-class
Package

ucw-standard.

Initform

(quote ucw-standard:standard-action)

Initargs

:action-class

Readers

application.action-class.

Writers

(setf application.action-class).

Class: standard-component

Super class of all standard components.

Package

it.bese.ucw.core.

Source

standard-component.lisp.

Direct superclasses

component.

Direct subclasses
Direct methods
Direct slots
Slot: continuation

Our continuation (a 1 arg lambda)

Initargs

:continuation

Readers

component.continuation.

Writers

(setf component.continuation).

Slot: calling-component

The component which transfered control to this component.

When this component ANSWERs it returns control to the calling-component and modifes the associated place. Only in the case of top level components will this slot be NIL.

Initargs

:calling-component

Readers

component.calling-component.

Writers

(setf component.calling-component).

Slot: place

The place (a PLACE object) which holds this component.

Only in the case of top level component will this slot be NIL.

Initargs

:place

Readers

component.place.

Writers

(setf component.place).

Slot: dirtyp

A flag whether the component was invalidated (which means that it needs rendering).

Readers

dirtyp.

Writers

This slot is read-only.

Slot: session

The owner session of this component. A component may only be used in one session at a time.

Initform

(it.bese.ucw.core:context.session it.bese.ucw.core:*context*)

Readers

session-of.

Writers

This slot is read-only.

Slot: parent
Initargs

:parent

Readers

parent.

Writers

(setf parent).

Class: standard-component-class

The meta class for standard-components.

Classes defined with this meta-class have extra slot options, see the class STANDARD-COMPONENT-DIRECT-SLOT for details.

Package

it.bese.ucw.core.

Source

standard-component-class.lisp.

Direct superclasses

standard-class.

Direct methods
Direct slots
Slot: backtrack-slots

A list of effective-slot-definition’s that are backtracked.

Readers

component-class.backtrack-slots.

Writers

(setf component-class.backtrack-slots).

Slot: component-slots

A list of effective-slot-definition’s that are component slots.

Readers

component-class.component-slots.

Writers

(setf component-class.component-slots).

Slot: place-slot
Initargs

:place-slot

Readers

component-class.place-slot.

Writers

(setf component-class.place-slot).

Class: standard-request-context
Package

it.bese.ucw.core.

Source

basic-classes.lisp.

Direct superclasses

request-context.

Direct subclasses

dummy-request-context.

Direct methods
Direct slots
Slot: request
Initargs

:request

Readers

context.request.

Writers

(setf context.request).

Slot: response
Initargs

:response

Readers

context.response.

Writers

(setf context.response).

Slot: application
Initargs

:application

Readers

context.application.

Writers

(setf context.application).

Slot: session
Initargs

:session

Readers

context.session.

Writers

(setf context.session).

Slot: action
Initargs

:action

Readers

context.action.

Writers

(setf context.action).

Class: standard-server
Package

it.bese.ucw.core.

Source

basic-classes.lisp.

Direct superclasses

server.

Direct methods
Direct slots
Slot: applications
Readers

server.applications.

Writers

(setf server.applications).

Slot: lock
Package

bordeaux-threads.

Initform

(bordeaux-threads:make-lock "server lock")

Readers

lock-of.

Writers

(setf lock-of).

Slot: started
Initargs

:started

Readers

server.started.

Writers

(setf server.started).

Slot: backend
Initargs

:backend

Readers

server.backend.

Writers

(setf server.backend).

Class: standard-session-frame
Package

it.bese.ucw.core.

Source

basic-classes.lisp.

Direct superclasses

session-frame.

Direct methods
Direct slots
Slot: actions

A hash table mapping action ids to 0 argument functions.

Initform

(trivial-garbage::make-hash-table :test (quote equal))

Readers

frame.actions.

Writers

(setf frame.actions).

Slot: callbacks

A hash table mapping callback ids to 1 argument functions.

Initform

(trivial-garbage::make-hash-table :test (quote equal))

Readers

frame.callbacks.

Writers

(setf frame.callbacks).

Slot: window-component

The root component for this
frame. The standard-server calls render on this component when the frame is ready to be presented to the user.

Initargs

:window-component

Readers

frame.window-component.

Writers

(setf frame.window-component).

Slot: id
Initargs

:id

Readers

frame.id.

Writers

(setf frame.id).

Slot: allocated-backtracks

The places allocated in this frame.

Initform

(make-array 16 :adjustable t :fill-pointer 0)

Readers

allocated-backtracks-of.

Writers

(setf allocated-backtracks-of).

Slot: effective-backtracks

PLACE -> VALUE mapping of the effective backtracked places.

Initform

(trivial-garbage::make-hash-table :test (function eq))

Initargs

:effective-backtracks

Readers

effective-backtracks-of.

Writers

(setf effective-backtracks-of).

Class: standard-window-component
Package

ucw-standard.

Source

standard-components.lisp.

Direct superclasses

basic-window-component.

Direct methods
Direct slots
Slot: body
Package

it.bese.arnesi.

Initargs

:body

Readers

window-body.

Writers

(setf window-body).

Class: starts-with-dispatcher
Package

ucw-standard.

Source

standard-dispatchers.lisp.

Direct superclasses
Direct Default Initargs
InitargValue
:priority+starts-with-dispatcher-default-priority+
Class: static-roots-application-mixin
Package

ucw-standard.

Source

static-roots-application.lisp.

Direct superclasses

application.

Direct methods
Direct slots
Slot: static-roots

A list of (URL-subdir . pathname)
pairs to use when looking for static files. This follows standard CL pathname syntax i.e. you must include a trailing / in both the URL-subdir and pathname.

Initargs

:static-roots

Readers

application.static-roots.

Writers

(setf application.static-roots).

Class: switching-container

A simple renderable container component.

This component is like the regular CONTAINER but serves to manage a set of components which share the same place in the UI. Therefore it provides an implementation of RENDER which simply renders its current component.

The switching-container component class is generally used as the super class for navigatation components and tabbed-pane like
components.

Package

ucw-standard.

Source

container.lisp.

Direct superclasses

container.

Direct subclasses

tabbed-pane.

Direct methods
Direct slots
Slot: current-component-key

The key of the current component.

Initargs

:current-component-key

Readers

container.current-component-key.

Writers

This slot is read-only.

Class: tabbed-pane

Component for providing the user with a standard "tabbed pane" GUI widget.

Package

ucw-standard.

Source

container.lisp.

Direct superclasses
Direct methods
Direct Default Initargs
InitargValue
:css-classucw-tabbed-pane
:key-test(function string=)
Class: tal-application-mixin
Package

ucw-standard.

Source

tal-application.lisp.

Direct superclasses

application.

Direct methods
Direct slots
Slot: tal-generator

A tal-generator object used to
lookup and compile tal pages for template-components.

Package

it.bese.yaclml.

Initargs

:tal-generator

Readers

application.tal-generator.

Writers

(setf application.tal-generator).

Class: tal-component

Component which is rendered via a TAL template.

Package

ucw-standard.

Source

tal.lisp.

Direct superclasses

component.

Direct subclasses

simple-tal-component.

Direct methods
Direct slots
Slot: template-name
Initargs

:template-name

Readers

tal-component.template-name.

Writers

(setf tal-component.template-name).

Class: task-component

A controller for a single task or operation to
be performed by the user.

A task component’s START action is called as soon as the component is instantiated. Task components do not have their own RENDER method, in fact they have no graphical representation but serve only to order a sequence of other components.

Package

ucw-standard.

Source

task.lisp.

Direct superclasses

standard-component.

Direct methods

render.

Class: timeout-cache-component-mixin

Render the component at most every EXPIRES-AFTER seconds.

Package

ucw-standard.

Source

cached.lisp.

Direct superclasses

cache-component-mixin.

Direct methods
Direct Default Initargs
InitargValue
:expires-after(* 30 60 60)
Direct slots
Slot: last-refresh

The time, exrpessed as a
universal time, when the component was last rendered.

Readers

last-refresh.

Writers

(setf last-refresh).

Slot: expires-after

Number of seconds the cache is valid.

Initargs

:expires-after

Readers

expires-after.

Writers

(setf expires-after).

Class: transactional-application-mixin
Package

ucw-standard.

Source

transactional-application.lisp.

Direct methods

session-class.

Class: uri
Package

it.bese.ucw.core.

Source

helpers.lisp.

Direct methods
Direct slots
Slot: scheme
Initargs

:scheme

Readers

uri.scheme.

Writers

(setf uri.scheme).

Slot: host
Initargs

:host

Readers

uri.host.

Writers

(setf uri.host).

Slot: port
Initargs

:port

Readers

uri.port.

Writers

(setf uri.port).

Slot: path
Initargs

:path

Readers

uri.path.

Writers

(setf uri.path).

Slot: query
Initargs

:query

Readers

uri.query.

Writers

(setf uri.query).

Slot: fragment
Initargs

:fragment

Readers

uri.fragment.

Writers

(setf uri.fragment).

Class: url-dispatcher
Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Direct superclasses
Direct Default Initargs
InitargValue
:priority+url-dispatcher-default-priority+
Class: url-matcher

Matcher used to match url-string exactly (using string=).

Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Direct superclasses

matcher.

Direct subclasses
Direct methods
Direct slots
Slot: url-string
Initargs

:url-string

Readers

url-string.

Writers

(setf url-string).

Class: user-login

User login component.

Package

ucw-standard.

Source

user-login.lisp.

Direct superclasses

standard-component.

Direct methods
Direct slots
Slot: username

User login name.

Initargs

:username

Readers

username.

Writers

(setf username).

Slot: password

User password.

Initargs

:password

Readers

password.

Writers

(setf password).

Class: user-login-window

A container window componenet for the user-login.

Package

ucw-standard.

Source

user-login.lisp.

Direct superclasses

basic-window-component.

Direct methods
Direct Default Initargs
InitargValue
:titleuser login
Direct slots
Slot: user-login
Initform

(make-instance (quote ucw-standard:user-login))

Initargs

:user-login

Readers

user-login.

Writers

(setf user-login).

Class: user-track-application-mixin

module to mix with your application in order to track logged in and out users.

Package

ucw-standard.

Source

secure-application.lisp.

Direct methods
Direct slots
Slot: online-users
Initform

(quote nil)

Initargs

:online-users

Readers

application.online-users.

Writers

(setf application.online-users).

Class: window-component
Package

it.bese.ucw.core.

Source

window.lisp.

Direct superclasses

standard-component.

Direct subclasses
Direct methods
Direct slots
Slot: content-type

The Content-Type header for the
http response (also used in the meta tag)

Initargs

:content-type

Readers

window-component.content-type.

Writers

(setf window-component.content-type).


6.2 Internals


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.1 Constants

Constant: +accept-language-cache-purge-size+

The maximum size of the cache of Accept-Language header over which the hashtable is cleared.

Package

it.bese.ucw.core.

Source

vars.lisp.

Constant: +action-dispatcher-default-priority+
Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Constant: +action-id-length+

Length, in chars, of the automatically generates action ids.

Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Constant: +callback-id-length+
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Constant: +default-encoding-for-uri+

UTF-8 is the semi-standard encoding for URL:s
RFC 2396 does not specify how multi-byte characters are encoded, but mentions UTF-8 as an example. RFC 2718 Strongly recommends UTF-8 for new URI-schemes.
RFC 3987 The IRI (International Resource Identifier) proposed standard specifies UTF-8.
The Javascript ECMA standard specifies that the conversion functions (EncodeURI et al.) use UTF-8, http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf

Package

it.bese.ucw.core.

Source

vars.lisp.

Constant: +epoch-start+
Package

it.bese.ucw.core.

Source

basic-session.lisp.

Constant: +frame-id-length+

Length, in chars, of the automatically generated frame ids.

Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Constant: +maximum-accept-language-value-length+

The maximum size of the Accept-Language header value that is accepted.

Package

it.bese.ucw.core.

Source

vars.lisp.

Constant: +minimal-dispatcher-default-priority+
Package

ucw-standard.

Source

standard-dispatchers.lisp.

Constant: +regex-dispatcher-default-priority+
Package

ucw-standard.

Source

standard-dispatchers.lisp.

Constant: +session-id-length+

Length, in chars, of the automatically generated session ids.

Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Constant: +simple-dispatcher-default-priority+
Package

ucw-standard.

Source

standard-dispatchers.lisp.

Constant: +starts-with-dispatcher-default-priority+
Package

ucw-standard.

Source

standard-dispatchers.lisp.

Constant: +unbound-value+
Package

it.bese.ucw.core.

Source

backtracking.lisp.

Constant: +url-dispatcher-default-priority+
Package

it.bese.ucw.core.

Source

basic-dispatchers.lisp.

Constant: +user-session-key+

Session key for user’s authorization data.

Package

ucw-standard.

Source

secure-application.lisp.


Next: , Previous: , Up: Internals   [Contents][Index]

6.2.2 Special variables

Special Variable: *copy-down-component*

Holder variable used for the copy-down link in the inspector links. not thread safe (but good enough for single user debugging).

Package

it.bese.ucw.core.

Source

standard-component.lisp.

Special Variable: *current-condition*
Package

it.bese.ucw.core.

Source

request-loop-error.lisp.

Special Variable: *current-form*
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: *default-session-longevity*

Seconds of inactivity allowed before a basic-session object is expired.

Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: *default-session-purge-period*

Seconds of minimal delay between looking for expired sessions.

Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: *directory-for-temporary-files*

Used for file uploads, too.

Package

it.bese.ucw.core.

Source

vars.lisp.

Special Variable: *external-formats*

The external formats used for url-unescaping, slime and http(via swank) intercommunication

Package

it.bese.ucw.core.

Source

vars.lisp.

Special Variable: *in-form*
Package

ucw-standard.

Source

standard-tags.lisp.

Special Variable: *js-resource-registry*

Contains the l10n resource names that should be sent to the client side js.

Package

it.bese.ucw.core.

Source

vars.lisp.

Special Variable: *js-resource-registry-last-modified-at*

A universal-time timestamp updated when the registry was last modified.

Package

it.bese.ucw.core.

Source

vars.lisp.

Special Variable: *maximum-number-of-sessions*

UCW will render a ’503 Service Unavailable’ when there are this many live sessions in an application and new ones are coming.

Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: *request*
Package

it.bese.ucw.core.

Source

protocol.lisp.

Special Variable: *ucw-backtrace-verbose*

When ‘t’ display local variables in error log backtrace

Package

it.bese.ucw.core.

Source

request-loop-error.lisp.

Special Variable: *xml-id-counter*
Package

ucw-standard.

Source

html-element.lisp.

Special Variable: +action-invocation-parameter-name+

This parameter identifies an invocation of an action (to be used when the action is invocation-isolated-p)

Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: +action-parameter-keyword+
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: +ajax-action-dispatcher-url+
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: +callback-dispatcher-url+
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: +frame-parameter-keyword+
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: +i18n-parenscript-dispatcher-url+
Package

it.bese.ucw.core.

Source

rerl-variables.lisp.

Special Variable: +ip-v4-localhost+
Package

it.bese.ucw.core.

Source

helpers.lisp.

Special Variable: +ip-v6-localhost+
Package

it.bese.ucw.core.

Source

helpers.lisp.