LuxChat  2.0
Instant messenger for iOS
SDWebImageCompat.h
1 /*
2  * This file is part of the SDWebImage package.
3  * (c) Olivier Poitrey <rs@dailymotion.com>
4  * (c) Jamie Pinkham
5  *
6  * For the full copyright and license information, please view the LICENSE
7  * file that was distributed with this source code.
8  */
9 
10 #import <TargetConditionals.h>
11 
12 #ifdef __OBJC_GC__
13 #error SDWebImage does not support Objective-C Garbage Collection
14 #endif
15 
16 #if __IPHONE_OS_VERSION_MIN_REQUIRED != 20000 && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0
17 #error SDWebImage doesn't support Deployement Target version < 5.0
18 #endif
19 
20 #if !TARGET_OS_IPHONE
21 #import <AppKit/AppKit.h>
22 #ifndef UIImage
23 #define UIImage NSImage
24 #endif
25 #ifndef UIImageView
26 #define UIImageView NSImageView
27 #endif
28 #else
29 
30 #import <UIKit/UIKit.h>
31 
32 #endif
33 
34 #ifndef NS_ENUM
35 #define NS_ENUM(_type, _name) enum _name : _type _name; enum _name : _type
36 #endif
37 
38 #ifndef NS_OPTIONS
39 #define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
40 #endif
41 
42 #if OS_OBJECT_USE_OBJC
43  #undef SDDispatchQueueRelease
44  #undef SDDispatchQueueSetterSementics
45  #define SDDispatchQueueRelease(q)
46  #define SDDispatchQueueSetterSementics strong
47 #else
48 #undef SDDispatchQueueRelease
49 #undef SDDispatchQueueSetterSementics
50 #define SDDispatchQueueRelease(q) (dispatch_release(q))
51 #define SDDispatchQueueSetterSementics assign
52 #endif
53 
54 extern UIImage *SDScaledImageForKey(NSString *key, UIImage *image);
55 
56 typedef void(^SDWebImageNoParamsBlock)();
57 
58 extern NSString *const SDWebImageErrorDomain;
59 
60 #define dispatch_main_sync_safe(block)\
61  if ([NSThread isMainThread]) {\
62  block();\
63  } else {\
64  dispatch_sync(dispatch_get_main_queue(), block);\
65  }
66 
67 #define dispatch_main_async_safe(block)\
68  if ([NSThread isMainThread]) {\
69  block();\
70  } else {\
71  dispatch_async(dispatch_get_main_queue(), block);\
72  }