KWValue.h 2.3 KB

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