NSDecimalNumber.inc 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. { Parsed from Foundation.framework NSDecimalNumber.h }
  2. {$ifdef TYPES}
  3. type
  4. NSDecimalNumberPtr = ^NSDecimalNumber;
  5. NSDecimalNumberHandlerPtr = ^NSDecimalNumberHandler;
  6. NSDecimalNumberBehaviorsProtocolPtr = ^NSDecimalNumberBehaviorsProtocol;
  7. {$endif}
  8. {$ifdef EXTERNAL_SYMBOLS}
  9. var
  10. NSDecimalNumberExactnessException: NSString; cvar; external;
  11. NSDecimalNumberOverflowException: NSString; cvar; external;
  12. NSDecimalNumberUnderflowException: NSString; cvar; external;
  13. NSDecimalNumberDivideByZeroException: NSString; cvar; external;
  14. {$endif}
  15. {$ifdef PROTOCOLS}
  16. type
  17. NSDecimalNumberBehaviorsProtocol = objcprotocol external name 'NSDecimalNumberBehaviors'
  18. function roundingMode: NSRoundingMode; message 'roundingMode';
  19. function scale: cshort; message 'scale';
  20. function exceptionDuringOperation_error_leftOperand_rightOperand (operation: SEL; error: NSCalculationError; leftOperand: NSDecimalNumber; rightOperand: NSDecimalNumber): NSDecimalNumber; message 'exceptionDuringOperation:error:leftOperand:rightOperand:';
  21. end;
  22. {$endif}
  23. {$ifdef CLASSES}
  24. type
  25. NSDecimalNumber = objcclass external (NSNumber)
  26. private
  27. _anonStruct_NSDecimalNumber0: record
  28. case byte of
  29. 0: (anonBitField_NSDecimalNumber0: cuint);
  30. 1: (data: bitpacked record
  31. _exponent: 0..((1 shl 8)-1);
  32. _length: 0..((1 shl 4)-1);
  33. _isNegative: 0..1;
  34. _isCompact: 0..1;
  35. _reserved: 0..1;
  36. _hasExternalRefCount: 0..1;
  37. _refs: 0..((1 shl 16)-1);
  38. end;
  39. );
  40. end;
  41. _mantissa:array[0..0] of cushort;
  42. public
  43. function initWithMantissa_exponent_isNegative (mantissa: culonglong; exponent: cshort; flag: ObjCBOOL): instancetype; message 'initWithMantissa:exponent:isNegative:';
  44. function initWithDecimal (dcm: NSDecimal): instancetype; message 'initWithDecimal:'; { NS_DESIGNATED_INITIALIZER }
  45. function initWithString (numberValue: NSString): instancetype; message 'initWithString:';
  46. function initWithString_locale (numberValue: NSString; locale: id): instancetype; message 'initWithString:locale:';
  47. function descriptionWithLocale (locale: id): NSString; message 'descriptionWithLocale:';
  48. function decimalValue: NSDecimal; message 'decimalValue';
  49. class function decimalNumberWithMantissa_exponent_isNegative (mantissa: culonglong; exponent: cshort; flag: ObjCBOOL): NSDecimalNumber; message 'decimalNumberWithMantissa:exponent:isNegative:';
  50. class function decimalNumberWithDecimal (dcm: NSDecimal): NSDecimalNumber; message 'decimalNumberWithDecimal:';
  51. class function decimalNumberWithString (numberValue: NSString): NSDecimalNumber; message 'decimalNumberWithString:';
  52. class function decimalNumberWithString_locale (numberValue: NSString; locale: id): NSDecimalNumber; message 'decimalNumberWithString:locale:';
  53. class function zero: NSDecimalNumber; message 'zero';
  54. class function one: NSDecimalNumber; message 'one';
  55. class function minimumDecimalNumber: NSDecimalNumber; message 'minimumDecimalNumber';
  56. class function maximumDecimalNumber: NSDecimalNumber; message 'maximumDecimalNumber';
  57. class function notANumber: NSDecimalNumber; message 'notANumber';
  58. function decimalNumberByAdding (decimalNumber: NSDecimalNumber): NSDecimalNumber; message 'decimalNumberByAdding:';
  59. function decimalNumberByAdding_withBehavior (decimalNumber: NSDecimalNumber; behavior: NSDecimalNumberBehaviorsProtocol): NSDecimalNumber; message 'decimalNumberByAdding:withBehavior:';
  60. function decimalNumberBySubtracting (decimalNumber: NSDecimalNumber): NSDecimalNumber; message 'decimalNumberBySubtracting:';
  61. function decimalNumberBySubtracting_withBehavior (decimalNumber: NSDecimalNumber; behavior: NSDecimalNumberBehaviorsProtocol): NSDecimalNumber; message 'decimalNumberBySubtracting:withBehavior:';
  62. function decimalNumberByMultiplyingBy (decimalNumber: NSDecimalNumber): NSDecimalNumber; message 'decimalNumberByMultiplyingBy:';
  63. function decimalNumberByMultiplyingBy_withBehavior (decimalNumber: NSDecimalNumber; behavior: NSDecimalNumberBehaviorsProtocol): NSDecimalNumber; message 'decimalNumberByMultiplyingBy:withBehavior:';
  64. function decimalNumberByDividingBy (decimalNumber: NSDecimalNumber): NSDecimalNumber; message 'decimalNumberByDividingBy:';
  65. function decimalNumberByDividingBy_withBehavior (decimalNumber: NSDecimalNumber; behavior: NSDecimalNumberBehaviorsProtocol): NSDecimalNumber; message 'decimalNumberByDividingBy:withBehavior:';
  66. function decimalNumberByRaisingToPower (power: NSUInteger): NSDecimalNumber; message 'decimalNumberByRaisingToPower:';
  67. function decimalNumberByRaisingToPower_withBehavior (power: NSUInteger; behavior: NSDecimalNumberBehaviorsProtocol): NSDecimalNumber; message 'decimalNumberByRaisingToPower:withBehavior:';
  68. function decimalNumberByMultiplyingByPowerOf10 (power: cshort): NSDecimalNumber; message 'decimalNumberByMultiplyingByPowerOf10:';
  69. function decimalNumberByMultiplyingByPowerOf10_withBehavior (power: cshort; behavior: NSDecimalNumberBehaviorsProtocol): NSDecimalNumber; message 'decimalNumberByMultiplyingByPowerOf10:withBehavior:';
  70. function decimalNumberByRoundingAccordingToBehavior (behavior: NSDecimalNumberBehaviorsProtocol): NSDecimalNumber; message 'decimalNumberByRoundingAccordingToBehavior:';
  71. function compare (decimalNumber: NSNumber): NSComparisonResult; message 'compare:';
  72. class procedure setDefaultBehavior (behavior: NSDecimalNumberBehaviorsProtocol); message 'setDefaultBehavior:';
  73. class function defaultBehavior: NSDecimalNumberBehaviorsProtocol; message 'defaultBehavior';
  74. function objCType: PChar; message 'objCType';
  75. function doubleValue: double; message 'doubleValue';
  76. end;
  77. type
  78. NSDecimalNumberHandler = objcclass external (NSObject, NSDecimalNumberBehaviorsProtocol, NSCodingProtocol)
  79. private
  80. _anonStruct_NSDecimalNumber0: record
  81. case byte of
  82. 0: (anonBitField_NSDecimalNumber0: cuint);
  83. 1: (data: bitpacked record
  84. _scale: 0..((1 shl 16)-1);
  85. _roundingMode: 0..((1 shl 3)-1);
  86. _raiseOnExactness: 0..1;
  87. _raiseOnOverflow: 0..1;
  88. _raiseOnUnderflow: 0..1;
  89. _raiseOnDivideByZero: 0..1;
  90. _unused: 0..((1 shl 9)-1);
  91. end;
  92. );
  93. end;
  94. _reserved2: pointer;
  95. _reserved: pointer;
  96. public
  97. class function defaultDecimalNumberHandler: NSDecimalNumberHandler; message 'defaultDecimalNumberHandler';
  98. function initWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero (roundingMode: NSRoundingMode; scale: cshort; exact: ObjCBOOL; overflow: ObjCBOOL; underflow: ObjCBOOL; divideByZero: ObjCBOOL): instancetype; message 'initWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:'; { NS_DESIGNATED_INITIALIZER }
  99. class function decimalNumberHandlerWithRoundingMode_scale_raiseOnExactness_raiseOnOverflow_raiseOnUnderflow_raiseOnDivideByZero (roundingMode: NSRoundingMode; scale: cshort; exact: ObjCBOOL; overflow: ObjCBOOL; underflow: ObjCBOOL; divideByZero: ObjCBOOL): instancetype; message 'decimalNumberHandlerWithRoundingMode:scale:raiseOnExactness:raiseOnOverflow:raiseOnUnderflow:raiseOnDivideByZero:';
  100. { Adopted protocols }
  101. procedure encodeWithCoder (aCoder: NSCoder); message 'encodeWithCoder:';
  102. function exceptionDuringOperation_error_leftOperand_rightOperand (operation: SEL; error: NSCalculationError; leftOperand: NSDecimalNumber; rightOperand: NSDecimalNumber): NSDecimalNumber; message 'exceptionDuringOperation:error:leftOperand:rightOperand:';
  103. function initWithCoder (aDecoder: NSCoder): id; message 'initWithCoder:';
  104. function roundingMode: NSRoundingMode; message 'roundingMode';
  105. function scale: cshort; message 'scale';
  106. end;
  107. type
  108. NSDecimalNumberExtensions = objccategory external (NSNumber)
  109. function decimalValue: NSDecimal; message 'decimalValue';
  110. end;
  111. type
  112. NSDecimalNumberScanning = objccategory external (NSScanner)
  113. function scanDecimal (dcm: NSDecimalPtr): ObjCBOOL; message 'scanDecimal:';
  114. end;
  115. {$endif}