109 lines
3.6 KiB
C
109 lines
3.6 KiB
C
|
|
#if __has_include(<Sentry/SentryDefines.h>)
|
||
|
|
# import <Sentry/SentryDefines.h>
|
||
|
|
#else
|
||
|
|
# import "SentryDefines.h"
|
||
|
|
#endif
|
||
|
|
|
||
|
|
@protocol SentryANRTracker;
|
||
|
|
@class SentryAppStateManager;
|
||
|
|
@class SentryBinaryImageCache;
|
||
|
|
@class SentryCrash;
|
||
|
|
@class SentryCrashWrapper;
|
||
|
|
@class SentryDebugImageProvider;
|
||
|
|
@class SentryDispatchFactory;
|
||
|
|
@class SentryDispatchQueueWrapper;
|
||
|
|
@class SentryExtraContextProvider;
|
||
|
|
@class SentryFileManager;
|
||
|
|
@class SentryNSNotificationCenterWrapper;
|
||
|
|
@class SentryNSProcessInfoWrapper;
|
||
|
|
@class SentryNSTimerFactory;
|
||
|
|
@class SentrySwizzleWrapper;
|
||
|
|
@class SentrySysctl;
|
||
|
|
@class SentrySystemWrapper;
|
||
|
|
@class SentryThreadWrapper;
|
||
|
|
@class SentryThreadInspector;
|
||
|
|
@protocol SentryRandom;
|
||
|
|
@protocol SentryCurrentDateProvider;
|
||
|
|
@protocol SentryRateLimits;
|
||
|
|
|
||
|
|
#if SENTRY_HAS_METRIC_KIT
|
||
|
|
@class SentryMXManager;
|
||
|
|
#endif // SENTRY_HAS_METRIC_KIT
|
||
|
|
|
||
|
|
#if SENTRY_UIKIT_AVAILABLE
|
||
|
|
@class SentryFramesTracker;
|
||
|
|
@class SentryScreenshot;
|
||
|
|
@class SentryUIApplication;
|
||
|
|
@class SentryViewHierarchy;
|
||
|
|
#endif // SENTRY_UIKIT_AVAILABLE
|
||
|
|
|
||
|
|
#if SENTRY_HAS_UIKIT
|
||
|
|
@class SentryUIDeviceWrapper;
|
||
|
|
#endif // TARGET_OS_IOS
|
||
|
|
|
||
|
|
#if !TARGET_OS_WATCH
|
||
|
|
@class SentryReachability;
|
||
|
|
#endif // !TARGET_OS_WATCH
|
||
|
|
|
||
|
|
NS_ASSUME_NONNULL_BEGIN
|
||
|
|
|
||
|
|
@interface SentryDependencyContainer : NSObject
|
||
|
|
SENTRY_NO_INIT
|
||
|
|
|
||
|
|
+ (instancetype)sharedInstance;
|
||
|
|
|
||
|
|
/**
|
||
|
|
* Set all dependencies to nil for testing purposes.
|
||
|
|
*/
|
||
|
|
+ (void)reset;
|
||
|
|
|
||
|
|
@property (nonatomic, strong) SentryFileManager *fileManager;
|
||
|
|
@property (nonatomic, strong) SentryAppStateManager *appStateManager;
|
||
|
|
@property (nonatomic, strong) SentryCrashWrapper *crashWrapper;
|
||
|
|
@property (nonatomic, strong) SentryCrash *crashReporter;
|
||
|
|
@property (nonatomic, strong) SentryThreadWrapper *threadWrapper;
|
||
|
|
@property (nonatomic, strong) id<SentryRandom> random;
|
||
|
|
@property (nonatomic, strong) SentrySwizzleWrapper *swizzleWrapper;
|
||
|
|
@property (nonatomic, strong) SentryDispatchQueueWrapper *dispatchQueueWrapper;
|
||
|
|
@property (nonatomic, strong) SentryNSNotificationCenterWrapper *notificationCenterWrapper;
|
||
|
|
@property (nonatomic, strong) SentryDebugImageProvider *debugImageProvider;
|
||
|
|
@property (nonatomic, strong) SentryNSProcessInfoWrapper *processInfoWrapper;
|
||
|
|
@property (nonatomic, strong) SentrySystemWrapper *systemWrapper;
|
||
|
|
@property (nonatomic, strong) SentryDispatchFactory *dispatchFactory;
|
||
|
|
@property (nonatomic, strong) SentryNSTimerFactory *timerFactory;
|
||
|
|
@property (nonatomic, strong) id<SentryCurrentDateProvider> dateProvider;
|
||
|
|
@property (nonatomic, strong) SentryBinaryImageCache *binaryImageCache;
|
||
|
|
@property (nonatomic, strong) SentryExtraContextProvider *extraContextProvider;
|
||
|
|
@property (nonatomic, strong) SentrySysctl *sysctlWrapper;
|
||
|
|
@property (nonatomic, strong) SentryThreadInspector *threadInspector;
|
||
|
|
@property (nonatomic, strong) id<SentryRateLimits> rateLimits;
|
||
|
|
|
||
|
|
#if SENTRY_UIKIT_AVAILABLE
|
||
|
|
@property (nonatomic, strong) SentryFramesTracker *framesTracker;
|
||
|
|
@property (nonatomic, strong) SentryScreenshot *screenshot;
|
||
|
|
@property (nonatomic, strong) SentryViewHierarchy *viewHierarchy;
|
||
|
|
@property (nonatomic, strong) SentryUIApplication *application;
|
||
|
|
#endif // SENTRY_UIKIT_AVAILABLE
|
||
|
|
|
||
|
|
#if SENTRY_HAS_UIKIT
|
||
|
|
@property (nonatomic, strong) SentryUIDeviceWrapper *uiDeviceWrapper;
|
||
|
|
#endif // TARGET_OS_IOS
|
||
|
|
|
||
|
|
#if !TARGET_OS_WATCH
|
||
|
|
@property (nonatomic, strong) SentryReachability *reachability;
|
||
|
|
#endif // !TARGET_OS_WATCH
|
||
|
|
|
||
|
|
- (id<SentryANRTracker>)getANRTracker:(NSTimeInterval)timeout;
|
||
|
|
#if SENTRY_HAS_UIKIT
|
||
|
|
- (id<SentryANRTracker>)getANRTracker:(NSTimeInterval)timeout isV2Enabled:(BOOL)isV2Enabled;
|
||
|
|
#endif // SENTRY_HAS_UIKIT
|
||
|
|
|
||
|
|
#if SENTRY_HAS_METRIC_KIT
|
||
|
|
@property (nonatomic, strong) SentryMXManager *metricKitManager API_AVAILABLE(
|
||
|
|
ios(15.0), macos(12.0), macCatalyst(15.0)) API_UNAVAILABLE(tvos, watchos);
|
||
|
|
#endif
|
||
|
|
|
||
|
|
@end
|
||
|
|
|
||
|
|
NS_ASSUME_NONNULL_END
|