idb/FBControlCore/Utility/FBControlCoreGlobalConfigur...

109 строки
2.7 KiB
Objective-C

/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
#import <Foundation/Foundation.h>
@protocol FBControlCoreLogger;
/**
An Environment Variable: 'FBCONTROLCORE_LOGGING' to enable logging of Informational Messages to stderr.
*/
extern NSString *const FBControlCoreStderrLogging;
/**
An Environment Variable: 'FBCONTROLCORE_DEBUG_LOGGING' to enable logging of Debug Messages to stderr.
*/
extern NSString *const FBControlCoreDebugLogging;
/**
Environment Globals & other derived constants.
These values can be accessed before the Private Frameworks are loaded.
*/
@interface FBControlCoreGlobalConfiguration : NSObject
/**
The path to of Xcode's /Xcode.app/Contents/Developer directory.
*/
+ (NSString *)developerDirectory;
/**
The SDK Version of the current Xcode Version as a Decimal Number.
*/
+ (NSDecimalNumber *)sdkVersionNumber;
/**
Formatter for the SDK Version a string
*/
+ (NSNumberFormatter *)sdkVersionNumberFormatter;
/**
The SDK Version of the current Xcode Version as a String.
*/
+ (NSString *)sdkVersion;
/**
A Timeout Value when waiting on events that should happen 'fast'
*/
+ (NSTimeInterval)fastTimeout;
/**
A Timeout Value when waiting on events that will take some time longer than 'fast' events.
*/
+ (NSTimeInterval)regularTimeout;
/**
A Timeout Value when waiting on events that will a longer period of time.
*/
+ (NSTimeInterval)slowTimeout;
/**
YES if passing a custom SimDeviceSet to the Simulator App is Supported.
*/
+ (BOOL)supportsCustomDeviceSets;
/**
YES if additional debug logging should be provided to the logger, NO otherwise.
*/
+ (BOOL)debugLoggingEnabled;
/**
The default logger to send log messages to.
*/
+ (id<FBControlCoreLogger>)defaultLogger;
/**
A Description of the Current Configuration.
*/
+ (NSString *)description;
@end
/**
Updates the Global Configuration.
These Methods should typically be called *before any other* method in FBControlCore.
*/
@interface FBControlCoreGlobalConfiguration (Setters)
/**
This is provided as a global so that a custom logger can be provided to the Private Framework loader.
@param logger the new default logger
*/
+ (void)setDefaultLogger:(id<FBControlCoreLogger>)logger;
/**
Update the current process environment to enable logging to stderr.
@param stderrLogging YES if stderr logging should be enabled, NO otherwise.
@param debugLogging YES if stdout logging should be enabled, NO otherwise.
*/
+ (void)setDefaultLoggerToASLWithStderrLogging:(BOOL)stderrLogging debugLogging:(BOOL)debugLogging;
@end