SecExperimentInternal.h [plain text]
#ifndef SecExperimentInternal_h
#define SecExperimentInternal_h
#include <Security/SecExperimentPriv.h>
SEC_ASSUME_NONNULL_BEGIN
extern const NSString *SecExperimentConfigurationKeyFleetSampleRate;
extern const NSString *SecExperimentConfigurationKeyDeviceSampleRate;
extern const NSString *SecExperimentConfigurationKeyExperimentIdentifier;
extern const NSString *SecExperimentConfigurationKeyConfigurationData;
@interface SecExperimentConfig : NSObject
@property (readonly) NSString *identifier;
@property (readonly) uint32_t fleetSampleRate;
@property (readonly) uint32_t deviceSampleRate;
@property (readonly) NSDictionary *configurationData;
@property (readonly) BOOL isSampled;
- (instancetype)initWithConfiguration:(NSDictionary *)configuration;
- (uint32_t)hostHash;
- (BOOL)shouldRunWithSamplingRate:(NSNumber *)sampleRate;
@end
@interface SecExperiment : NSObject
@property (readonly) NSString *name;
@property (readonly, nullable) NSString *identifier;
@property (readonly) BOOL samplingDisabled;
- (instancetype)initWithName:(const char *)name;
- (BOOL)experimentIsAllowedForProcess;
- (BOOL)isSamplingDisabledWithDefault:(BOOL)defaultValue;
- (BOOL)isSamplingDisabled;
- (SecExperimentConfig *)copyExperimentConfiguration;
- (NSDictionary *)copyExperimentConfigurationFromUserDefaults;
- (NSDictionary *)copyRemoteExperimentAsset;
- (NSDictionary *)copyRandomExperimentConfigurationFromAsset:(NSDictionary *)asset;
@end
SEC_RETURNS_RETAINED _Nullable sec_experiment_t
sec_experiment_create_with_inner_experiment(SecExperiment *experiment);
bool
sec_experiment_run_internal(sec_experiment_t experiment,
bool sampling_disabled,
dispatch_queue_t _Nullable queue,
sec_experiment_run_block_t run_block,
sec_experiment_skip_block_t _Nullable skip_block,
bool synchronous);
size_t
sec_experiment_get_run_count(sec_experiment_t experiment);
size_t
sec_experiment_get_successful_run_count(sec_experiment_t experiment);
const char * _Nullable
sec_experiment_get_identifier(sec_experiment_t experiment);
SEC_ASSUME_NONNULL_END
#endif