Top Method Summary
Options Name Purpose
Progress.Lang.Object AddNewService (Class, Object) Adds the specified service to the service container.
Progress.Lang.Object AddNewService (Class, Object, character) Adds the specified service to the service container using the given Service Key
Progress.Lang.Object AddNewService (Class, Object, character, logical) Adds the specified service to the service container using the given Service Key
Progress.Lang.Object AddNewService (Class, Object, Enum) Adds the specified service to the service container using the given Service Key
Progress.Lang.Object AddNewService (Class, Object, Enum, logical) Adds the specified service to the service container using the given Service Key
Progress.Lang.Object AddService (Class, Object) Adds the specified service to the service container.
Progress.Lang.Object AddService (Class, Object, character) Adds the specified service to the service container using the given Service Key
Progress.Lang.Object AddService (Class, Object, character, logical) Adds the specified service to the service container using the given Service Key
Progress.Lang.Object AddService (Class, Object, Enum) Adds the specified service to the service container using the given Service Key
Progress.Lang.Object AddService (Class, Object, Enum, logical) Adds the specified service to the service container using the given Service Key
Progress.Lang.Object CreateService (IServiceCreator, Class) Creates a service at first request
Progress.Lang.Object CreateService (IServiceCreator, Class, character) Creates a service at first request
DisposeServices () Disposes all services
LOGICAL FindService (Class) Searches the default service of the passed in Service Class in the ttService temp-table
LOGICAL FindService (Class, character) Searches the passed in Service Class and Service Key in the ttService temp-table
Progress.Lang.Object GetMandatoryService (Class) Gets the service object of the specified type.
Progress.Lang.Object GetMandatoryService (Class, character) Gets the service object of the specified type and Service Key
Progress.Lang.Object GetMandatoryService (Class, Enum) Gets the service object of the specified type and Service Key
Progress.Lang.Object GetService (Class) Gets the service object of the specified type
Progress.Lang.Object GetService (Class, character) Gets the service object of the specified type and Service Key
Progress.Lang.Object GetService (Class, Enum) Gets the service object of the specified type and Service Key
Progress.Lang.Object GetServices (Class) Returns all service instances registered for the specified type
Progress.Lang.Object GetServices (Class, character[]) Returns all service instances registered for the specified type together with the Service Keys they are registered with
GetServiceTable (table) Returns the service instances as a ttServiceTable output
LOGICAL IsActive (Class) Returns if a service with the given type is active (loaded) in the service container
LOGICAL IsActive (Class, character) Returns if a service with the given type and Service Key is active (loaded) in the service container
LOGICAL IsActive (Class, Enum) Returns if a service with the given type and Service Key is active (loaded) in the service container
LOGICAL IsRegistered (Object) Returns if the given object instance is registered as a Service in the service container of the overloading service container
CHARACTER NormalizeServiceKey (character) Normalizes a Service Key value
Progress.Lang.Object ReloadService (Class) Reloads the Service instance
Progress.Lang.Object ReloadService (Class, character) Reloads the Service instance registered with the given type and Service Key
Progress.Lang.Object ReloadService (Class, Enum) Reloads the Service instance registered with the given type and Service Key
RemoveService (Class) Removes the specified service type from the service container.
RemoveService (Class, character) Removes the service registered with the specified type and Service Key from the service container
RemoveService (Class, Enum) Removes the service registered with the specified type and Service Key from the service container
RemoveServices (Class) Removes all services registered with the specified type from the service container

Top Property Summary
Options Name Purpose
Consultingwerk.Framework.IServiceContainer OverloadingServiceContainer
LOGICAL VerboseLogging


Method Detail
Top

Progress.Lang.Object AddNewService (Class, Object)

Purpose: Adds the specified service to the service container.
Notes: If the Service implements the CCS IService Interface, we'll call the
initialize() method. This method is intended to be used by the
get-service.i include file with CCS style services that require to the
initialize()'d

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object AddNewService (Class, Object, character)

Purpose: Adds the specified service to the service container using the
given Service Key
Notes: If the Service implements the CCS IService Interface, we'll call the
initialize() method

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
pcServiceKey CHARACTER
The Service Key to register the service with, "" to register the service without a Service Key
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object AddNewService (Class, Object, character, logical)

Purpose: Adds the specified service to the service container using the
given Service Key
Notes: If the Service implements the CCS IService Interface, we'll call the
initialize() method

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
pcServiceKey CHARACTER
The Service Key to register the service with, "" to register the service without a Service Key
plDefault LOGICAL
Logical value indicating if the service is the default service of the service type - the service returned by GetService without a Service Key
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object AddNewService (Class, Object, Enum)

