Splunk MINT SDK for iOS  5.1
 All Classes Files Functions Variables Properties Macros
Mint.h
Go to the documentation of this file.
1 //
2 // Mint.h
3 // SplunkMint
4 //
5 // Copyright (c) 2016 Splunk. All rights reserved.
6 
7 #import <Foundation/Foundation.h>
8 #include <pthread.h>
10 #import "MintEnums.h"
11 #import "MintUtilities.h"
12 
13 
14 
24 #define MintLogException(exception, extradata) [[Mint sharedInstance] logException:exception extraData:extradata];
25 
30 #define MINT_METHOD_TRACE_START \
31 NSMutableDictionary *mintTraceInfo = [[NSMutableDictionary alloc] init];\
32 [mintTraceInfo setObject:[NSString stringWithFormat:@"%s", __FUNCTION__] forKey:@"method"];\
33 [mintTraceInfo setObject:@(getCurrentTimeInNanos()) forKey:@"startTime"];\
34 [mintTraceInfo setObject:@(pthread_mach_thread_np(pthread_self())) forKey:@"threadID"];\
35 
36 
37 #define MINT_METHOD_TRACE_STOP \
38 [mintTraceInfo setObject:@(getCurrentTimeInNanos()) forKey:@"endTime"];\
39 [[Mint sharedInstance] logMethodTrace:mintTraceInfo];\
40 
41 #define MINT_NONARC_METHOD_TRACE_STOP \
42 [mintTraceInfo setObject:@(getCurrentTimeInNanos()) forKey:@"endTime"];\
43 [[Mint sharedInstance] logMethodTrace:mintTraceInfo];\
44 [mintTraceInfo release];\
45 mintTraceInfo = nil;\
46 
47 
51 extern NSString * const SPLAppEnvRelease;
52 extern NSString * const SPLAppEnvStaging;
53 extern NSString * const SPLAppEnvUserAcceptanceTesting;
54 extern NSString * const SPLAppEnvTesting;
55 extern NSString * const SPLAppEnvDevelopment;
56 
57 
65 @interface Mint : NSObject
66 
73 + (Mint*) sharedInstance;
74 
75 
79 - (BOOL) isInitialized;
80 
84 - (BOOL) isSessionActive;
85 
92 - (void)enableDebugLog:(BOOL) enable;
93 
97 @property (nonatomic, strong) NSString* userIdentifier;
98 
99 
111 @property (nonatomic, strong) NSString* applicationEnvironment;
112 
117 - (void) disableCrashReporter;
118 
122 - (void) flush;
123 
124 
125 #pragma mark *** Initialize Mint SDK ***
126 
135 - (void) initAndStartSessionWithAPIKey:(NSString*)apiKey;
136 
147 - (void) initAndStartSessionWithHECUrl:(NSString*)url token:(NSString*)token;
148 
154 - (void) leaveBreadcrumb: (NSString*)crumb;
155 
159 - (void) clearBreadcrumbs;
160 
161 
166 - (void) startSession;
167 
172 - (void) closeSession;
173 
174 
180 - (void) logException: (NSException*)exception;
181 
189 - (void) logException: (NSException*)exception extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
190 
197 - (void) logException: (NSException*)exception extraData: (MintLimitedExtraData*)extraDataDictionary;
198 
203 - (void) disableNetworkMonitoring;
204 
210 - (NSDictionary*) getDevSettings;
211 
218 - (void) enableMintLoggingCache:(BOOL)enable;
219 
225 - (void) enableLogging:(BOOL)enable;
226 
232 - (void) enableFlushOnlyOverWiFi:(BOOL)enable;
233 
239 - (void) setLogging:(NSInteger)linesCount;
240 
248 - (NSString*) transactionStart:(NSString*)transactionName;
249 
258 - (NSString*) transactionStart:(NSString*)transactionName extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
259 
267 - (NSString*) transactionStart:(NSString*)transactionName extraData: (MintLimitedExtraData*)extraDataDictionary;
268 
274 - (void) transactionStop:(NSString*)transactionID;
275 
283 - (void) transactionStop:(NSString*)transactionID extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
284 
291 - (void) transactionStop:(NSString*)transactionID extraData: (MintLimitedExtraData*)extraDataDictionary;
292 
299 - (void) transactionCancel:(NSString*)transactionID reason:(NSString*)aReason;
300 
309 - (void) transactionCancel:(NSString*)transactionID reason:(NSString*)aReason extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
310 
318 - (void) transactionCancel:(NSString*)transactionID reason:(NSString*)aReason extraData: (MintLimitedExtraData*)extraDataDictionary;
319 
325 - (void) addURLToBlackList:(NSString*)url;
326 
332 - (NSMutableArray*) blacklistUrls;
333 
334 
340 - (void) logEventWithName: (NSString*)name;
341 
348 - (void) logEventWithName:(NSString*)name logLevel:(MintLogLevel)logLevel;
349 
358 - (void) logEventWithName:(NSString *)name logLevel:(MintLogLevel)logLevel extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
359 
367 - (void) logEventWithName:(NSString*)name logLevel:(MintLogLevel)logLevel extraData: (MintLimitedExtraData*)extraDataDictionary;
368 
374 - (void)enableUserOptOut:(BOOL)userOptOut;
375 
381 - (NSString*)getMintUUID;
382 
388 - (NSString*)getSessionID;
389 
396 - (void)logViewWithCurrentViewName:(NSString*)currentViewName;
397 
405 - (void)logViewWithCurrentViewName:(NSString*)currentViewName extraDataKey: (NSString*)key extraDataValue: (NSString*)value;
406 
413 - (void)logViewWithCurrentViewName:(NSString*)currentViewName extraData: (MintLimitedExtraData*)extraDataDictionary;
414 
420 - (void)setSessionInterval:(NSInteger)intervalInSeconds;
421 
427 
434 void MintLog(MintLogLevel logLevel, NSString* message, ...) NS_FORMAT_FUNCTION(2,3);
435 
442 - (void)addExtraData:(NSString*)value forKey:(NSString *)key;
443 
449 - (void)addExtraData:(MintLimitedExtraData*)extraDataDictionary;
450 
457 - (NSString*)extraDataForKey:(NSString *)key;
458 
464 - (void)removeExtraDataForKey:(NSString*)key;
465 
469 - (void)removeAllExtraData;
470 
474 - (NSDictionary*)extraData;
475 
481 - (NSString*)startTimerWithName:(NSString*)timerName;
482 
487 - (void)stopTimerWithId:(NSString*)timerId;
488 
493 - (void)logMethodTrace:(NSDictionary*)traceInfo;
494 
500 -(void)logMemoryWarningWithClassName:(NSString*)className;
501 
502 @end
NSString * userIdentifier
Definition: Mint.h:97
NSString *const SPLAppEnvStaging
Definition: Mint.h:65
NSString *const SPLAppEnvUserAcceptanceTesting
void startSession()
NSString *const SPLAppEnvRelease
void MintLog(MintLogLevel logLevel, NSString *message,...) NS_FORMAT_FUNCTION(2
void clearBreadcrumbs()
void disableNetworkMonitoring()
BOOL isInitialized()
Definition: MintLimitedExtraData.h:14
NSMutableArray * blacklistUrls()
BOOL isHTTPEventCollectorEnabled()
NSString *const SPLAppEnvTesting
Mint * sharedInstance()
NSString * getMintUUID()
NSString * getSessionID()
NSString * applicationEnvironment
Definition: Mint.h:111
void removeAllExtraData()
BOOL isSessionActive()
void flush()
void closeSession()
NSDictionary * getDevSettings()
NSString *const SPLAppEnvDevelopment
void disableCrashReporter()
NSDictionary * extraData()