This is the architecture.service-provider Reference Manual, version 0.6.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Sep 15 03:18:57 2024 GMT+0.
architecture.service-provider/architecture.service-provider.asd
architecture.service-provider/src/package.lisp
architecture.service-provider/src/types.lisp
architecture.service-provider/src/variables.lisp
architecture.service-provider/src/conditions.lisp
architecture.service-provider/src/protocol.lisp
architecture.service-provider/src/mixins.lisp
architecture.service-provider/src/service.lisp
architecture.service-provider/src/provider.lisp
architecture.service-provider/src/macros.lisp
architecture.service-provider/src/compilation.lisp
The main system appears first, followed by any subsystem dependency.
architecture.service-provider
Provides a framework for registering and finding services and providers of these.
Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
Jan Moringen <jmoringe@techfak.uni-bielefeld.de>
LLGPLv3
0.6.0
alexandria
(system).
let-plus
(system)., at least version "0.2"
more-conditions
(system)., at least version "0.3"
utilities.print-items
(system)., at least version "0.1"
src
(module).
Modules are listed depth-first from the system components tree.
architecture.service-provider/src
architecture.service-provider
(system).
package.lisp
(file).
types.lisp
(file).
variables.lisp
(file).
conditions.lisp
(file).
protocol.lisp
(file).
mixins.lisp
(file).
service.lisp
(file).
provider.lisp
(file).
macros.lisp
(file).
compilation.lisp
(file).
Files are sorted by type and then listed depth-first from the systems components trees.
architecture.service-provider/architecture.service-provider.asd
architecture.service-provider/src/package.lisp
architecture.service-provider/src/types.lisp
architecture.service-provider/src/variables.lisp
architecture.service-provider/src/conditions.lisp
architecture.service-provider/src/protocol.lisp
architecture.service-provider/src/mixins.lisp
architecture.service-provider/src/service.lisp
architecture.service-provider/src/provider.lisp
architecture.service-provider/src/macros.lisp
architecture.service-provider/src/compilation.lisp
architecture.service-provider/architecture.service-provider.asd
architecture.service-provider
(system).
architecture.service-provider/src/types.lisp
package.lisp
(file).
src
(module).
provider-designator
(type).
service-designator
(type).
provider-designator/cons
(type).
provider-designator/symbol
(type).
architecture.service-provider/src/variables.lisp
types.lisp
(file).
src
(module).
*services*
(special variable).
architecture.service-provider/src/conditions.lisp
variables.lisp
(file).
src
(module).
missing-provider-designator
(reader method).
missing-provider-error
(condition).
missing-provider-service
(reader method).
missing-provider-warning
(condition).
missing-service-designator
(reader method).
missing-service-error
(condition).
missing-service-warning
(condition).
service-provider-condition
(condition).
missing-provider-condition
(condition).
missing-service-condition
(condition).
architecture.service-provider/src/protocol.lisp
conditions.lisp
(file).
src
(module).
add-provider
(generic function).
find-provider
(generic function).
(setf find-provider)
(generic function).
find-service
(generic function).
(setf find-service)
(generic function).
make-provider
(generic function).
provider-name
(generic reader).
remove-provider
(generic function).
service-name
(generic function).
service-providers
(generic function).
service-providers/alist
(generic function).
service-providers/plist
(generic function).
update-provider
(generic function).
make-provider-form
(generic function).
architecture.service-provider/src/mixins.lisp
protocol.lisp
(file).
src
(module).
add-provider
(method).
find-provider
(method).
find-provider
(method).
(setf find-provider)
(method).
(setf find-provider)
(method).
(setf find-provider)
(method).
(setf find-provider)
(method).
remove-provider
(method).
service-providers
(method).
service-providers/alist
(method).
service-providers/plist
(method).
update-provider
(method).
%add-or-update-provider
(function).
%remove-provider
(function).
documentation-mixin
(class).
name-mixin
(class).
provider-list-mixin
(class).
service-%providers
(reader method).
service-documentation
(reader method).
(setf service-documentation)
(writer method).
architecture.service-provider/src/service.lisp
mixins.lisp
(file).
src
(module).
describe-object
(method).
documentation
(method).
print-items
(method).
service-name
(reader method).
standard-service
(class).
architecture.service-provider/src/provider.lisp
service.lisp
(file).
src
(module).
class-provider
(class).
documentation
(method).
documentation
(method).
function-provider
(class).
make-provider
(method).
make-provider
(method).
print-items
(method).
print-items
(method).
provider-class
(reader method).
provider-function
(reader method).
provider-name
(reader method).
provider-name
(reader method).
shared-initialize
(method).
shared-initialize
(method).
%provider-print-items
(function).
make-provider-form
(method).
make-provider-form
(method).
architecture.service-provider/src/macros.lisp
provider.lisp
(file).
src
(module).
define-service
(macro).
register-provider
(function).
register-provider/class
(function).
register-provider/function
(function).
register-service
(function).
define-register-function
(macro).
architecture.service-provider/src/compilation.lisp
macros.lisp
(file).
src
(module).
add-provider
(compiler macro).
find-provider
(compiler macro).
(setf find-provider)
(compiler macro).
make-provider
(compiler macro).
register-provider
(compiler macro).
register-provider/class
(compiler macro).
register-provider/function
(compiler macro).
remove-provider
(compiler macro).
update-provider
(compiler macro).
check-service-and-provider
(function).
Packages are listed by definition order.
service-provider
This package contains functions and classes for defining, using
and introspecting services and providers thereof.
For services, the most important functions and macros are
‘find-service’ and ‘define-service’.
For providers, the most important functions and macros are ‘find-provider’, ‘make-provider’, ‘register-provider/class’ and ‘register-provider/funtion’.
alexandria
.
common-lisp
.
let-plus
.
more-conditions
.
add-provider
(compiler macro).
add-provider
(generic function).
class-provider
(class).
define-service
(macro).
find-provider
(compiler macro).
(setf find-provider)
(compiler macro).
find-provider
(generic function).
(setf find-provider)
(generic function).
find-service
(generic function).
(setf find-service)
(generic function).
function-provider
(class).
make-provider
(compiler macro).
make-provider
(generic function).
missing-provider-designator
(generic reader).
missing-provider-error
(condition).
missing-provider-service
(generic reader).
missing-provider-warning
(condition).
missing-service-designator
(generic reader).
missing-service-error
(condition).
missing-service-warning
(condition).
provider-class
(generic reader).
provider-designator
(type).
provider-function
(generic reader).
provider-name
(generic reader).
register-provider
(compiler macro).
register-provider
(function).
register-provider/class
(compiler macro).
register-provider/class
(function).
register-provider/function
(compiler macro).
register-provider/function
(function).
register-service
(function).
remove-provider
(compiler macro).
remove-provider
(generic function).
service-designator
(type).
service-name
(generic function).
service-provider-condition
(condition).
service-providers
(generic function).
service-providers/alist
(generic function).
service-providers/plist
(generic function).
standard-service
(class).
update-provider
(compiler macro).
update-provider
(generic function).
%add-or-update-provider
(function).
%provider-print-items
(function).
%remove-provider
(function).
*services*
(special variable).
check-service-and-provider
(function).
define-register-function
(macro).
documentation-mixin
(class).
make-provider-form
(generic function).
missing-provider-condition
(condition).
missing-service-condition
(condition).
name-mixin
(class).
provider-designator/cons
(type).
provider-designator/symbol
(type).
provider-list-mixin
(class).
service-%providers
(generic reader).
service-documentation
(generic reader).
(setf service-documentation)
(generic writer).
Definitions are sorted by export status, category, package, and then by lexicographic order.
Define a service named NAME with additional aspects specified in
OPTIONS.
The following OPTIONS are accepted:
(:service-class CLASS-NAME)
Name of the class of the to-be-defined service. Defaults to
‘standard-service’.
(:documentation STRING)
If NAME already designates a service, the existing service object
is destructively modified according to OPTIONS.
The service definition is performed at compile, load and execute time to ensure availability in subsequent provider definitions and/or compilation of e.g. ‘find-service’ calls.
Register a provider of SERVICE-NAME according to PROVIDER-NAME,
PROVIDER-CLASS and INITARGS.
If PROVIDER-NAME does not name an existing provider of the service
designated by SERVICE-NAME, an instance of PROVIDER-CLASS is made
with INITARGS and registered.
If PROVIDER-NAME names an existing provider of the service
designated by SERVICE-NAME, the provider is updated via
re-initialization, potentially changing its class to
PROVIDER-CLASS.
The new or updated provider instance is returned.
Register CLASS as the provider named PROVIDER-NAME of the service
designated by SERVICE-NAME.
PROVIDER-CLASS can be used to select the class of which the created
provider should be an instance.
The ‘cl:documentation’ of CLASS is used as the documentation of the provider.
Register FUNCTION as the provider named PROVIDER-NAME of the
service designated by SERVICE-NAME.
PROVIDER-CLASS can be used to select the class of which the created
provider should be an instance.
The ‘cl:documentation’ of FUNCTION is used as the documentation of the provider.
Register a service named NAME according to SERVICE-CLASS and INITARGS.
If NAME does not name an existing service, an instance of
SERVICE-CLASS is made with INITARGS and registered.
If NAME names an existing service, the service is updated via re-initialization, potentially changing its class to SERVICE-CLASS.
The new or updated service instance is returned.
Add PROVIDER to SERVICE as the provider designated by NAME.
provider-list-mixin
) name provider) ¶Find and return the provider designated by the
‘provider-designator’ PROVIDER in the service designated by the
‘service-designator’ SERVICE.
IF-DOES-NOT-EXIST controls the behavior in case SERVICE or
PROVIDER cannot be found:
The values #’error and ’error cause a ‘missing-service-error’ to
be signaled if SERVICE cannot be found and a
‘missing-provider-error’ to be signaled if PROVIDER cannot be
found.
The values #’warn and ’warn cause a ‘missing-service-warning’ to
be signaled if SERVICE cannot be found and a
‘missing-provider-warning’ to be signaled if PROVIDER cannot be
found. In both cases, nil is returned.
The value nil causes nil to be returned without any conditions
being signaled.
‘retry’ and ‘use-value’ restarts are established around error signaling (if IF-DOES-NOT-EXIST mandates that).
provider-list-mixin
) (provider cons
) &key if-does-not-exist) ¶provider-list-mixin
) (provider symbol
) &key if-does-not-exist) ¶symbol
) provider &key if-does-not-exist) ¶Set the provider designated by the ‘provider-designator’ PROVIDER
in the service designated by the ‘service-designator’ SERVICE to
NEW-VALUE. When non-nil, NEW-VALUE has to implement the provider
protocol.
If SERVICE and PROVIDER already designate a provider, the existing
provider object is replaced with NEW-VALUE.
If NEW-VALUE is nil, an existing provider designated by SERVICE
and PROVIDER is removed.
IF-DOES-NOT-EXIST is accepted for parity with ‘find-provider’ and usually ignored. However, when NEW-VALUE is nil, IF-DOES-NOT-EXIST controls whether an error should be signaled in case the to-be-removed provider does not exist.
provider-list-mixin
) (provider cons
) &key if-does-not-exist) ¶provider-list-mixin
) (provider symbol
) &key if-does-not-exist) ¶provider-list-mixin
) (provider cons
) &key if-does-not-exist) ¶provider-list-mixin
) (provider symbol
) &key if-does-not-exist) ¶symbol
) provider &key if-does-not-exist) ¶Find and return the service designated by the ‘service-designator’
NAME.
IF-DOES-NOT-EXIST controls the behavior in case the designated
service cannot be found:
The values #’error and ’error cause a ‘missing-service-error’ to
be signaled.
The values #’warn and ’warn cause a ‘missing-service-warning’ to
be signaled and nil to be returned.
The value nil causes nil to be returned without any conditions
being signaled.
‘retry’ and ‘use-value’ restarts are established around error signaling (if IF-DOES-NOT-EXIST mandates that).
symbol
) &key if-does-not-exist) ¶Set the service designated by the ‘service-designator’ NAME to
NEW-VALUE. When non-nil, NEW-VALUE has to implement the service
protocol.
If NAME already designates a service, the existing service object
is replaced with NEW-VALUE.
If NEW-VALUE is nil, an existing service designated by NAME is
removed.
IF-DOES-NOT-EXIST is accepted for parity with ‘find-service’ and usually ignored. However, when NEW-VALUE is nil, IF-DOES-NOT-EXIST controls whether an error should be signaled in case the to-be-removed service does not exist.
Make and return an instance of the provider designated by the ‘provider-designator’ PROVIDER of the service designated by the ‘service-designator’ SERVICE.
function-provider
) &rest args) ¶class-provider
) &rest args) ¶symbol
) provider &rest args) ¶missing-provider-condition
)) ¶missing-provider-condition
)) ¶missing-service-condition
)) ¶class-provider
)) ¶Stores the class providing the service.
function-provider
)) ¶Stores the function providing the service.
Return the symbol which is the name of PROVIDER.
function-provider
)) ¶automatically generated reader method
name
.
class-provider
)) ¶automatically generated reader method
name
.
Remove PROVIDER from SERVICE as the provider designated by NAME.
provider-list-mixin
) name provider) ¶Return the symbol which is the name of SERVICE.
standard-service
)) ¶automatically generated reader method
name
.
symbol
)) ¶Return a sequence of the providers of SERVICE.
provider-list-mixin
)) ¶symbol
)) ¶Return the providers of SERVICE as an alist in which CARs are provider names and CDRs are the corresponding provider objects.
provider-list-mixin
)) ¶symbol
)) ¶Return the providers of SERVICE as a plist in which keys are provider names and values are the corresponding provider objects.
provider-list-mixin
)) ¶symbol
)) ¶Update the provider designated by NAME in SERVICE with the new value PROVIDER.
provider-list-mixin
) name provider) ¶standard-service
) stream) ¶class-provider
) (doc-type (eql t)
)) ¶standard-service
) (doc-type (eql t)
)) ¶function-provider
) (doc-type (eql t)
)) ¶class-provider
)) ¶utilities.print-items
.
standard-service
)) ¶utilities.print-items
.
function-provider
)) ¶utilities.print-items
.
This error is signaled when a provider of a certain service is specified as a designator but cannot be found.
error
.
missing-provider-condition
.
This warning is signaled when a provider of a certain service is specified as a designator but cannot be found.
missing-provider-condition
.
style-warning
.
Subclasses of this are signaled when services specified by designators cannot be found.
error
.
missing-service-condition
.
This warning is signaled when a service specified by a designator cannot be found.
missing-service-condition
.
style-warning
.
Superclass of all conditions signaled by the service-provider system.
condition
.
Instances of this class provide a particular service by instantiating a given class.
name-mixin
.
print-items-mixin
.
Initarg | Value |
---|---|
:class | (missing-required-initarg (quote class-provider) class) |
This slot is read-only.
Stores the class providing the service.
common-lisp
.
class
This slot is read-only.
Instances of this class provide a particular service by calling a given function and returning the result.
name-mixin
.
print-items-mixin
.
Initarg | Value |
---|---|
:function | (missing-required-initarg (quote function-provider) function) |
This slot is read-only.
Stores the function providing the service.
common-lisp
.
(or symbol function)
This slot is read-only.
This class provides a basic implementation of the service protocol. It can be used as a superclass for specialized service classes.
documentation-mixin
.
name-mixin
.
print-items-mixin
.
provider-list-mixin
.
This slot is read-only.
Stores a mapping of service names to service objects.
Define a function named NAME with a lambda-list of the form
(SERVICE-NAME PROVIDER-NAME . KEYWORD-PARAMETERS)
which registers service providers for the given service + provider combinations. ARGS has to be a list of elements the form
(NAME DEFAULT)
. As part of KEYWORD-PARAMETERS, the defined function accepts
a :provider-class keyword parameter which defaults to
DEFAULT-PROVIDER-CLASS. When instantiated, the provider class
will receive as initargs REQUIRED-INITARGS, .
If supplied, DOCUMENTATION will be used as the documentation string of the defined function.
Return a form which makes and returns an instance of the provider designated by the ‘provider-designator’ PROVIDER of the service designated by the ‘service-designator’ SERVICE for ARGS and ENVIRONMENT.
function-provider
) (args list
) environment) ¶class-provider
) (args list
) environment) ¶symbol
) provider args environment) ¶provider-list-mixin
)) ¶Associate provider names to provider instances.
documentation-mixin
)) ¶documentation-mixin
)) ¶Stores nil or a documentation string.
Subclasses of this are signaled when providers specified by designators cannot be found within gives services.
Initarg | Value |
---|---|
:designator | (missing-required-initarg (quote missing-provider-condition) designator) |
:service | (missing-required-initarg (quote missing-provider-condition) service) |
Stores the service in which the specified provider could not be found.
:service
This slot is read-only.
The designator for which no provider could be found.
:designator
This slot is read-only.
Subclasses of this are signaled when services specified by designators cannot be found.
Initarg | Value |
---|---|
:designator | (missing-required-initarg (quote missing-service-condition) designator) |
The designator for which no class could be found.
:designator
This slot is read-only.
This class is intended to be mixed into service or provider classes which support associated documentation strings.
Stores nil or a documentation string.
common-lisp
.
(or null string)
:documentation
This class is intended to be mixed into service or provider classes which have an associated name.
Initarg | Value |
---|---|
:name | (missing-required-initarg (quote name-mixin) name) |
Stores the name of the service or provider.
service-provider:provider-designator
:name
This class is intended to be mixed service classes which have to store a list of providers.
Associate provider names to provider instances.
hash-table
(make-hash-table :test (function equal))
This slot is read-only.
Jump to: | %
(
A C D F G M P R S U |
---|
Jump to: | %
(
A C D F G M P R S U |
---|
Jump to: | *
C D F N P S |
---|
Jump to: | *
C D F N P S |
---|
Jump to: | A C D F M N P S T V |
---|
Jump to: | A C D F M N P S T V |
---|