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 Sat Dec 03 23:36:39 2022 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 ucw

UncommonWeb : Standard Components

Maintainer

Drew Crampsie <>

Author

Marco Baringer <>

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


2.2 ucw-core

Core features of UnCommon Web

Author

Marco Baringer <>

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


3 Modules

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


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

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.


4.1 Lisp


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.


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

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

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


5.6 ucw-user

Source

standard-package.lisp.

Use List

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.


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