#ifndef SECURITY_SFSQL_OBJCTYPE_H
#define SECURITY_SFSQL_OBJCTYPE_H 1
#if __OBJC2__
#import <Foundation/Foundation.h>
typedef NS_ENUM(NSInteger, SFObjCTypeCode) {
SFObjCTypeChar = 0, SFObjCTypeShort = 1, SFObjCTypeInt = 2, SFObjCTypeLong = 3, SFObjCTypeLongLong = 4, SFObjCTypeUnsignedChar = 5, SFObjCTypeUnsignedShort = 6, SFObjCTypeUnsignedInt = 7, SFObjCTypeUnsignedLong = 8, SFObjCTypeUnsignedLongLong = 9, SFObjCTypeFloat = 10, SFObjCTypeDouble = 11, SFObjCTypeBool = 12, SFObjCTypeVoid = 13, SFObjCTypeCharPointer = 14, SFObjCTypeObject = 15, SFObjCTypeClass = 16, SFObjCTypeSelector = 17, SFObjCTypeArray = 18, SFObjCTypeStructure = 19, SFObjCTypeUnion = 20, SFObjCTypeBitfield = 21, SFObjCTypePointer = 22, SFObjCTypeUnknown = 23, };
typedef NS_ENUM(NSInteger, SFObjCTypeFlag) {
SFObjCTypeFlagIntegerNumber = 0x1,
SFObjCTypeFlagFloatingPointNumber = 0x2,
SFObjCTypeFlagNone = 0x0,
SFObjCTypeFlagNumberMask = 0x3,
};
@interface SFObjCType : NSObject {
SFObjCTypeCode _code;
NSString* _encoding;
NSString* _name;
NSString* _className;
NSUInteger _size;
NSUInteger _flags;
}
+ (SFObjCType *)typeForEncoding:(const char *)encoding;
+ (SFObjCType *)typeForValue:(NSValue *)value;
@property (nonatomic, readonly, assign) SFObjCTypeCode code;
@property (nonatomic, readonly, strong) NSString *encoding;
@property (nonatomic, readonly, strong) NSString *name;
@property (nonatomic, readonly, strong) NSString *className;
@property (nonatomic, readonly, assign) NSUInteger size;
@property (nonatomic, readonly, assign) NSUInteger flags;
@property (nonatomic, readonly, assign, getter=isNumber) BOOL number;
@property (nonatomic, readonly, assign, getter=isIntegerNumber) BOOL integerNumber;
@property (nonatomic, readonly, assign, getter=isFloatingPointNumber) BOOL floatingPointNumber;
@property (nonatomic, readonly, assign, getter=isObject) BOOL object;
- (id)objectWithBytes:(const void *)bytes;
- (void)getBytes:(void *)bytes forObject:(id)object;
@end
#endif
#endif