BOOL TLSExtRegisterOSLogActivityMonitor()

in TwitterLoggingServiceExt/TLSExt.m [296:317]


BOOL TLSExtRegisterOSLogActivityMonitor(id<TLSExtOSLogActivityMonitor> monitor, NSError * __nullable * __nullable outError)
{
    if (!_LoadLoggingSupportFramework(outError)) {
        return NO;
    }

    const tls_os_activity_stream_flags_t flags =  TLS_OS_ACTIVITY_STREAM_PROCESS_ONLY |
                                               /* TLS_OS_ACTIVITY_STREAM_DEBUG | Debug is too much */
                                                  TLS_OS_ACTIVITY_STREAM_INFO;
    const pid_t pid = [NSProcessInfo processInfo].processIdentifier;

    __block tls_os_activity_stream_t activityStream = NULL;
    activityStream = s_func_os_activity_stream_for_pid(pid, flags, ^bool(tls_os_activity_stream_entry_t entry, int error) {
        return _ActivityStreamReceivedEntry(monitor, activityStream, entry, error);
    });
    s_func_os_activity_stream_set_event_handler(activityStream, ^void(tls_os_activity_stream_t stream, tls_os_activity_stream_event_t event) {
        _ActivityStreamReceivedEvent(monitor, stream, event);
    });

    s_func_os_activity_stream_resume(activityStream);
    return YES;
}