Packages as type-safe descriptors

Describes the package function to transfer data in correct structure.

Descriptors are often used as the basis of data transfer within Symbian platform. For example, inter-thread data transfer is specified in terms of transferring data from a descriptor valid in the context of one thread, to a descriptor valid in the context of another.

Data to be transferred almost always has a well defined structure and it is important that the receiver of the data has some guarantee that the correct structure has been passed. This is type safety.

A package is a descriptor and also acts as a wrapper around it. It allows objects and data structures to be represented by descriptors in a type safe way. Objects are either contained within a modifiable buffer descriptor or are represented by pointer descriptors.

A package class is templated, the template parameter being the type of the object represented. The use of a template provides the required type safety.

Related concepts