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 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 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.