static bool _ActivityStreamReceivedEntry()

in TwitterLoggingServiceExt/TLSExt.m [130:173]


static bool _ActivityStreamReceivedEntry(id<TLSExtOSLogActivityMonitor> monitor,
                                         tls_os_activity_stream_t activityStream,
                                         tls_os_activity_stream_entry_t entry,
                                         int error)
{
    if (error != 0 || NULL == entry) {
        return true;
    }

    TLSLogMessageInfo *info = nil;
    const long long currentTimeInMS = (entry->common.tv_gmt.tv_sec * 1000) + (entry->common.tv_gmt.tv_usec / 1000);
    NSDate *timestamp = [NSDate dateWithTimeIntervalSince1970:(double)currentTimeInMS / 1000.];
    switch (entry->type) {
        case TLS_OS_ACTIVITY_STREAM_TYPE_ACTIVITY_CREATE:
        case TLS_OS_ACTIVITY_STREAM_TYPE_ACTIVITY_TRANSITION:
        case TLS_OS_ACTIVITY_STREAM_TYPE_ACTIVITY_USERACTION:
            break;

        case TLS_OS_ACTIVITY_STREAM_TYPE_TRACE_MESSAGE:
            // TODO: might want to support trace messages
            break;
        case TLS_OS_ACTIVITY_STREAM_TYPE_LEGACY_LOG_MESSAGE:
            break;
        case TLS_OS_ACTIVITY_STREAM_TYPE_LOG_MESSAGE:
            info = _LogMessageToLogMessageInfo(entry, timestamp, monitor);
            break;

        // TODO: support sign posts
        case TLS_OS_ACTIVITY_STREAM_TYPE_SIGNPOST_BEGIN:
        case TLS_OS_ACTIVITY_STREAM_TYPE_SIGNPOST_END:
        case TLS_OS_ACTIVITY_STREAM_TYPE_SIGNPOST_EVENT:
            break;

        case TLS_OS_ACTIVITY_STREAM_TYPE_STATEDUMP_EVENT:
            // TODO: can we support a state dump?
            break;
    }

    if (info) {
        [monitor tlsext_logMessage:info];
    }

    return true;
}