Skip to content

Glossary

Jason Nguyen edited this page May 13, 2019 · 5 revisions

Action

Property of an Alarm that determines the trigger action. AUDIO, DISPLAY, EMAIL are possible actions. This project only really deals with audio alarms.

Alarm

Calendar component that contains information about an alarm attached to an Event.

Calendar

Either refers to an iCalendar file or an iCalendar data structure used within the iCalendar Manager.

Component

Collections of properties that express a certain Calendar semantic.

Content line

Individual lines of text that convey information about the Calendar, Events, Alarms, or other components

Date-time

A property that exclusively appears in Calendar components such as Events

Delimiter colon

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.

Error collision

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

Error string

The human readable representation of an ICalErrorCode, which printError() dynamically allocates and returns

Event

Calendar component that contains information required for an event that has either happened or will happen.

iCalendar

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.

Parameter

An attribute of a Property with which it is associated. They usually contain meta-information about the Property or the Property value.

Product ID

The identifier for the product that created the iCalendar file.

Property

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 Parameters and will require several different colons. For example, PROPERTY;EMAILTO=someone@gmail.com:PROPVALUE.

Property value

The actual information part of the Property that contains the pertinent data needed for operation of the respective component.

Scope

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

Signal

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.

Trigger

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

UID

Event Property that refers to the persistent, globally unique identifier for the component.

Version

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.