src/models/event-timeline-set.js
function EventTimelineSet(room, opts) {
    this.room = room;

    this._timelineSupport = Boolean(opts.timelineSupport);
    this._liveTimeline = new EventTimeline(this);

    // just a list - *not* ordered.
    this._timelines = [this._liveTimeline];
    this._eventIdToTimeline = {};

    this._filter = opts.filter || null;
}
function EventTimelineSet(room, opts) {
    this.room = room;

    this._timelineSupport = Boolean(opts.timelineSupport);
    this._liveTimeline = new EventTimeline(this);

    // just a list - *not* ordered.
    this._timelines = [this._liveTimeline];
    this._eventIdToTimeline = {};

    this._filter = opts.filter || null;
}
function EventTimelineSet ( room , opts ) { this . room = room ; this . _timelineSupport = Boolean ( opts . timelineSupport ) ; this . _liveTimeline = new EventTimeline ( this ) ; // just a list - *not* ordered. this . _timelines = [ this . _liveTimeline ] ; this . _eventIdToTimeline = { } ; this . _filter = opts . filter || null ; }
Construct a set of EventTimeline objects, typically on behalf of a given
room.  A room may have multiple EventTimelineSets for different levels
of filtering.  The global notification list is also an EventTimelineSet, but
lacks a room.

<p>This is an ordered sequence of timelines, which may or may not
be continuous. Each timeline lists a series of events, as well as tracking
the room state at the start and the end of the timeline (if appropriate).
It also tracks forward and backward pagination tokens, as well as containing
links to the next timeline in the sequence.

<p>There is one special timeline - the 'live' timeline, which represents the
timeline to which events are being added in real-time as they are received
from the /sync API. Note that you should not retain references to this
timeline - even if it is the current timeline right now, it may not remain
so if the server gives us a timeline gap in /sync.

<p>In order that we can find events from their ids later, we also maintain a
map from event_id to timeline and index.

@constructor
@param {?Room} room      the optional room for this timelineSet
@param {Object} opts     hash of options inherited from Room.
opts.timelineSupport gives whether timeline support is enabled
opts.filter is the filter object, if any, for this timelineSet.
Construct a set of EventTimeline objects typically on behalf of a given room . A room may have multiple EventTimelineSets for different levels of filtering . The global notification list is also an EventTimelineSet but lacks a room .