40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
OF_NUMBER_UCHAR = 0x02,
/*! unsigned short */
OF_NUMBER_USHORT = 0x03,
/*! unsigned int */
OF_NUMBER_UINT = 0x04,
/*! unsigned long */
OF_NUMBER_ULONG = 0x05,
/*! unsigned long long */
OF_NUMBER_ULONGLONG = 0x06,
/*! size_t */
OF_NUMBER_SIZE = 0x06,
OF_NUMBER_SIZE = 0x07,
/*! uint8_t */
OF_NUMBER_UINT8 = 0x07,
OF_NUMBER_UINT8 = 0x08,
/*! uint16_t */
OF_NUMBER_UINT16 = 0x08,
OF_NUMBER_UINT16 = 0x09,
/*! uint32_t */
OF_NUMBER_UINT32 = 0x09,
OF_NUMBER_UINT32 = 0x0A,
/*! uint64_t */
OF_NUMBER_UINT64 = 0x0A,
OF_NUMBER_UINT64 = 0x0B,
/*! uintptr_t */
OF_NUMBER_UINTPTR = 0x0B,
OF_NUMBER_UINTPTR = 0x0C,
/*! uintmax_t */
OF_NUMBER_UINTMAX = 0x0C,
OF_NUMBER_UINTMAX = 0x0D,
OF_NUMBER_SIGNED = 0x10,
/*! signed char */
OF_NUMBER_CHAR = OF_NUMBER_UCHAR | OF_NUMBER_SIGNED,
/*! signed short */
OF_NUMBER_SHORT = OF_NUMBER_USHORT | OF_NUMBER_SIGNED,
/*! signed int */
OF_NUMBER_INT = OF_NUMBER_UINT | OF_NUMBER_SIGNED,
/*! signed long */
OF_NUMBER_LONG = OF_NUMBER_ULONG | OF_NUMBER_SIGNED,
/*! signed long long */
OF_NUMBER_LONGLONG = OF_NUMBER_ULONGLONG | OF_NUMBER_SIGNED,
/*! int8_t */
OF_NUMBER_INT8 = OF_NUMBER_UINT8 | OF_NUMBER_SIGNED,
/*! int16_t */
OF_NUMBER_INT16 = OF_NUMBER_UINT16 | OF_NUMBER_SIGNED,
/*! int32_t */
OF_NUMBER_INT32 = OF_NUMBER_UINT32 | OF_NUMBER_SIGNED,
/*! int64_t */
OF_NUMBER_INT64 = OF_NUMBER_UINT64 | OF_NUMBER_SIGNED,
/*! ssize_t */
OF_NUMBER_SSIZE = OF_NUMBER_SIZE | OF_NUMBER_SIGNED,
/*! intmax_t */
OF_NUMBER_INTMAX = OF_NUMBER_UINTMAX | OF_NUMBER_SIGNED,
/*! ptrdiff_t */
OF_NUMBER_PTRDIFF = 0x0D | OF_NUMBER_SIGNED,
OF_NUMBER_PTRDIFF = 0x0E | OF_NUMBER_SIGNED,
/*! intptr_t */
OF_NUMBER_INTPTR = 0x0E | OF_NUMBER_SIGNED,
OF_NUMBER_INTPTR = 0x0F | OF_NUMBER_SIGNED,
/*! float */
OF_NUMBER_FLOAT = 0x20,
/*! double */
OF_NUMBER_DOUBLE = 0x40 | OF_NUMBER_FLOAT,
} of_number_type_t;
/*!
* @brief Provides a way to store a number in an object.
*/
@interface OFNumber: OFObject <OFCopying, OFComparing, OFSerialization,
OFJSONRepresentation, OFBinaryPackRepresentation>
{
union of_number_value {
BOOL bool_;
signed char schar;
signed short sshort;
signed int sint;
signed long slong;
unsigned char uchar;
unsigned short ushort;
unsigned int uint;
unsigned long ulong;
int8_t int8;
int16_t int16;
int32_t int32;
int64_t int64;
uint8_t uint8;
uint16_t uint16;
uint32_t uint32;
uint64_t uint64;
size_t size;
ssize_t ssize;
intmax_t intmax;
uintmax_t uintmax;
ptrdiff_t ptrdiff;
intptr_t intptr;
uintptr_t uintptr;
float float_;
double double_;
BOOL bool_;
signed char schar;
signed short sshort;
signed int sint;
signed long slong;
signed long long slonglong;
unsigned char uchar;
unsigned short ushort;
unsigned int uint;
unsigned long ulong;
unsigned long long ulonglong;
int8_t int8;
int16_t int16;
int32_t int32;
int64_t int64;
uint8_t uint8;
uint16_t uint16;
uint32_t uint32;
uint64_t uint64;
size_t size;
ssize_t ssize;
intmax_t intmax;
uintmax_t uintmax;
ptrdiff_t ptrdiff;
intptr_t intptr;
uintptr_t uintptr;
float float_;
double double_;
} _value;
of_number_type_t _type;
}
#ifdef OF_HAVE_PROPERTIES
@property (readonly) of_number_type_t type;
#endif
|
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
|
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
|
-
+
-
+
-
+
+
+
+
+
+
+
+
|
* @return The OFNumber as a signed char
*/
- (signed char)charValue;
/*!
* @brief Returns the OFNumber as a signed short.
*
* @return The OFNumber as a short
* @return The OFNumber as a signed short
*/
- (signed short)shortValue;
/*!
* @brief Returns the OFNumber as a signed int.
*
* @return The OFNumber as an int
* @return The OFNumber as a signed int
*/
- (signed int)intValue;
/*!
* @brief Returns the OFNumber as a signed long.
*
* @return The OFNumber as a long
* @return The OFNumber as a signed long
*/
- (signed long)longValue;
/*!
* @brief Returns the OFNumber as a signed long long.
*
* @return The OFNumber as a signed long long
*/
- (signed long long)longLongValue;
/*!
* @brief Returns the OFNumber as an unsigned char.
*
* @return The OFNumber as an unsigned char
*/
- (unsigned char)unsignedCharValue;
|