36 - (instancetype)init:(NSArray*)arguments {
41 _statisticsCallback = nil;
49 - (instancetype)init:(NSArray*)arguments withExecuteCallback:(
ExecuteCallback)executeCallback {
54 _statisticsCallback = nil;
75 - (instancetype)init:(NSArray*)arguments withExecuteCallback:(
ExecuteCallback)executeCallback withLogCallback:(
LogCallback)logCallback withStatisticsCallback:(
StatisticsCallback)statisticsCallback withLogRedirectionStrategy:(LogRedirectionStrategy)logRedirectionStrategy {
77 self = [
super init:arguments withExecuteCallback:executeCallback withLogCallback:logCallback withLogRedirectionStrategy:logRedirectionStrategy];
89 return _statisticsCallback;
92 - (NSArray*)getAllStatisticsWithTimeout:(
int)waitTimeout {
93 [
self waitForAsynchronousMessagesInTransmit:waitTimeout];
95 if ([
self thereAreAsynchronousMessagesInTransmit]) {
96 NSLog(
@"getAllStatisticsWithTimeout was called to return all statistics but there are still statistics being transmitted for session id %ld.", [
self getSessionId]);
99 return [
self getStatistics];
102 - (NSArray*)getAllStatistics {
103 return [
self getAllStatisticsWithTimeout:AbstractSessionDefaultTimeoutForAsynchronousMessagesInTransmit];
106 - (NSArray*)getStatistics {
107 [_statisticsLock lock];
108 NSArray* statisticsCopy = [_statistics copy];
109 [_statisticsLock unlock];
111 return statisticsCopy;
117 [_statisticsLock lock];
119 lastStatistics = [_statistics objectAtIndex:0];
121 [_statisticsLock unlock];
123 return lastStatistics;
126 - (void)addStatistics:(
Statistics*)statistics {
127 [_statisticsLock lock];
128 [_statistics addObject:statistics];
129 [_statisticsLock unlock];
void(^ ExecuteCallback)(id< Session > session)
static StatisticsCallback statisticsCallback
NSRecursiveLock * _statisticsLock
NSMutableArray * _statistics
void(^ LogCallback)(Log *log)
void(^ StatisticsCallback)(Statistics *statistics)
LogRedirectionStrategy getLogRedirectionStrategy()