17 #ifndef __STDC_LIMIT_MACROS 18 # define __STDC_LIMIT_MACROS 20 #ifndef __STDC_CONSTANT_MACROS 21 # define __STDC_CONSTANT_MACROS 24 #include "objfw-defs.h" 26 #ifdef OF_HAVE_SYS_TYPES_H 27 # include <sys/types.h> 31 #import "OFSerialization.h" 32 #import "OFJSONRepresentation.h" 33 #import "OFMessagePackRepresentation.h" 35 OF_ASSUME_NONNULL_BEGIN
69 OF_NUMBER_TYPE_SIGNED = 0x10,
72 OF_NUMBER_TYPE_SIGNED,
75 OF_NUMBER_TYPE_SIGNED,
78 OF_NUMBER_TYPE_SIGNED,
81 OF_NUMBER_TYPE_SIGNED,
84 OF_NUMBER_TYPE_SIGNED,
87 OF_NUMBER_TYPE_SIGNED,
90 OF_NUMBER_TYPE_SIGNED,
93 OF_NUMBER_TYPE_SIGNED,
96 OF_NUMBER_TYPE_SIGNED,
99 OF_NUMBER_TYPE_SIGNED,
102 OF_NUMBER_TYPE_SIGNED,
121 union of_number_value {
127 signed long long sLongLong;
129 unsigned short uShort;
132 unsigned long long uLongLong;
165 + (instancetype)numberWithBool: (
bool)bool_;
173 + (instancetype)numberWithChar: (
signed char)schar;
181 + (instancetype)numberWithShort: (
signed short)sshort;
189 + (instancetype)numberWithInt: (
signed int)sint;
197 + (instancetype)numberWithLong: (
signed long)slong;
205 + (instancetype)numberWithLongLong: (
signed long long)slonglong;
213 + (instancetype)numberWithUnsignedChar: (
unsigned char)uchar;
221 + (instancetype)numberWithUnsignedShort: (
unsigned short)ushort;
229 + (instancetype)numberWithUnsignedInt: (
unsigned int)uint;
237 + (instancetype)numberWithUnsignedLong: (
unsigned long)ulong;
245 + (instancetype)numberWithUnsignedLongLong: (
unsigned long long)ulonglong;
253 + (instancetype)numberWithInt8: (int8_t)int8;
261 + (instancetype)numberWithInt16: (int16_t)int16;
269 + (instancetype)numberWithInt32: (int32_t)int32;
277 + (instancetype)numberWithInt64: (int64_t)int64;
285 + (instancetype)numberWithUInt8: (uint8_t)uint8;
293 + (instancetype)numberWithUInt16: (uint16_t)uint16;
301 + (instancetype)numberWithUInt32: (uint32_t)uint32;
309 + (instancetype)numberWithUInt64: (uint64_t)uint64;
317 + (instancetype)numberWithSize: (
size_t)size;
325 + (instancetype)numberWithSSize: (ssize_t)ssize;
333 + (instancetype)numberWithIntMax: (intmax_t)intmax;
341 + (instancetype)numberWithUIntMax: (uintmax_t)uintmax;
349 + (instancetype)numberWithPtrDiff: (ptrdiff_t)ptrdiff;
357 + (instancetype)numberWithIntPtr: (intptr_t)intptr;
365 + (instancetype)numberWithUIntPtr: (uintptr_t)uintptr;
373 + (instancetype)numberWithFloat: (
float)float_;
381 + (instancetype)numberWithDouble: (
double)double_;
383 -
init OF_UNAVAILABLE;
391 - initWithBool: (
bool)bool_;
400 - initWithChar: (
signed char)schar;
409 - initWithShort: (
signed short)sshort;
418 - initWithInt: (
signed int)sint;
427 - initWithLong: (
signed long)slong;
436 - initWithLongLong: (
signed long long)slonglong;
445 - initWithUnsignedChar: (
unsigned char)uchar;
454 - initWithUnsignedShort: (
unsigned short)ushort;
463 - initWithUnsignedInt: (
unsigned int)uint;
472 - initWithUnsignedLong: (
unsigned long)ulong;
481 - initWithUnsignedLongLong: (
unsigned long long)ulonglong;
489 - initWithInt8: (int8_t)int8;
497 - initWithInt16: (int16_t)int16;
505 - initWithInt32: (int32_t)int32;
513 - initWithInt64: (int64_t)int64;
521 - initWithUInt8: (uint8_t)uint8;
529 - initWithUInt16: (uint16_t)uint16;
537 - initWithUInt32: (uint32_t)uint32;
545 - initWithUInt64: (uint64_t)uint64;
553 - initWithSize: (
size_t)size;
561 - initWithSSize: (ssize_t)ssize;
569 - initWithIntMax: (intmax_t)intmax;
578 - initWithUIntMax: (uintmax_t)uintmax;
587 - initWithPtrDiff: (ptrdiff_t)ptrdiff;
595 - initWithIntPtr: (intptr_t)intptr;
604 - initWithUIntPtr: (uintptr_t)uintptr;
612 - initWithFloat: (
float)float_;
620 - initWithDouble: (
double)double_;
819 OF_ASSUME_NONNULL_END
821 #if !defined(NSINTEGER_DEFINED) && !__has_feature(modules) 823 @compatibility_alias NSNumber
OFNumber;
Definition: OFNumber.h:92
of_number_type_t
The C type of a number stored in an OFNumber.
Definition: OFNumber.h:42
signed char charValue()
Returns the OFNumber as a signed char.
Definition: OFNumber.m:599
Definition: OFNumber.h:104
Definition: OFNumber.h:80
unsigned char unsignedCharValue()
Returns the OFNumber as an unsigned char.
Definition: OFNumber.m:624
Definition: OFNumber.h:68
Definition: OFNumber.h:48
ptrdiff_t ptrDiffValue()
Returns the OFNumber as a ptrdiff_t.
Definition: OFNumber.m:709
uintmax_t uIntMaxValue()
Returns the OFNumber as a uintmax_t.
Definition: OFNumber.m:704
signed long long longLongValue()
Returns the OFNumber as a signed long long.
Definition: OFNumber.m:619
Definition: OFNumber.h:62
Definition: OFNumber.h:77
Definition: OFNumber.h:58
Definition: OFNumber.h:50
uint32_t uInt32Value()
Returns the OFNumber as a uint32_t.
Definition: OFNumber.m:679
float floatValue()
Returns the OFNumber as a float.
Definition: OFNumber.m:724
Definition: OFNumber.h:54
intptr_t intPtrValue()
Returns the OFNumber as an intptr_t.
Definition: OFNumber.m:714
uint8_t uInt8Value()
Returns the OFNumber as a uint8_t.
Definition: OFNumber.m:669
A protocol implemented by classes that support encoding to a JSON representation. ...
Definition: OFJSONRepresentation.h:38
Definition: OFNumber.h:52
signed int intValue()
Returns the OFNumber as a signed int.
Definition: OFNumber.m:609
of_number_type_t type
Definition: OFNumber.h:158
Definition: OFNumber.h:101
Definition: OFNumber.h:44
id init()
Initializes an already allocated object.
Definition: OFObject.m:488
Definition: OFNumber.h:86
unsigned long long unsignedLongLongValue()
Returns the OFNumber as an unsigned long long.
Definition: OFNumber.m:644
A protocol implemented by classes that support encoding to a MessagePack representation.
Definition: OFMessagePackRepresentation.h:30
unsigned int unsignedIntValue()
Returns the OFNumber as an unsigned int.
Definition: OFNumber.m:634
int16_t int16Value()
Returns the OFNumber as an int16_t.
Definition: OFNumber.m:654
int8_t int8Value()
Returns the OFNumber as an int8_t.
Definition: OFNumber.m:649
Provides a way to store a number in an object.
Definition: OFNumber.h:118
Definition: OFNumber.h:71
double doubleValue()
Returns the OFNumber as a double.
Definition: OFNumber.m:729
A protocol for the creation of copies.
Definition: OFObject.h:914
intmax_t intMaxValue()
Returns the OFNumber as an intmax_t.
Definition: OFNumber.m:699
int64_t int64Value()
Returns the OFNumber as an int64_t.
Definition: OFNumber.m:664
Definition: OFNumber.h:110
uintptr_t uIntPtrValue()
Returns the OFNumber as a uintptr_t.
Definition: OFNumber.m:719
Definition: OFNumber.h:64
A protocol for comparing objects.
unsigned long unsignedLongValue()
Returns the OFNumber as an unsigned long.
Definition: OFNumber.m:639
Definition: OFNumber.h:66
The root class for all other classes inside ObjFW.
Definition: OFObject.h:379
signed short shortValue()
Returns the OFNumber as a signed short.
Definition: OFNumber.m:604
Definition: OFNumber.h:83
Definition: OFNumber.h:106
uint16_t uInt16Value()
Returns the OFNumber as a uint16_t.
Definition: OFNumber.m:674
Definition: OFNumber.h:108
A protocol for serializing objects.
Definition: OFSerialization.h:30
Definition: OFNumber.h:60
signed long longValue()
Returns the OFNumber as a signed long.
Definition: OFNumber.m:614
Definition: OFNumber.h:46
size_t sizeValue()
Returns the OFNumber as a size_t.
Definition: OFNumber.m:689
int32_t int32Value()
Returns the OFNumber as an int32_t.
Definition: OFNumber.m:659
Definition: OFNumber.h:56
unsigned short unsignedShortValue()
Returns the OFNumber as an unsigned short.
Definition: OFNumber.m:629
Definition: OFNumber.h:74
uint64_t uInt64Value()
Returns the OFNumber as a uint64_t.
Definition: OFNumber.m:684
Definition: OFNumber.h:89
Definition: OFNumber.h:98
Definition: OFNumber.h:95
ssize_t sSizeValue()
Returns the OFNumber as an ssize_t.
Definition: OFNumber.m:694
bool boolValue()
Returns the OFNumber as a bool.
Definition: OFNumber.m:594