Protocol Implementation Layer
The Symbian OS communication infrastructure can be divided into four layers.
- Protocol Implementation
- Device Driver
- Physical Device(Hardware)
The protocol implementation layer contains several sublayers that communicate with each other in various ways. Certain types of communication lack some module relationships. For example, the Bluetooth PRT module communicates directly with the device drivers. Protocol implementations are typically developed by device manufactures and third parties in addition to those already supported by Symbian OS.
- CSY modules
- TSY modules
- PRT modules
- MTM modules
CSY(Serial Protocol Module API) modules are serial communications server plug-in modules that can be loaded by the serial communications server at run time. CSY modules are used to implement software serial port services.
The Serial Protocol Module API (cs_port.h) has three concepts: serial service provider, serial protocol factory, and serial protocol information.
- Serial service provider
- The serial service provider defines an interface that encapsulates a port, with methods largely corresponding to the port interface provided to clients by the Serial Communications Server Client Side API. A serial protocol module implements the interface to access the hardware ports for its protocol.
The serial service provider interface is provided by CPort.
- Serial protocol factory
- The serial protocol factory defines an interface that the Serial Communications server calls to create serial service providers. A serial protocol module implements the interface to provide a factory for its own serial service provider objects.
The serial protocol factory interface is provided by CSerial.
- Serial protocol information
- Serial protocol information specifies information about the ports, such as name and number, accessible through the protocol. A serial protocol module provides suitably configured protocol information to the server.
The serial protocol information interface is provided by TSerialInfo.
TSY modules are telephony server plug-in modules that can be loaded by the telephony server at run time. TSY modules are used to implement telephony services.
ETel telephony extension modules — TSYs — translate between client side API function calls and the instructions understood by a particular telephony device, or family of devices. There is no requirement for a particular TSY to support the complete set of functions defined in the client-side APIs, although typically a TSY will support — as a minimum — all the functions in the core client side API. ETel returns an error if a TSY does not include a called function. The TSY API allows new TSY modules to be developed. Symbian OS provides two main APIs for application programmers:
- Etel Core API (removed in Symbian OS v9)
- Third Party Telephony API (fully supported from Symbian OS v9 onwards).
PRT modules are socket server plug-in modules that can be loaded by the socket server at run time. PRT modules are used to implement protocol services. The socket server provides application programmers a multiple transport extensible networking API. To support this, the socket server makes use of dynamically loadable plug-in libraries known as protocol modules (PRT modules). Protocol modules are dynamic-link libraries (DLLs) with a .PRT extension.
A single protocol module can contain one or more related protocols (a protocol family). Examples of protocol families are TCP/IP and IrDA. Protocol families must be loaded and unloaded dynamically, they must be able to identify themselves and their capabilities, and (some at least) must provide socket services. Protocol families may also provide service registration and name space resolution services. Not all protocols need to provide socket access — for instance; IrLAP does not provide socket access.
MTM modules are message type modules. MTM modules are used to handle messages of all types.