Abstract base descriptor classes

Describes the modifiable descriptor class and the non-modifiable descriptor class.

The concrete descriptor classes are all derived from a set of base classes. The base classes are abstract and implement nearly most of the behaviour of descriptors. They are:

  • The abstract non-modifiable descriptor

  • The abstract modifiable descriptor

The abstract non-modifiable descriptor class

The class has a data member containing the length of the data represented by the serived concrete descriptor. It also provides the set of functions through which data can be accessed but not modified.

This class is supplied in two variants:

  • the 16 bit variant, a TDesC16, to handle Unicode strings.

  • the 8 bit variant, a TDesC8, to handle non-Unicode strings and binary data.

There is also a build independent type, TDesC. This is the type which is most commonly used in program code; the appropriate variant is selected at build time.

An explicit 8 bit variant is chosen when handling binary data. The explicit 16 bit variant is rarely used.

The abstract modifiable descriptor class

The class has a data member containing the maximum length of data that the descriptor is capable of representing. It also provides the set of functions through which data can be modified.

This class is supplied in two variants:

  • the 16 bit variant, a TDes16, to handle Unicode strings.

  • the 8 bit variant, a TDes8, to handle non-Unicode strings and binary data.

There is also a build independent type, TDes. This is the type which is most commonly used in program code; the appropriate variant is selected at build time.

An explicit 8 bit variant is chosen when handling binary data. The explicit 16 bit variant is rarely used.