289
edits
Changes
Add locations of sql-table definitions
= Back End =
The back-end of Lightning and Sunbird consists largely of a series of XPCOM components that have been designed specifically for calendar-related purposes. In most cases, these components implement a specific interface defined in an IDL file. All of these interface definitions reside in [http://lxr.mozilla.org/mozilla/source/calendar/base/public/ public/] and contain substantial documentation on their use and implementation. The back end is entirely shared between all calendar applications and extensions. == SQLite ==Sunbird/Lightning are now using the new mozStorage system to keep track of the majority of user-enterred information. There are several tables stored in the database. The tables concerning calendar locations and preferences are defined [http://lxr.mozilla.org/mozilla/source/calendar/base/src/calCalendarManager.js#119 here] and those concerning events in individual calendars are defined [http://lxr.mozilla.org/mozilla/source/calendar/providers/storage/calStorageCalendar.js#1829 here].
== Providers ==
There are currently 3 types of calendars that are available to the user, and 5 back-end types to support these. Each of these calendar types must implement the [http://lxr.mozilla.org/mozilla/source/calendar/base/public/calICalendarProvider.idl calICalendarProvider interface]. Then, individual instances of a [http://lxr.mozilla.org/mozilla/source/calendar/base/public/calICalendar.idl calICalendar] object are created for each calendar the user subscribes to.