-
Notifications
You must be signed in to change notification settings - Fork 0
Glossary
Property
of an Alarm
that determines the trigger action. AUDIO
, DISPLAY
, EMAIL
are possible actions. This project only really deals with audio alarms.
Calendar
component that contains information about an alarm attached to an Event
.
Either refers to an iCalendar file or an iCalendar data structure used within the iCalendar Manager.
Collections of properties that express a certain Calendar
semantic.
Individual lines of text that convey information about the Calendar
, Events
, Alarms
, or other components
A property that exclusively appears in Calendar
components such as Event
s
Refers to :
and sometimes ;
, which are used to separate the constituent parts of a content line. Usually you have the Property
name (propName
), followed by a colon of some sort, followed by the Property
value; for example, COMMENT:HELLO
has a delimiter colon separating the Property
name of COMMENT
and the Property
value of HELLO
.
When two errors of differing scopes occur in the same Calendar
file or object, potentially causing error precedence errors. Within the scope of this project, we solve error precedence in A1 by returning the first error we encounter (so if createCalendar()
finds INV_ALARM
but there's an INV_CAL
later on, the INV_ALARM
is returned). Whereas in A2 we are told to return the error of the widest scope (so if validateCalendar()
encounters INV_CAL
and INV_ALARM
, it must return INV_CAL
regardless of order).
The human readable representation of an ICalErrorCode
, which printError()
dynamically allocates and returns
Calendar
component that contains information required for an event that has either happened or will happen.
Stands for the "Internet Calendaring and Scheduling Core Object Specification", which is a standardized MIME data type used to store and exchange calendaring and scheduling information such as events, to-dos, journal entries, and free/busy information.
An attribute of a Property
with which it is associated. They usually contain meta-information about the Property
or the Property
value.
The identifier for the product that created the iCalendar file.
An attribute of the current Calendar
or component, consisting of a Property
name (propName
) and a Property
value (propVal
), separated by a delimiter colon of some sort. Sometimes properties will contain Parameter
s and will require several different colons. For example, PROPERTY;EMAILTO=someone@gmail.com:PROPVALUE
.
The actual information part of the Property
that contains the pertinent data needed for operation of the respective component.
The visibility that a Property
has. There are three scopes present in the project: Calendar
, Event
, and Alarm
.
Here is an example of a property that has a Calendar
scope (named FOO):
BEGIN:VCALENDAR
FOO:BAR
BEGIN:VEVENT
BEGIN:VALARM
END:VALARM
END:VEVENT
END:VCALENDAR
Here is an example of a property that has an Event
scope (named FOO):
BEGIN:VCALENDAR
BEGIN:VEVENT
FOO:BAR
BEGIN:VALARM
END:VALARM
END:VEVENT
END:VCALENDAR
Here is an example of a property that has an Alarm
scope (named FOO):
BEGIN:VCALENDAR
BEGIN:VEVENT
BEGIN:VALARM
FOO:BAR
END:VALARM
END:VEVENT
END:VCALENDAR
The iCalendar standard operates its scopes similar to XML files. Instead of:
<calendar>
<event>
<alarm>
</alarm>
<alarm>
</alarm>
</event>
<event>
</event>
</calendar>
iCalendar files use this format:
BEGIN:VCALENDAR
BEGIN:VEVENT
BEGIN:VALARM
END:VALARM
BEGIN:VALARM
END:VALARM
END:VEVENT
BEGIN:VEVENT
END:VEVENT
END:VCALENDAR
to which I've taken on the term "signaling" to refer to these BEGIN
and END
messages.
Alarm
Property
that refers to when the Alarm
will trigger. The value of this Property
is of no significance in this project; we merely care if it is NULL
or not. Typical values of this Property
are either exact date-time values or relative time values (like 15 minutes from the start time).
Event
Property
that refers to the persistent, globally unique identifier for the component.
Calendar
Property
that refers to the version of the iCalendar standard being used. It is of great question why this is even present in the project, as version 2.0
corresponds to the RFC 5545 standard that we based this project on—any other values would make no sense as they would veer away from the specification built upon.