Meeting

public struct Meeting
extension SwiftBMLSDK_Parser.Meeting: Equatable
extension SwiftBMLSDK_Parser.Meeting: Hashable
extension SwiftBMLSDK_Parser.Meeting: CustomStringConvertible
extension SwiftBMLSDK_Parser.Meeting: CustomDebugStringConvertible
extension SwiftBMLSDK_Parser.Meeting: Encodable
extension SwiftBMLSDK_Parser.Meeting: SwiftBMLSDK_MeetingProtocol

This struct holds a single parsed meeting instance.

Note

There is a platform-dependent extension that adds the directAppURI computed property to this type.

Format Information Container

  • This struct holds a parsed format information instance.

    See more

    Declaration

    Swift

    public struct Format : CustomStringConvertible, CustomDebugStringConvertible, Hashable, Comparable

Meeting Type Enum

  • This provides values for the type of meeting.

    See more

    Declaration

    Swift

    public enum MeetingType : String
  • This has the type of meeting, but in a sortable manner.

    See more

    Declaration

    Swift

    public enum SortableMeetingType : Int, Comparable

Organization Type Enum

  • This specifies the organization for the meeting.

    See more

    Declaration

    Swift

    public enum Organization : String, Codable

Public Instance Properties

  • This is the unique ID (within the found set) for the data source server.

    Declaration

    Swift

    public let serverID: Int
  • This is a unique ID (within the data source server) for this meeting.

    Declaration

    Swift

    public let localMeetingID: Int
  • This is a 1-based weekday index, with 1 being Sunday, and 7 being Saturday.

    Declaration

    Swift

    public let weekday: Int
  • This is the time of day that the meeting starts (date-independent).

    Declaration

    Swift

    public let startTime: Date
  • This is the duration, in seconds, of the meeting.

    Declaration

    Swift

    public let duration: TimeInterval
  • This is the local timezone of this meeting.

    Declaration

    Swift

    public let timeZone: TimeZone
  • This is the name of the meeting.

    Declaration

    Swift

    public let name: String
  • This is the organization to which this meeting belongs.

    Declaration

    Swift

    public let organization: Organization
  • This contains an array of formats that apply to the meeting.

    Declaration

    Swift

    public let formats: [Format]

Public Optional Instance Properties

  • This is the physical location of this meeting, or a location used to determine local timezone. It is optional.

    Declaration

    Swift

    public let coords: CLLocationCoordinate2D?
  • This is any additional comments for the meeting. It is optional.

    Declaration

    Swift

    public let comments: String?
  • This is the name for an in-person venue. It is optional.

    Declaration

    Swift

    public let inPersonVenueName: String?
  • This is a physical address of an in-person meeting. It is optional.

    Declaration

    Swift

    public let inPersonAddress: CNPostalAddress?
  • This is any additional text, describing the location. It is optional.

    Declaration

    Swift

    public let locationInfo: String?
  • This is a URL for a virtual meeting. It is optional.

    Declaration

    Swift

    public let virtualURL: URL?
  • This is a phone number for a virtual meeting. It is optional.

    Declaration

    Swift

    public let virtualPhoneNumber: String?
  • This is any additional text, describing the virtual meeting. It is optional.

    Declaration

    Swift

    public let virtualInfo: String?

Public Computed Properties

  • id

    This is a unique ID (within the found set) for this meeting, based on the two local IDs.

    Declaration

    Swift

    public var id: UInt64 { get }
  • The meeting type.

    Declaration

    Swift

    public var meetingType: MeetingType { get }
  • The meeting type, as a sortable value.

    Declaration

    Swift

    public var sortableMeetingType: SortableMeetingType { get }
  • The start time, in local meeting timezone, as a military-style integer (HHMM).

    Returns -1, if the time could not be calculated.

    Declaration

    Swift

    public var integerStartTime: Int { get }
  • The start time, adjusted to user timezone, as a military-style integer (HHMM).

    Returns -1, if the time could not be calculated.

    Declaration

    Swift

    public var adjustedIntegerStartTime: Int { get }
  • Returns the meeting location as a CLLocation.

    Note

    This may return nil, as not all meetings have a location.

    Declaration

    Swift

    public var location: CLLocation? { get }

Meeting Equatable Conformance

  • Public Equatable Conformance

    Declaration

    Swift

    public static func == (lhs: SwiftBMLSDK_Parser.Meeting, rhs: SwiftBMLSDK_Parser.Meeting) -> Bool

    Parameters

    lhs

    The left-hand side of the comparison.

    rhs

    The right-hand side of the comparison.

Meeting Hashable Conformance

  • Public Hashable Conformance

    Declaration

    Swift

    public func hash(into inOutHasher: inout Hasher)

    Parameters

    into

    (INOUT) -The hasher to be loaded.

