With.h
author Jens Alfke <jens@mooseyard.com>
Sun May 03 10:13:31 2009 -0700 (2009-05-03)
changeset 27 256370e8935a
permissions -rw-r--r--
* MYTask: Added -commandLine, overhauled logging.
* MYDirectoryWatcher: Overhauled logging.
* MYErrorUtils: Disabled use of Security API (so it'll build without linking against Security.framework.)
jens@0
     1
//
jens@0
     2
//  With.h
jens@0
     3
//  MYUtilities
jens@0
     4
//
jens@0
     5
//  Copyright 2008 Jens Alfke. All rights reserved.
jens@0
     6
//
jens@0
     7
jens@0
     8
#import <Cocoa/Cocoa.h>
jens@0
     9
jens@0
    10
jens@0
    11
#define WITH(OBJ)       id __with=[OBJ beginWith]; @try
jens@0
    12
jens@0
    13
#define ENDWITH         @finally{[__with endWith];}
jens@0
    14
#define CATCHWITH       @catch(NSException *x){id w=__with; __with=nil; _catchWith(w,x);} @finally{[__with endWith];}
jens@0
    15
jens@0
    16
void _catchWith( id with, NSException *x );
jens@0
    17
jens@0
    18
@interface NSAutoreleasePool (With)
jens@0
    19
+ (NSAutoreleasePool*) beginWith;
jens@0
    20
- (void) endWith;
jens@0
    21
@end