27
dictionary file store used for initialization files. An embedded store provides direct file-store
functionality and is used by the application architecture for object embedding.
The database management system provides a complete relational database implementation with
API and SQL-based access. Each database may contain multiple tables, each with multiple
columns supporting a wide variety of text, binary, numeric, date/time and autoincrement data
types. The storage format is compact and robust. APIs and SQL statements support data
definition and data manipulation. Transactions, encryption, indexes, space reclamation, rollback,
and efficient views are supported. Databases may be shared between multiple concurrent clients,
with locking and notification APIs.
8.2.3.2 Application Architecture
The application architecture (APPARC) provides the means to identify the program that should
be used to open a file, an embedded object, an attachment, or some data that has not yet been
written to a file (such as data being downloaded from the worldwide web). The application
architecture supports both EPOC’s native file formats (which use EPOC stream stores), and
foreign file formats.
Native document file formats are recognized entirely by their UID: they do not require an
extension. Foreign files may be recognized using a combination of content and filename/extension:
a MIME type is then associated with the file and used to select associated applications.
The application architecture provides basic user interface elements for file launching. Icons and
natural-language captions are contained — along with supported MIME types — in an
application information file (AIF), which is generated by
aiftool
.
EPOC’s native file format supports embedding. An application’s embedding capabilities are
specified in its AIF. Embedded documents are represented by a “door”, which may be either an
iconic door displaying the associated application icon, or a glass door which displays the
application data before it is opened for editing by the user.
The application architecture also supports shell extensions (control panel icons), display of all
running applications and open files, and a most-recently used file list for all document files.
The application architecture defines conventions for the locations of applications, control panel
icons, file recognizers etc. For instance, applications must reside on some drive with a file and
directory name of the form
\system\apps\appname\appname.app
. APIs are provided to interrogate the
currently installed applications and recognizers, etc, and the currently running applications,
currently open files, most recently used files etc. The application architecture provides a server,
which caches lists of these objects, and monitors the file system and window server so that it can
update these lists only when necessary. The enquiry APIs use the APPARC server’s cached
information and therefore execute quickly, without searching through the file system.
EPOC applications can be installed simply by copying files into their target locations. No system
registry settings, with all their inconvenience, are required. When a CF card with applications
installed on it is inserted into an EPOC machine, its applications are available for instant use. The
APPARC server ensures that this high usability is delivered with high performance.
8.2.3.3 Resource files and utilities
Programs should be written in a manner, which does not confuse program code (in C++, say),
with strings (which may need to be translated into different natural languages). This is achieved
using resource files, built by the
rcomp
resource compiler, and read by programs using the
facilities of the BAFL component (basic application framework library).
BAFL provides other utility APIs, for playing and recording sounds, some specific arrays,
command-line parsing, and incremental matching. Other utility APIs are provided by EALWL
(the alarm and world server) and DIAL, which resolves phone numbers against the current home
location, and handles DTMF dialling.
WLDTOOLS and WLDDATA components are of interest only to OEMs: they provide the tools
and data needed to prepare world country and city information for EALWL.
8.2.3.4 C Standard library
All EPOC’s native code is written in C++. Symbian has achieved the benefits of object orientation
that are often touted, but rarely achieved in practice: better-controlled designs, substantial code