Changeset 2970

Show
Ignore:
Timestamp:
06/18/05 00:22:06 (3 years ago)
Author:
morris
Message:

Remove locks, all cache operations occur on single threads now anyway

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Footagehead/trunk/FHCache.h

    r2948 r2970  
    2727 */ 
    2828 
     29@class FHImage; 
     30 
    2931@interface FHCache : ZAObject { 
    3032        NSImage                                         *_directoryIcon; 
    3133        NSMutableDictionary                     *_fileIcons; 
    3234        NSMutableDictionary                     *_largeFileIcons; 
    33          
    34         NSRecursiveLock                         *_lock; 
     35        NSMutableDictionary                     *_thumbnails; 
    3536} 
    3637 
     
    3940 
    4041- (NSImage *)directoryIcon; 
    41  
    42 - (void)setFileIcon:(NSImage *)icon forExtension:(NSString *)extension; 
    43 - (NSImage *)fileIconForExtension:(NSString *)extension; 
    4442 
    4543- (void)setFileIcon:(NSImage *)icon forURL:(ZAURL *)url; 
     
    5250- (NSImage *)largeFileIconForURL:(ZAURL *)url; 
    5351 
     52- (void)setThumbnail:(FHImage *)image forURL:(ZAURL *)url; 
     53- (FHImage *)thumbnailForURL:(ZAURL *)url; 
     54 
    5455@end 
  • Footagehead/trunk/FHCache.m

    r2948 r2970  
    2828 
    2929#import "FHCache.h" 
     30#import "FHImage.h" 
    3031 
    3132@implementation FHCache 
     
    4546        self = [super init]; 
    4647         
    47         _directoryIcon = [[[NSWorkspace sharedWorkspace] iconForFile:@"/tmp"] retain]; 
     48        _directoryIcon = [[[NSWorkspace sharedWorkspace] iconForFile:@"/tmp"] retain]; 
    4849        [_directoryIcon setSize:NSMakeSize(128, 128)]; 
    4950         
    50         _fileIcons = [[NSMutableDictionary alloc] initWithCapacity:100]; 
    51         _largeFileIcons = [[NSMutableDictionary alloc] initWithCapacity:100]; 
    52          
    53         _lock = [[NSRecursiveLock alloc] init]; 
     51        _fileIcons              = [[NSMutableDictionary alloc] initWithCapacity:100]; 
     52        _largeFileIcons = [[NSMutableDictionary alloc] initWithCapacity:100]; 
     53        _thumbnails             = [[NSMutableDictionary alloc] initWithCapacity:500]; 
    5454         
    5555        return self; 
     
    6262        [_fileIcons release]; 
    6363        [_largeFileIcons release]; 
    64          
    65         [_lock release]; 
    6664         
    6765        [super dealloc]; 
     
    8078#pragma mark - 
    8179 
    82 - (void)setFileIcon:(NSImage *)icon forExtension:(NSString *)extension { 
    83         [_lock lock]; 
    84          
    85         if([_fileIcons count] > 100) 
    86                 [_fileIcons removeObjectForKey:[[_fileIcons allKeys] objectAtIndex:0]]; 
    87          
    88         [_fileIcons setObject:icon forKey:extension]; 
    89  
    90         [_lock unlock]; 
    91 } 
    92  
    93  
    94  
    95 - (NSImage *)fileIconForExtension:(NSString *)extension { 
    96         NSImage         *image; 
    97          
    98         [_lock lock]; 
    99         image = [_fileIcons objectForKey:extension]; 
    100         [_lock unlock]; 
    101          
    102         return image; 
    103 } 
    104  
    105  
    106  
    107 #pragma mark - 
    108  
    10980- (void)setFileIcon:(NSImage *)icon forURL:(ZAURL *)url { 
    110         [_lock lock]; 
    111          
    11281        if([_fileIcons count] > 100) 
    11382                [_fileIcons removeObjectForKey:[[_fileIcons allKeys] objectAtIndex:0]]; 
    11483         
    11584        [_fileIcons setObject:icon forKey:[url string]]; 
    116          
    117         [_lock unlock]; 
    11885} 
    11986 
     
    12188 
    12289- (NSImage *)fileIconForURL:(ZAURL *)url { 
    123         NSImage         *image; 
    124          
    125         [_lock lock]; 
    126         image = [_fileIcons objectForKey:[url string]]; 
    127         [_lock unlock]; 
    128          
    129         return image; 
     90        return [_fileIcons objectForKey:[url string]]; 
    13091} 
    13192 
     
    13596 
    13697- (void)setLargeFileIcon:(NSImage *)icon forExtension:(NSString *)extension { 
    137         [_lock lock]; 
    138          
    13998        if([_largeFileIcons count] > 100) 
    14099                [_largeFileIcons removeObjectForKey:[[_largeFileIcons allKeys] objectAtIndex:0]]; 
    141100         
    142101        [_largeFileIcons setObject:icon forKey:extension]; 
    143  
    144         [_lock unlock]; 
    145102} 
    146103 
     
    148105 
    149106- (NSImage *)largeFileIconForExtension:(NSString *)extension { 
    150         NSImage         *image; 
    151          
    152         [_lock lock]; 
    153         image = [_largeFileIcons objectForKey:extension]; 
    154         [_lock unlock]; 
    155          
    156         return image; 
     107        return [_largeFileIcons objectForKey:extension]; 
    157108} 
    158109 
     
    162113 
    163114- (void)setLargeFileIcon:(NSImage *)icon forURL:(ZAURL *)url { 
    164         [_lock lock]; 
    165          
    166115        if([_largeFileIcons count] > 100) 
    167116                [_largeFileIcons removeObjectForKey:[[_largeFileIcons allKeys] objectAtIndex:0]]; 
    168117         
    169118        [_largeFileIcons setObject:icon forKey:[url string]]; 
    170          
    171         [_lock unlock]; 
    172119} 
    173120 
     
    175122 
    176123- (NSImage *)largeFileIconForURL:(ZAURL *)url { 
    177         NSImage         *image; 
     124        return [_largeFileIcons objectForKey:[url string]]; 
     125
     126 
     127 
     128 
     129#pragma mark - 
     130 
     131- (void)setThumbnail:(FHImage *)image forURL:(ZAURL *)url { 
     132        if([_thumbnails count] > 500) 
     133                [_largeFileIcons removeObjectForKey:[[_thumbnails allKeys] objectAtIndex:0]]; 
    178134         
    179         [_lock lock]; 
    180         image = [_largeFileIcons objectForKey:[url string]]; 
    181         [_lock unlock]; 
    182          
    183         return image; 
     135        [_thumbnails setObject:image forKey:[url string]]; 
     136
     137 
     138 
     139 
     140- (FHImage *)thumbnailForURL:(ZAURL *)url { 
     141        return [_thumbnails objectForKey:[url string]]; 
    184142} 
    185143