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.
-
This struct holds a parsed format information instance.
See moreDeclaration
Swift
public struct Format : CustomStringConvertible, CustomDebugStringConvertible, Hashable, Comparable
-
This specifies the organization for the meeting.
See moreDeclaration
Swift
public enum Organization : String, Codable
-
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]
-
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?
-
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 }
-
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.
-
Public Hashable Conformance
Declaration
Swift
public func hash(into inOutHasher: inout Hasher)
Parameters
into
(INOUT) -The hasher to be loaded.
-
Public CustomStringConvertible Conformance
Declaration
Swift
public var description: String { get }
-
Public CustomDebugStringConvertible Conformance
Declaration
Swift
public var debugDescription: String { get }
-
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.
-
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 }
-
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 }
-
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.
-
This enum helps us to create direct (as in opening the app directly) URLs, for various services.
See moreDeclaration
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 }