CORAL Component documentation: CoralCommon

Ioannis Papadopoulos

CERN

October 2005


1. Introduction

1.1. Purpose of the component

The CoralCommon package is a library providing shared implementations as well as developer-level interfaces for the various plugin components of CORAL.

1.2. Repository of the component

:pserver:anonymoys@coral.cvs.cern.ch:/cvs/coral/coral/CoralCommon

2. CoralCommon Semantics

2.1. Shared implementations for the Authentication Service components

The package provides the definition and implementation of the AuthenticationCredentials class, which is a transient implementation of the IAuthenticationCredentials interface. It provides shared code for the various implementations of the IAuthenticationService interface.

2.2. Shared implementations for the Lookup Service components

The DatabaseServiceSet class is a transient implementation of the IDatabaseServiceSet interface. It can be used as a shared implementation in components providing implementations of the ILookupService interface, where the result set of a lookup query is fully retrieved before in can be made available to the client. This is a behaviour which is expected to be always valid for any ILookupService implementation.

2.3. Shared implementations for the Monitoring Service components and the related developer-level interfaces

The developer level interfaces and default implementations related the the client-side monitoring are defined within the coral::monitor namespace. This namespace defines:

  • The state-less class MonitoringEventDescription and the singleton object monitoringEventDescription, which is used for the definition of the string literals corresponding to a monitoring event. The RDBMS-specific plugins use its methods for retrieving this string literals instead of hard-coded strings.
  • The namespace Event, where the Record and Payload classes are defined. The latter are used as shared code by the various plugins providing implementations for the IMonitoringService interface.
  • The enumeration ReportType, which is used by the various implementations of the IMonitoringService interface.

2.4. A URI parser for the connection strings

The package provides a simple parser for processing the database connection strings supplied to the IRelationalService and/or IConnectionService interfaces by the client. The URIParser class extracts from a valid connection string the RDBMS technology name, the optional protocol, the host name, the optional port number, and the name which defines the schema/service name. In case the supplied connection string is not valid or cannot be parsed, a URIException object is thrown. The URIParser class is also used in the plugins providing the RDBMS-specific implementations.

3. Related components

  • RelationalAccess, is the package where the CORAL abstract interfaces are defined.

4. Reference documentation of the CoralCommon developer-level interfaces