Meeting CustomStringConvertible Conformance

  • Public CustomStringConvertible Conformance

    Declaration

    Swift

    public var description: String { get }

Meeting CustomDebugStringConvertible Conformance

  • Public CustomDebugStringConvertible Conformance

    Declaration

    Swift

    public var debugDescription: String { get }

Codable Coding Keys

  • Encoder

    The reason for the “flat” encoding, is that many ML parsers like fairly simple data, without nesting. Nested structures, like the coordinates and the formats, are converted to top-level basic data types, so that a JSON file, made from the encoder, is simple and flat.

    Formats are encoded into a TDV string, with the fields being tab-separated, and the formats being linefeed-separated.

    If a value is not valid, it is not included in the encoding.

    Declaration

    Swift

    public func encode(to inEncoder: Encoder) throws

    Parameters

    to

    The encoder to load with our values.

Public Computed Properties

  • True, if the meeting has a virtual component.

    Declaration

    Swift

    public var hasVirtual: Bool { get }
  • True, if the meeting has an in-person component.

    Declaration

    Swift

    public var hasInPerson: Bool { get }
  • This returns the start time as seconds from midnight.

    It returns -1, if there was a problem.

    Declaration

    Swift

    public var startTimeInSecondsFromMidnight: TimeInterval { get }
  • This returns the start time and weekday as date components.

    Declaration

    Swift

    public var dateComponents: DateComponents? { get }
  • This returns the address as a basic readable address.

    Declaration

    Swift

    public var basicInPersonAddress: String { get }

Public Non-Mutating Instance Methods

  • Returns the linear distance, in meters, between the input coordinate, and the meeting’s coordinate.

    Note

    May return nil, as not all meetings have a valid coordinate.

    Declaration

    Swift

    public func distanceInMeters(from inFrom: CLLocationCoordinate2D) -> CLLocationDistance?

    Parameters

    from

    The coordinates of the location we are comparing to the meeting’s location.

    Return Value

    An optional (may be nil) float, with the exact distance between the meeting’s location, and the input. It is always positive (or 0), if not nil.

  • Returns the number of seconds until the meeting starts (non-mutating. If the cache has not been updated, then this is not accurate).

    Declaration

    Swift

    public var nextMeetingIn: TimeInterval { get }

Public Mutating Instance Methods

  • Returns the number of seconds until the meeting starts.

    Declaration

    Swift

    public mutating func meetingStartsIn() -> TimeInterval

    Return Value

    The number of seconds, before the next start.

  • Returns true, if the meeting is currently in progress.

    Note

    This is possibly an expensive (in performance) operation, as it may reset the cache.

    Declaration

    Swift

    public mutating func isMeetingInProgress() -> Bool

    Return Value

    The number of seconds, before the next start.

  • This is the start time of the next meeting, in the meeting’s local timezone (unless isAdjusted is true).

    The meeting’s start date is always compared to our local time, so that means, for example, if we are at Eastern Time (US), and the meeting is at Central Time (US), and starts at 8PM (local), then, if we check at 8PM (Eastern), the next meeting start will be at 8PM, the same day (Central). If we are at Central Time, and the meeting is at Eastern Time, then checking at 8PM (Central), will show us the meeting starting at 8PM, the next day (In the Eastern Time zone). If isAdjusted is true, then the result will be 9PM (today), and 7PM (tomorrow) (User local), respectively.

    Note

    If the date is invalid, then the distant future will be returned.

    Declaration

    Swift

    @discardableResult
    public mutating func getNextStartDate(isAdjusted inAdjust: Bool = false) -> Date

    Parameters

    isAdjusted

    If true (default is false), then the date will be converted to our local timezone.

    Return Value

    The date of the next meeting (can be ignored, for purposes of updating the cache).

  • This is the start time of the previous meeting, in the meeting’s local timezone (unless isAdjusted is true).

    Note

    If the date is invalid, then the distant past will be returned.

    Declaration

    Swift

    public mutating func getPreviousStartDate(isAdjusted inAdjust: Bool = false) -> Date

    Parameters

    isAdjusted

    If true (default is false), then the date will be converted to our local timezone.

    Return Value

    The date of the last meeting.

Public Enum For Virtual Direct URLs

  • This enum helps us to create direct (as in opening the app directly) URLs, for various services.

    See more

    Declaration

    Swift

    public enum DirectVirtual : CaseIterable
  • This returns the enum.

    Declaration

    Swift

    public var directApp: DirectVirtual? { get }
  • If the URL for the virtual meeting is one that can open an app on the user’s device, a direct URL scheme version of the URL is returned.

    Declaration

    Swift

    public var directAppURI: URL? { get }
  • If we have a valid direct phone URL, it is returned here.

    Declaration

    Swift

    public var directPhoneURI: URL? { get }