main
 1//
 2// Licensed under the terms in License.txt
 3//
 4// Copyright 2010 Allen Ding. All rights reserved.
 5//
 6
 7#import "KiwiConfiguration.h"
 8
 9@interface KWValue : NSObject {
10@private
11    const char *objCType;
12    id value;
13}
14
15#pragma mark -
16#pragma mark Initializing
17
18- (id)initWithBytes:(const void *)bytes objCType:(const char *)anObjCType;
19
20+ (id)valueWithBytes:(const void *)bytes objCType:(const char *)anObjCType;
21+ (id)valueWithBool:(BOOL)aValue;
22+ (id)valueWithChar:(char)aValue;
23+ (id)valueWithDouble:(double)aValue;
24+ (id)valueWithFloat:(float)aValue;
25+ (id)valueWithInt:(int)aValue;
26+ (id)valueWithInteger:(NSInteger)aValue;
27+ (id)valueWithLong:(long)aValue;
28+ (id)valueWithLongLong:(long long)value;
29+ (id)valueWithShort:(short)aValue;
30+ (id)valueWithUnsignedChar:(unsigned char)aValue;
31+ (id)valueWithUnsignedInt:(unsigned int)aValue;
32+ (id)valueWithUnsignedInteger:(NSUInteger)aValue;
33+ (id)valueWithUnsignedLong:(unsigned long)aValue;
34+ (id)valueWithUnsignedLongLong:(unsigned long long)aValue;
35+ (id)valueWithUnsignedShort:(unsigned short)aValue;
36
37#pragma mark -
38#pragma mark Properties
39
40@property (nonatomic, readonly) const char *objCType;
41@property (nonatomic, readonly) BOOL isNumeric;
42
43#pragma mark -
44#pragma mark Accessing Numeric Values
45
46- (NSNumber *)numberValue;
47- (BOOL)boolValue;
48- (char)charValue;
49- (double)doubleValue;
50- (float)floatValue;
51- (int)intValue;
52- (NSInteger)integerValue;
53- (long)longValue;
54- (long long)longLongValue;
55- (short)shortValue;
56- (unsigned char)unsignedCharValue;
57- (unsigned int)unsignedIntValue;
58- (NSUInteger)unsignedIntegerValue;
59- (unsigned long)unsignedLongValue;
60- (unsigned long long)unsignedLongLongValue;
61- (unsigned short)unsignedShortValue;
62
63#pragma mark -
64#pragma mark Accessing Data
65
66- (NSData *)dataValue;
67- (void)getValue:(void *)buffer;
68
69#pragma mark -
70#pragma mark Accessing Numeric Data
71
72- (NSData *)dataForObjCType:(const char *)anObjCType;
73- (NSData *)boolData;
74- (NSData *)charData;
75- (NSData *)doubleData;
76- (NSData *)floatData;
77- (NSData *)intData;
78- (NSData *)integerData;
79- (NSData *)longData;
80- (NSData *)longLongData;
81- (NSData *)shortData;
82- (NSData *)unsignedCharData;
83- (NSData *)unsignedIntData;
84- (NSData *)unsignedIntegerData;
85- (NSData *)unsignedLongData;
86- (NSData *)unsignedLongLongData;
87- (NSData *)unsignedShortData;
88
89#pragma mark -
90#pragma mark Comparing Values
91
92- (NSComparisonResult)compare:(KWValue *)aValue;
93
94- (BOOL)isEqualToKWValue:(KWValue *)aValue;
95- (BOOL)isEqualToNumber:(NSNumber *)aValue;
96
97@end