ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/CBOR-XS/XS.pm
(Generate patch)

Comparing CBOR-XS/XS.pm (file contents):
Revision 1.40 by root, Sun Jan 5 14:24:54 2014 UTC vs.
Revision 1.46 by root, Mon Feb 8 04:11:11 2016 UTC

64 64
65package CBOR::XS; 65package CBOR::XS;
66 66
67use common::sense; 67use common::sense;
68 68
69our $VERSION = 1.25; 69our $VERSION = 1.4;
70our @ISA = qw(Exporter); 70our @ISA = qw(Exporter);
71 71
72our @EXPORT = qw(encode_cbor decode_cbor); 72our @EXPORT = qw(encode_cbor decode_cbor);
73 73
74use Exporter; 74use Exporter;
218isn't prepared for this will not leak memory. 218isn't prepared for this will not leak memory.
219 219
220If C<$enable> is false (the default), then C<decode> will throw an error 220If C<$enable> is false (the default), then C<decode> will throw an error
221when it encounters a self-referential/cyclic data structure. 221when it encounters a self-referential/cyclic data structure.
222 222
223FUTURE DIRECTION: the motivation behind this option is to avoid I<real>
224cycles - future versions of this module might chose to decode cyclic data
225structures using weak references when this option is off, instead of
226throwing an error.
227
223This option does not affect C<encode> in any way - shared values and 228This option does not affect C<encode> in any way - shared values and
224references will always be decoded properly if present. 229references will always be encoded properly if present.
225 230
226=item $cbor = $cbor->pack_strings ([$enable]) 231=item $cbor = $cbor->pack_strings ([$enable])
227 232
228=item $enabled = $cbor->get_pack_strings 233=item $enabled = $cbor->get_pack_strings
229 234
809 814
810These tags are automatically created (and decoded) for serialisable 815These tags are automatically created (and decoded) for serialisable
811objects using the C<FREEZE/THAW> methods (the L<Types::Serialier> object 816objects using the C<FREEZE/THAW> methods (the L<Types::Serialier> object
812serialisation protocol). See L<OBJECT SERIALISATION> for details. 817serialisation protocol). See L<OBJECT SERIALISATION> for details.
813 818
814=item 28, 29 (shareable, sharedref, L <http://cbor.schmorp.de/value-sharing>) 819=item 28, 29 (shareable, sharedref, L<http://cbor.schmorp.de/value-sharing>)
815 820
816These tags are automatically decoded when encountered (and they do not 821These tags are automatically decoded when encountered (and they do not
817result in a cyclic data structure, see C<allow_cycles>), resulting in 822result in a cyclic data structure, see C<allow_cycles>), resulting in
818shared values in the decoded object. They are only encoded, however, when 823shared values in the decoded object. They are only encoded, however, when
819C<allow_sharing> is enabled. 824C<allow_sharing> is enabled.
829will be shared, others will not. While non-reference shared values can be 834will be shared, others will not. While non-reference shared values can be
830generated in Perl with some effort, they were considered too unimportant 835generated in Perl with some effort, they were considered too unimportant
831to be supported in the encoder. The decoder, however, will decode these 836to be supported in the encoder. The decoder, however, will decode these
832values as shared values. 837values as shared values.
833 838
834=item 256, 25 (stringref-namespace, stringref, L <http://cbor.schmorp.de/stringref>) 839=item 256, 25 (stringref-namespace, stringref, L<http://cbor.schmorp.de/stringref>)
835 840
836These tags are automatically decoded when encountered. They are only 841These tags are automatically decoded when encountered. They are only
837encoded, however, when C<pack_strings> is enabled. 842encoded, however, when C<pack_strings> is enabled.
838 843
839=item 22098 (indirection, L<http://cbor.schmorp.de/indirection>) 844=item 22098 (indirection, L<http://cbor.schmorp.de/indirection>)
1017 1022
1018 1023
1019=head1 LIMITATIONS ON PERLS WITHOUT 64-BIT INTEGER SUPPORT 1024=head1 LIMITATIONS ON PERLS WITHOUT 64-BIT INTEGER SUPPORT
1020 1025
1021On perls that were built without 64 bit integer support (these are rare 1026On perls that were built without 64 bit integer support (these are rare
1022nowadays, even on 32 bit architectures), support for any kind of 64 bit 1027nowadays, even on 32 bit architectures, as all major Perl distributions
1028are built with 64 bit integer support), support for any kind of 64 bit
1023integer in CBOR is very limited - most likely, these 64 bit values will 1029integer in CBOR is very limited - most likely, these 64 bit values will
1024be truncated, corrupted, or otherwise not decoded correctly. This also 1030be truncated, corrupted, or otherwise not decoded correctly. This also
1025includes string, array and map sizes that are stored as 64 bit integers. 1031includes string, array and map sizes that are stored as 64 bit integers.
1026 1032
1027 1033

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines