Index: class-dump/src/CDStructureTable.h |
=================================================================== |
--- class-dump/src/CDStructureTable.h (revision 0) |
+++ class-dump/src/CDStructureTable.h (revision 0) |
@@ -0,0 +1,118 @@ |
+// -*- mode: ObjC -*- |
+ |
+// This file is part of class-dump, a utility for examining the Objective-C segment of Mach-O files. |
+// Copyright (C) 1997-1998, 2000-2001, 2004-2010 Steve Nygard. |
+ |
+#import <Foundation/Foundation.h> |
+ |
+@class CDClassDump, CDType, CDStructureInfo, CDSymbolReferences, CDTypeController, CDTypeFormatter; |
+ |
+enum { |
+ CDTableTypeStructure = 0, |
+ CDTableTypeUnion = 1, |
+}; |
+typedef NSUInteger CDTableType; |
+ |
+@interface CDStructureTable : NSObject |
+{ |
+ NSString *identifier; |
+ NSString *anonymousBaseName; |
+ |
+ // Phase 0 - top level |
+ NSMutableDictionary *phase0_structureInfo; // key: NSString (typeString), value: CDStructureInfo |
+ |
+ // Phase 1 - all substructures |
+ NSMutableDictionary *phase1_structureInfo; // key: NSString (typeString), value: CDStructureInfo |
+ NSUInteger phase1_maxDepth; |
+ NSMutableDictionary *phase1_groupedByDepth; // key: NSNumber (structureDepth), value: NSMutableArray of CDStructureInfo |
+ |
+ // Phase 2 - merging all structure bottom up |
+ NSMutableDictionary *phase2_namedStructureInfo; // key: NSString (name), value: CDStructureInfo |
+ NSMutableDictionary *phase2_anonStructureInfo; // key: NSString (reallyBareTypeString), value: CDStructureInfo |
+ NSMutableArray *phase2_nameExceptions; // Of CDStructureInfo |
+ NSMutableArray *phase2_anonExceptions; // Of CDStructureInfo |
+ |
+ // Phase 3 - merged reference counts from updated phase0 types |
+ NSMutableDictionary *phase3_namedStructureInfo; // key: NSString (name), value: CDStructureInfo |
+ NSMutableDictionary *phase3_anonStructureInfo; // key: NSString (reallyBareTypeString), value: CDStructureInfo |
+ |
+ NSMutableDictionary *phase3_nameExceptions; // key: NSString (typeString), value: CDStructureInfo |
+ NSMutableDictionary *phase3_anonExceptions; // key: NSString (typeString), value: CDStructureInfo |
+ |
+ NSMutableSet *phase3_exceptionalNames; // Of NSString |
+ NSMutableSet *phase3_inMethodNameExceptions; // Of NSString |
+ |
+ struct { |
+ unsigned int shouldDebug:1; |
+ } flags; |
+ |
+ NSMutableSet *debugNames; // NSString (name) |
+ NSMutableSet *debugAnon; // NSString (reallyBareTypeString) |
+} |
+ |
+- (id)init; |
+- (void)dealloc; |
+ |
+- (NSString *)identifier; |
+- (void)setIdentifier:(NSString *)newIdentifier; |
+ |
+- (NSString *)anonymousBaseName; |
+- (void)setAnonymousBaseName:(NSString *)newName; |
+ |
+- (BOOL)shouldDebug; |
+- (void)setShouldDebug:(BOOL)newFlag; |
+ |
+// Phase 0 |
+- (void)phase0RegisterStructure:(CDType *)aStructure usedInMethod:(BOOL)isUsedInMethod; |
+- (void)finishPhase0; |
+- (void)logPhase0Info; |
+ |
+// Phase 1 |
+- (void)phase1WithTypeController:(CDTypeController *)typeController; |
+- (void)phase1RegisterStructure:(CDType *)aStructure; |
+- (void)finishPhase1; |
+- (NSUInteger)phase1_maxDepth; |
+ |
+// Phase 2 |
+- (void)phase2AtDepth:(NSUInteger)depth typeController:(CDTypeController *)typeController; |
+- (CDType *)phase2ReplacementForType:(CDType *)type; |
+ |
+- (void)finishPhase2; |
+- (void)logPhase2Info; |
+ |
+// Phase 3 |
+- (void)phase2ReplacementOnPhase0WithTypeController:(CDTypeController *)typeController; |
+ |
+- (void)buildPhase3Exceptions; |
+- (void)phase3WithTypeController:(CDTypeController *)typeController; |
+- (void)phase3RegisterStructure:(CDType *)aStructure |
+ count:(NSUInteger)referenceCount |
+ usedInMethod:(BOOL)isUsedInMethod |
+ typeController:(CDTypeController *)typeController; |
+- (void)finishPhase3; |
+- (void)logPhase3Info; |
+- (CDType *)phase3ReplacementForType:(CDType *)type; |
+ |
+// Other |
+ |
+- (void)appendNamedStructuresToString:(NSMutableString *)resultString |
+ formatter:(CDTypeFormatter *)aTypeFormatter |
+ symbolReferences:(CDSymbolReferences *)symbolReferences |
+ markName:(NSString *)markName; |
+ |
+- (void)appendTypedefsToString:(NSMutableString *)resultString |
+ formatter:(CDTypeFormatter *)aTypeFormatter |
+ symbolReferences:(CDSymbolReferences *)symbolReferences |
+ markName:(NSString *)markName; |
+ |
+- (void)generateTypedefNames; |
+- (void)generateMemberNames; |
+ |
+- (BOOL)shouldExpandStructureInfo:(CDStructureInfo *)info; |
+- (BOOL)shouldExpandType:(CDType *)type; |
+- (NSString *)typedefNameForType:(CDType *)type; |
+ |
+- (void)debugName:(NSString *)name; |
+- (void)debugAnon:(NSString *)str; |
+ |
+@end |
Property changes on: class-dump/src/CDStructureTable.h |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |