32#if OO_OXP_VERIFIER_ENABLED
34@interface OOOXPVerifierStage (OOPrivate)
50 _dependencies = [[NSMutableSet alloc] init];
51 _incompleteDependencies = [[NSMutableSet alloc] init];
52 _dependents = [[NSMutableSet alloc] init];
62 [_dependencies release];
63 [_incompleteDependencies release];
64 [_dependents release];
72 return [NSString stringWithFormat:@"<%@ %p>{\"%@\"}", [
self class], self, [
self name]];
78 return [[_verifier retain] autorelease];
95- (NSSet *)dependencies
121@implementation OOOXPVerifierStage (OOInternal)
125 _verifier = verifier;
133 if (stage ==
nil)
return NO;
136 if ([_dependencies containsObject:stage]) return YES;
139 foreach (directDep, _dependencies)
141 if ([directDep isDependentOf:stage]) return YES;
150 [_dependencies addObject:dependency];
151 [_incompleteDependencies addObject:dependency];
165 assert(_canRun && !_hasRun);
172 @catch (NSException *exception)
174 OOLog(
@"verifyOXP.exception",
@"***** Exception while running verification stage \"%@\
": %@", [
self name], exception);
180 [_dependents makeObjectsPerformSelector:@selector(dependencyCompleted:) withObject:self];
186 assert(_canRun && !_hasRun);
190 [_dependents makeObjectsPerformSelector:@selector(dependencyCompleted:) withObject:self];
194- (void)dependencyRegistrationComplete
196 _canRun = [_incompleteDependencies count] == 0;
200- (NSSet *)resolvedDependencies
202 return _dependencies;
206- (NSSet *)resolvedDependents
214@implementation OOOXPVerifierStage (OOPrivate)
218 assert(![
self isDependentOf:dependent]);
220 [_dependents addObject:dependent];
226 [_incompleteDependencies removeObject:dependency];
227 if ([_incompleteDependencies
count] == 0) _canRun = YES;
void OOLogPushIndent(void)
void OOLogPopIndent(void)
#define OOLogGenericSubclassResponsibility()
#define OOLog(class, format,...)
void registerDepedent:(OOOXPVerifierStage *dependent)