1 | =head1 REGISTRATION INFORMATION |
1 | =head1 REGISTRATION INFORMATION |
2 | |
2 | |
3 | Tag <unassigned> |
3 | Tag 26 |
4 | Data Item array [classname, constructargs...] |
4 | Data Item array [classname, constructargs...] |
5 | Semantics Serialised Perl object with classname and constructor arguments |
5 | Semantics Serialised Perl object with classname and constructor arguments |
6 | Reference http://cbor.schmorp.de/perl-object |
6 | Reference http://cbor.schmorp.de/perl-object |
7 | Contact Marc A. Lehmann <cbor@schmorp.de> |
7 | Contact Marc A. Lehmann <cbor@schmorp.de> |
8 | |
8 | |
… | |
… | |
10 | |
10 | |
11 | The perl-object tag in CBOR can be used to serialise Perl 5 objects into |
11 | The perl-object tag in CBOR can be used to serialise Perl 5 objects into |
12 | CBOR. |
12 | CBOR. |
13 | |
13 | |
14 | The tagged value must be a CBOR array with at least one element. The first |
14 | The tagged value must be a CBOR array with at least one element. The first |
15 | element specifies a classname to use in Perl (it can, but does not need |
15 | element specifies a classname to use in Perl (it can, but does not need to |
16 | to be a string). |
16 | be a string - the stringified form will be used as classname). |
17 | |
17 | |
18 | The encoder and decoder should serialise/deserialise the object using the |
18 | The encoder and decoder should serialise/deserialise the object using the |
19 | Types::Serialiser object serialisation protocol. For this, the object's |
19 | Types::Serialiser object serialisation protocol. For this, the object's |
20 | class must have FREEZE and THAW methods that are called like this: |
20 | class must have FREEZE and THAW methods that are called like this: |
21 | |
21 | |
… | |
… | |
28 | =head1 EXAMPLES |
28 | =head1 EXAMPLES |
29 | |
29 | |
30 | Example of a hypothetical My::DateTime representation using a unix |
30 | Example of a hypothetical My::DateTime representation using a unix |
31 | timestamp: |
31 | timestamp: |
32 | |
32 | |
33 | tag(["My::DateTime", 12345678]) |
33 | 26(["My::DateTime", 12345678]) |
|
|
34 | |
|
|
35 | d8 1a # tag(26) |
|
|
36 | 82 # array(2) |
|
|
37 | 6c # text(12) |
|
|
38 | 4d793a3a4461746554696d65 # "My::DateTime" |
|
|
39 | 1a 00bc614e # unsigned(12345678) |
34 | |
40 | |
35 | Example of the corresponding FREEZE method: |
41 | Example of the corresponding FREEZE method: |
36 | |
42 | |
37 | sub My::DateTime::FREEZE { |
43 | sub My::DateTime::FREEZE { |
38 | my ($self, $model) = @_; |
44 | my ($self, $model) = @_; |