Purpose: Adds the specified service to the service container using the
given Service Key
Notes: If the Service implements the CCS IService Interface, we'll call the
initialize() method

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
poServiceKey Progress.Lang.Enum
The Enum member providing the Service Key to register the service with
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object AddNewService (Class, Object, Enum, logical)

Purpose: Adds the specified service to the service container using the
given Service Key
Notes: If the Service implements the CCS IService Interface, we'll call the
initialize() method

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
poServiceKey Progress.Lang.Enum
The Enum member providing the Service Key to register the service with
plDefault LOGICAL
Logical value indicating if the service is the default service of the service type - the service returned by GetService without a Service Key
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object AddService (Class, Object)

Purpose: Adds the specified service to the service container.
Notes:

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object AddService (Class, Object, character)

Purpose: Adds the specified service to the service container using the
given Service Key
Notes: A service registered with the empty Service Key ("") is always
the default service of the service type

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
pcServiceKey CHARACTER
The Service Key to register the service with, "" to register the service without a Service Key
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object AddService (Class, Object, character, logical)

Purpose: Adds the specified service to the service container using the
given Service Key
Notes: Only a single service per service type may be the default
service; a conflicting registration raises a
DefaultServiceAlreadyRegisteredException. A service registered
with the empty Service Key ("") is always the default service of
the service type, so plDefault is ignored for those

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
pcServiceKey CHARACTER
The Service Key to register the service with, "" to register the service without a Service Key
plDefault LOGICAL
Logical value indicating if the service is the default service of the service type - the service returned by GetService without a Service Key
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object AddService (Class, Object, Enum)

Purpose: Adds the specified service to the service container using the
given Service Key
Notes: A service registered with the empty Service Key ("") is always
the default service of the service type

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
poServiceKey Progress.Lang.Enum
The Enum member providing the Service Key to register the service with
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object AddService (Class, Object, Enum, logical)

Purpose: Adds the specified service to the service container using the
given Service Key
Notes: Only a single service per service type may be the default
service; a conflicting registration raises a
DefaultServiceAlreadyRegisteredException

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to add
poObject Progress.Lang.Object
An instance of the service type to add. This object must implement or inherit from the type indicated by the serviceType parameter
poServiceKey Progress.Lang.Enum
The Enum member providing the Service Key to register the service with
plDefault LOGICAL
Logical value indicating if the service is the default service of the service type - the service returned by GetService without a Service Key
Returns Progress.Lang.Object
The reference to the service that was added (poObject). This allows fluid style usage of this routine
Top

Progress.Lang.Object CreateService (IServiceCreator, Class)

Purpose: Creates a service at first request
Notes: Replaces the reference to the IServiceCreator with the reference to
the actual service in the service table

Parameters:
poCreator Consultingwerk.Framework.IServiceCreator
The IServiceCreator instance
poClass Progress.Lang.Class
The service type to create
Returns Progress.Lang.Object
The reference to the created service instance
Top

Progress.Lang.Object CreateService (IServiceCreator, Class, character)

Purpose: Creates a service at first request
Notes: Replaces the reference to the IServiceCreator with the reference to
the actual service in the service table. The Service Key is passed
to the service creator when it implements the IKeyedServiceCreator
interface, so that a service creator acting as the factory for
multiple keyed registrations of the same service type can tell
which of them is materialized (SCL-5704)

Parameters:
poCreator Consultingwerk.Framework.IServiceCreator
The IServiceCreator instance
poClass Progress.Lang.Class
The service type to create
pcServiceKey CHARACTER
The Service Key of the service registration to materialize, "" for a registration without a Service Key
Returns Progress.Lang.Object
The reference to the created service instance
Top

DisposeServices ()

Purpose: Disposes all services
Notes: Calls dispose() on CCS IService implementations. An instance that
is registered for more than one service type (or under more than
one Service Key) is dispose()'d once per registration

Top

LOGICAL FindService (Class)

Purpose: Searches the default service of the passed in Service Class in
the ttService temp-table
Notes: The default service is the service returned by the GetService
method that does not take a Service Key

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service that should be located
Returns LOGICAL
Logical value indicating if the service is available
Top

LOGICAL FindService (Class, character)

Purpose: Searches the passed in Service Class and Service Key in the
ttService temp-table
Notes: Expects an already normalized Service Key. An empty Service Key
means "no Service Key" and locates the default service of the
service type, exactly like the FindService method that does not
take a Service Key (SCL-5704)

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service that should be located
pcServiceKey CHARACTER
The Service Key of the service that should be located, "" for the default service of the service type
Returns LOGICAL
Logical value indicating if the service is available
Top

