Overview
| Comment: | OFDate: Add encoding attribute to serialization |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
0cad64404585c0581c4733a2cbbd52df |
| User & Date: | js on 2022-10-18 10:10:01 |
| Other Links: | manifest | tags |
Context
|
2022-10-18
| ||
| 15:34 | Document more exceptions (check-in: e9708e48e0 user: js tags: trunk) | |
| 10:10 | OFDate: Add encoding attribute to serialization (check-in: 0cad644045 user: js tags: trunk) | |
|
2022-10-17
| ||
| 23:27 | Document more exceptions (check-in: d92d094980 user: js tags: trunk) | |
Changes
Modified src/OFDate.m from [37c8e440d0] to [692871b1cf].
| ︙ | ︙ | |||
29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #import "OFMessagePackExtension.h" #ifdef OF_HAVE_THREADS # import "OFMutex.h" #endif #import "OFStrPTime.h" #import "OFString.h" #import "OFSystemInfo.h" #import "OFXMLElement.h" #import "OFInitializationFailedException.h" #import "OFInvalidArgumentException.h" #import "OFInvalidFormatException.h" #import "OFOutOfMemoryException.h" #import "OFOutOfRangeException.h" | > | 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #import "OFMessagePackExtension.h" #ifdef OF_HAVE_THREADS # import "OFMutex.h" #endif #import "OFStrPTime.h" #import "OFString.h" #import "OFSystemInfo.h" #import "OFXMLAttribute.h" #import "OFXMLElement.h" #import "OFInitializationFailedException.h" #import "OFInvalidArgumentException.h" #import "OFInvalidFormatException.h" #import "OFOutOfMemoryException.h" #import "OFOutOfRangeException.h" |
| ︙ | ︙ | |||
502 503 504 505 506 507 508 509 510 511 512 513 514 515 |
@try {
void *pool = objc_autoreleasePoolPush();
unsigned long long value;
if (![element.name isEqual: @"OFDate"] ||
![element.namespace isEqual: OFSerializationNS])
@throw [OFInvalidArgumentException exception];
value = [element unsignedLongLongValueWithBase: 16];
if (value > UINT64_MAX)
@throw [OFOutOfRangeException exception];
seconds = OFFromBigEndianDouble(OFRawUInt64ToDouble(
| > > > > | 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 |
@try {
void *pool = objc_autoreleasePoolPush();
unsigned long long value;
if (![element.name isEqual: @"OFDate"] ||
![element.namespace isEqual: OFSerializationNS])
@throw [OFInvalidArgumentException exception];
if (![[element attributeForName: @"encoding"].stringValue
isEqual: @"hex"])
@throw [OFInvalidFormatException exception];
value = [element unsignedLongLongValueWithBase: 16];
if (value > UINT64_MAX)
@throw [OFOutOfRangeException exception];
seconds = OFFromBigEndianDouble(OFRawUInt64ToDouble(
|
| ︙ | ︙ | |||
586 587 588 589 590 591 592 593 594 595 596 597 598 599 |
{
void *pool = objc_autoreleasePoolPush();
OFXMLElement *element;
element = [OFXMLElement elementWithName: @"OFDate"
namespace: OFSerializationNS];
element.stringValue = [OFString stringWithFormat: @"%016" PRIx64,
OFFromBigEndian64(OFDoubleToRawUInt64(OFToBigEndianDouble(
self.timeIntervalSince1970)))];
[element retain];
objc_autoreleasePoolPop(pool);
| > | 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 |
{
void *pool = objc_autoreleasePoolPush();
OFXMLElement *element;
element = [OFXMLElement elementWithName: @"OFDate"
namespace: OFSerializationNS];
[element addAttributeWithName: @"encoding" stringValue: @"hex"];
element.stringValue = [OFString stringWithFormat: @"%016" PRIx64,
OFFromBigEndian64(OFDoubleToRawUInt64(OFToBigEndianDouble(
self.timeIntervalSince1970)))];
[element retain];
objc_autoreleasePoolPop(pool);
|
| ︙ | ︙ |
Modified tests/serialization.xml from [f98f3b8fb6] to [ea3d1a36ad].
| ︙ | ︙ | |||
53 54 55 56 57 58 59 |
<key>
<OFArray>
<OFString>Qu"xbar
test</OFString>
<OFNumber type='signed'>1234</OFNumber>
<OFNumber type='float'>40934a456d5cfaad</OFNumber>
<OFMutableString>asd</OFMutableString>
| | | 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
<key>
<OFArray>
<OFString>Qu"xbar
test</OFString>
<OFNumber type='signed'>1234</OFNumber>
<OFNumber type='float'>40934a456d5cfaad</OFNumber>
<OFMutableString>asd</OFMutableString>
<OFDate encoding='hex'>40934a456d5cfaad</OFDate>
</OFArray>
</key>
<object>
<OFString>Hello</OFString>
</object>
</OFMutableDictionary>
</serialization>
|