OSID Specifications
meta package
Version 3.0.0
Release Candidate Preview
TitleOpen Service Interface Definitions

The meta package is part of the OSID Specification framework and defines language primitives and errors used throughout the OSIDs. The OSID Specifications are defined completely in terms of interfaces and the elements specified in the meta specification.

Language Primitives

This meta package enumerates the allowable language primitives that can be used in OSID method signatures. Parameters and returns in OSID methods may be specified in terms of other OSID interfaces or using one of these primitives. An OSID Binder translates these language primitives into an appropriate language primitive counterpart.

An OSID Primitive differs from a language primitive. An OSID Primitive is an interface used to describe a more complex structure than a simple language primitive can support. Both OSID Primitives and language primitives have the same behavior in the OSIDs in that an there is no service encapsulation present allowing OSID Primitives to be consructed by an OSID Consumer.


OSID methods are required to return a value, if specified, or return one of the errors specified in the method signature. The meta package defines the set of errors that a method signtaure may use.

Errors should result when the contract of the interface as been violated or cannot be fulfilled and it is necessary to disrupt the flow of control for an OSID Consumer. Different errors are specified where it is forseen that an OSID Consumer may wish to execute a different action without violating the encapsulation of internal OSID Provider operations. Such actions do not include debugging or other detailed information which is the responsibility of the OSID Provider to manage. As such, the number of errors defined across all the interfaces is kept to a minimum and the context of the error may vary from method to method in accordance with the OSID Specification.

Errors are categorized to convey the audience to which the error pertains.

  • User Errors: Errors which may be the result of a user operation intended for the user.
  • Operational Errors: Errors which may be the result of a system or some other problem intended for the user.
  • Consumer Contract Errors: Software errors resulting in the use of the OSIDs by an OSID Consumer intended for the application programmer. These also include integration problems where the OSID Consumer bypassed a method to test for support of a service or type.
  • Provider Contract Errors: Software errors in the use of an OSID by an OSID Provider intended for an implementation programmer.


OSID methods include a compliance statement indicating whether a method is required or optional to implement. An optional OSID method is one that defines an UNIMPLEMENTED error and there is a corresponding method to test for the existence of an implementation.