Progress.Lang.Object GetMandatoryService (Class)

Purpose: Gets the service object of the specified type.
Notes: Throws an ServiceNotRegisteredException when no service of that type
registered

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to return
Returns Progress.Lang.Object
The reference to the instance of the service of ? when the service is not registered with the service container
Top

Progress.Lang.Object GetMandatoryService (Class, character)

Purpose: Gets the service object of the specified type and Service Key
Notes: Throws a ServiceNotRegisteredException when no service of that
type and Service Key is registered. An empty Service Key means
"no Service Key" and returns the default service of the service
type, exactly like the GetMandatoryService method that does not
take a Service Key

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to return
pcServiceKey CHARACTER
The Service Key of the service to return, "" for the default service of the service type
Returns Progress.Lang.Object
The reference to the instance of the service
Top

Progress.Lang.Object GetMandatoryService (Class, Enum)

Purpose: Gets the service object of the specified type and Service Key
Notes: Throws a ServiceNotRegisteredException when no service of that
type and Service Key is registered

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to return
poServiceKey Progress.Lang.Enum
The Enum member providing the Service Key of the service to return
Returns Progress.Lang.Object
The reference to the instance of the service
Top

Progress.Lang.Object GetService (Class)

Purpose: Gets the service object of the specified type
Notes: Returns ? when no service of that type is registered

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to return
Returns Progress.Lang.Object
The reference to the instance of the service of ? when the service is not registered with the service container
Top

Progress.Lang.Object GetService (Class, character)

Purpose: Gets the service object of the specified type and Service Key
Notes: Returns ? when no service of that type and Service Key is registered.
An empty Service Key means "no Service Key" and returns the
default service of the service type, exactly like the GetService
method that does not take a Service Key - which is also why the
"" case delegates rather than looking up the row with the empty
Service Key: the default service may be a keyed registration.
The remainder is a deliberate duplicate of the key-less
GetService method rather than a shared implementation - the
key-less method is the hot path of the framework and must not
pay for the Service Key support (SCL-5704)

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to return
pcServiceKey CHARACTER
The Service Key of the service to return, "" for the default service of the service type
Returns Progress.Lang.Object
The reference to the instance of the service or ? when the service is not registered with the service container
Top

Progress.Lang.Object GetService (Class, Enum)

Purpose: Gets the service object of the specified type and Service Key
Notes: Returns ? when no service of that type and Service Key is registered

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to return
poServiceKey Progress.Lang.Enum
The Enum member providing the Service Key of the service to return
Returns Progress.Lang.Object
The reference to the instance of the service or ? when the service is not registered with the service container
Top

Progress.Lang.Object GetServices (Class)

Purpose: Returns all service instances registered for the specified type
Notes: Returns the service registered without a Service Key as well as
all keyed registrations of the service type, ordered by the
Service Key. Lazy loading registrations are materialized before
returning. Returns an indeterminate array when no service of the
type is registered

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the services to return
Returns Progress.Lang.Object
The array of the service instances registered for the service type
Top

Progress.Lang.Object GetServices (Class, character[])

Purpose: Returns all service instances registered for the specified type
together with the Service Keys they are registered with
Notes: The returned array of service instances and the pcServiceKeys
array use the same order (by Service Key), so that the n-th
Service Key belongs to the n-th service instance. Both arrays
are indeterminate when no service of the type is registered.
When an overloading service container supports Service Keys, its
registrations are merged into the result and win per Service Key

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the services to return
pcServiceKeys CHARACTER
OUTPUT The Service Keys of the returned service instances
Returns Progress.Lang.Object
The array of the service instances registered for the service type
Top

GetServiceTable (table)

Purpose: Returns the service instances as a ttServiceTable output
Notes: See Consultingwerk/Framework/ttServiceTable.i

Parameters:
ttServiceTable TEMP-TABLE ttServiceTable
OUTPUT TABLE The temp-table with the service definitions
Top

LOGICAL IsActive (Class)

Purpose: Returns if a service with the given type is active (loaded) in the service container
Notes:

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to check
Returns LOGICAL
Logical value indicating if the service with the given type is active
Top

LOGICAL IsActive (Class, character)

