static void _ActivityStreamReceivedEvent()

in TwitterLoggingServiceExt/TLSExt.m [175:222]


static void _ActivityStreamReceivedEvent(id<TLSExtOSLogActivityMonitor> monitor,
                                         tls_os_activity_stream_t activityStream,
                                         tls_os_activity_stream_event_t event)
{
    if (![monitor respondsToSelector:@selector(tlsext_activityStreamEvent:)]) {
        return;
    }

    TLSLogLevel level = TLSLogLevelNotice;
    NSDate *timestamp = [NSDate date];
    NSString *message = nil;
    switch (event) {
        case TLS_OS_ACTIVITY_STREAM_EVENT_STARTED:
            message = @"***** activity stream started *****";
            break;
        case TLS_OS_ACTIVITY_STREAM_EVENT_STOPPED:
            message = @"***** activity stream stopped *****";
            break;
        case TLS_OS_ACTIVITY_STREAM_EVENT_FAILED:
            message = @"***** activity stream failed *****";
            break;
        case TLS_OS_ACTIVITY_STREAM_EVENT_CHUNK_STARTED:
            message = @"***** activity stream chunk started *****";
            level = TLSLogLevelDebug;
            break;
        case TLS_OS_ACTIVITY_STREAM_EVENT_CHUNK_FINISHED:
            message = @"***** activity stream chunk finished *****";
            level = TLSLogLevelDebug;
            break;
    }

    if (message) {
        NSString *channel = [monitor respondsToSelector:@selector(tlsext_defaultChannel)] ? monitor.tlsext_defaultChannel : kFallbackChannel;
        NSDate *startTime = _TLSExtGetOSLogActivityStartTimestampWithFallbackStartTimestamp(timestamp);
        TLSLogMessageInfo *info = [[TLSLogMessageInfo alloc] initWithLevel:level
                                                                      file:@""
                                                                  function:@""
                                                                      line:0
                                                                   channel:channel
                                                                 timestamp:timestamp
                                                               logLifespan:[timestamp timeIntervalSinceDate:startTime]
                                                                  threadId:0
                                                                threadName:nil
                                                             contextObject:nil
                                                                   message:message];
        [monitor tlsext_activityStreamEvent:info];
    }
}