Purpose: Returns if a service with the given type and Service Key is
active (loaded) in the service container
Notes: An empty Service Key means "no Service Key" and checks the
default service of the service type, exactly like the IsActive
method that does not take a Service Key (SCL-5704)

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to check
pcServiceKey CHARACTER
The Service Key of the service to check, "" for the default service of the service type
Returns LOGICAL
Logical value indicating if the service with the given type and Service Key is active
Top

LOGICAL IsActive (Class, Enum)

Purpose: Returns if a service with the given type and Service Key is
active (loaded) in the service container
Notes:

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to check
poServiceKey Progress.Lang.Enum
The Enum member providing the Service Key of the service to check
Returns LOGICAL
Logical value indicating if the service with the given type and Service Key is active
Top

LOGICAL IsRegistered (Object)

Purpose: Returns if the given object instance is registered as a Service
in the service container of the overloading service container
Notes:

Parameters:
poService Progress.Lang.Object
The Service instance to check
Returns LOGICAL
Logical value indicating if the object instance is registered as a service
Top

CHARACTER NormalizeServiceKey (character)

Purpose: Normalizes a Service Key value
Notes: The unknown value (?) is treated as "" ("no Service Key") and
trailing blanks are removed, as the Service Key is used as a
lookup key. A leading blank is almost always an accident (ABL's
forgiving comparison covers trailing but not leading blanks) and
is rejected (SCL-5704)

Parameters:
pcServiceKey CHARACTER
The Service Key value to normalize
Returns CHARACTER
The normalized Service Key value
Top

Progress.Lang.Object ReloadService (Class)

Purpose: Reloads the Service instance
Notes: Does not actively delete the existing service instance, it will
just be deregistered
- creates a new instance of the currently loaded service using the default constructor
- removes the existing service from the service container
- adds the new service to the service container and calls initialize() when it's a CCS IService
Reloads the default service of the service type, keeping the
Service Key it is registered with (SCL-5704)

Parameters:
poClass Progress.Lang.Class
as Progress.Lang.Class
Returns Progress.Lang.Object
The reference to the new Service Instance
Top

Progress.Lang.Object ReloadService (Class, character)

Purpose: Reloads the Service instance registered with the given type and
Service Key
Notes: Does not actively delete the existing service instance, it will
just be deregistered. The reloaded service keeps the Service Key
and the default service flag of the replaced registration.
An empty Service Key means "no Service Key" and reloads the
default service of the service type, which may well be a keyed
registration - its Service Key is resolved first, so that the
reloaded service is registered under the same Service Key
(SCL-5704)

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to reload
pcServiceKey CHARACTER
The Service Key of the service to reload, "" for the default service of the service type
Returns Progress.Lang.Object
The reference to the new Service Instance
Top

Progress.Lang.Object ReloadService (Class, Enum)

Purpose: Reloads the Service instance registered with the given type and
Service Key
Notes: SCL-5704

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to reload
poServiceKey Progress.Lang.Enum
The Enum member providing the Service Key of the service to reload
Returns Progress.Lang.Object
The reference to the new Service Instance
Top

RemoveService (Class)

Purpose: Removes the specified service type from the service container.
Notes: Removes the default service of the service type - the
registration that GetService returns when it is called without a
Service Key, whatever Service Key it is registered with. No other
registration of the service type is promoted to be the new
default service (SCL-5704)

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to remove from the service container.
Top

RemoveService (Class, character)

Purpose: Removes the service registered with the specified type and
Service Key from the service container
Notes: An empty Service Key means "no Service Key" and removes the
default service of the service type, exactly like the
RemoveService method that does not take a Service Key - which
keeps the invariant that RemoveService removes what GetService
returns (SCL-5704)

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to remove from the service container
pcServiceKey CHARACTER
The Service Key of the service to remove, "" for the default service of the service type
Top

RemoveService (Class, Enum)

Purpose: Removes the service registered with the specified type and
Service Key from the service container
Notes: SCL-5704

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the service to remove from the service container
poServiceKey Progress.Lang.Enum
The Enum member providing the Service Key of the service to remove
Top

RemoveServices (Class)

Purpose: Removes all services registered with the specified type from the
service container
Notes: Removes the registration without a Service Key as well as all
keyed registrations of the service type (SCL-5704)

Parameters:
poClass Progress.Lang.Class
The reference to the class or interface of the services to remove from the service container


Property Detail
Top

Consultingwerk.Framework.IServiceContainer OverloadingServiceContainer


Returns Consultingwerk.Framework.IServiceContainer
Top

LOGICAL VerboseLogging


Returns LOGICAL


Temp-Table Detail

Temp-Table ttServiceTable

Defined in:


©2006-2026 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       19.09.2026 10:07:43