Build.PL100644001750001750 303214212656165 16034 0ustar00syoheisyohei000000000000Data-MessagePack-1.02# ========================================================================= # THIS FILE IS AUTOMATICALLY GENERATED BY MINILLA. # DO NOT EDIT DIRECTLY. # ========================================================================= use 5.008_001; use strict; use warnings; use utf8; BEGIN { push @INC, '.' } use builder::MyBuilder; use File::Basename; use File::Spec; my %args = ( license => 'perl_5', dynamic_config => 0, configure_requires => { 'Module::Build' => '0.4005', }, requires => { 'Math::BigInt' => '1.89', 'perl' => '5.008001', }, recommends => { }, suggests => { }, build_requires => { }, test_requires => { 'Test::More' => '0.98', 'Test::Requires' => '0', }, name => 'Data-MessagePack', module_name => 'Data::MessagePack', allow_pureperl => 1, script_files => [glob('script/*'), glob('bin/*')], PL_files => {}, test_files => ((-d '.git' || $ENV{RELEASE_TESTING}) && -d 'xt') ? 't/ xt/' : 't/', recursive_test_files => 1, ); if (-d 'share') { $args{share_dir} = 'share'; } my $builder = builder::MyBuilder->subclass( class => 'MyBuilder', code => q{ sub ACTION_distmeta { die "Do not run distmeta. Install Minilla and `minil install` instead.\n"; } sub ACTION_installdeps { die "Do not run installdeps. Run `cpanm --installdeps .` instead.\n"; } } )->new(%args); $builder->create_build_script(); Changes100644001750001750 1277714212656165 16073 0ustar00syoheisyohei000000000000Data-MessagePack-1.02Revision history for Perl extension Data-MessagePack 1.02 2022-03-11T14:27:47Z - Fix test for usequadmath Perl 1.01 2020-03-17T17:06:53Z - Switch to Minilla from Module::Install - Fix test for newer Windows Perl 1.00 2016-08-21 15:30:00+0900 - Update major version for MessagePack versioning rule - Support Bin/Str type again 0.51 2016-08-21 15:20:00+0900 - Revert supporting Bin/Str type changes for MessagePack versioning rule 0.50 2016-06-15 12:09:00+0900 - No feature changes. Official release for supporting Bin/Str format 0.49_01 2016-03-01 14:40:00+0900 - Support Bin/Str type of newer MessegePack specification 0.49 2015-11-21 20:07:30+0900 - Fix undefined behavior issue of overflow(#23, #24, Thanks kazuho) 0.48 2013-09-01 15:42:51+0900 - Fix tests for bleadperl 0.47 - Support PUREPERL_ONLY build See the Lancaster Consensus: https://github.com/sjn/toolchain-site/blob/219db464af9b2f19b04fec05547ac10180a469f3/lancaster-consensus.md#specifying-pure-perl-builds 0.46 - fixed unpacking issue on big-endian system. https://github.com/msgpack/msgpack-perl/issues/4 0.45 - support tied hashes(rurban++) 0.44 - do not display deprecated warnings from Data::MessagePack::Unpacker. T::Xslate using it... 0.43 2012-06-26T02:00:57 - Data::MessagePack::Unpacker was deprecated. 0.42 2012-06-25 09:56:58 - fix failing to pack IV/NV with MAGIC (e.g. $$ in 5.16.0) 0.41 2012-03-28 01:09:44 - Revert the privous changed utf8() behavior 0.40 2012-03-28 00:37:28 - Fix $messagepack->utf8(1) behavior - Fix tests on NV == long double env 0.39 2011-12-05 00:08:58 - Resolve RT #72920 - packing float numbers fails on some cases, e.g. after e.g. $flaot > 0 0.38_02 2011-10-25 09:58:28 - More informative tests 0.38_01 2011-10-25 09:44:05 - Add tests to reveal problems in Data::Encoder 0.38 2011-10-10 16:17:03 - Add tests to unpacking double - the test was missing! 0.37 2011-10-10 16:08:18 - Resolve RT #71407: broken pack()/pack() for double on arm-oabi arch (the patch contributed by @shohex) 0.36 2011-08-21 14:41:51 - Fix a PP issue incompatible with XS impl - Fix docs 0.35_01 2011-08-19 15:27:00 - address issue/20 (cho45): Data::MessagePack did not finish correctly when was given devided packed data - address pull-req/82 (cho45): canonical mode like JSON.pm - added JSON.pm-compat interface - added utf8 mode to apply utf8::decode() when unpacking - deprecated $PreferInteger; use D::MP->new->prefer_integer - repository is now https://github.com/msgpack/msgpack-perl 0.34 - do not use the corrupt my_snprintf(%ll[du]) on win32(kazuho) 0.33 - fix tests (gfx) - optimize unpacking routines in Data::MessagePack::PP (gfx) 0.32 - add tests to detect Alpha problems reported via CPAN testers (gfx) 0.31 - update Module::Install::XSUtil for ccache support (gfx) - add version check at bootstrap in order to avoid load old .so (gfx) 0.30 - fix utf8 mode not to be reseted by $unpacker->reset method (gfx) 0.29 - add $unpacker->utf8 mode, decoding strings as UTF-8 (gfx) 0.28 - added more tests(gfx) - refactor the PP code(gfx) 0.27 - * 6d9a629 perl: modified trivial codes in PP::Unpacker(makamaka) - * ead8edc modified be unpack_(u)int64 in PP(makamaka) 0.26 - fixed a serious code typo in PP(makamaka) 0.25 (NO FEATURE CHANGES) - oops. I failed releng. 0.24 - Fixed a lot of streaming unpacking issues (tokuhirom, gfx) - Fixed unpacking issues for 64 bit integers on 32 bit perls (gfx) - Improved performance, esp. in unpacking (gfx) 0.23 (NO FEATURE CHANGES) - fixed english docs(hanekomu++) 0.22 - fixed issue on ithreads(broken from 0.21) 0.21 - doc enhancments - micro performance tuning. 0.20 - first production ready release with PP driver. 0.16_04 - no feature changes 0.16_02 - document enhancement(tokuhirom) - M::I::XSUtil 0.26 is broken. use 0.27. 0.16_01 - added PP version (used in cases PERL_DATA_MESSAGEPACK=pp or fail to load XS). - made Makefile.PL PP configurable. - test_pp in author's test - modified t/05_preferred_int.t for Win32 (makamaka) 0.16 - tests on 64bit machines with -Duselongdouble (reported by andk) 0.15 - better argument validation. (Dan Kogai) 0.14 - fixed segv on serializing cyclic reference (Dan Kogai) 0.13 - clearly specify requires_c99(), because msgpack C header requires C99. 0.12 - PERL_NO_GET_CONTEXT makes horrible dTHXs. remove it. 0.11 - oops(no feature changes) 0.10 - added more test cases. - fixed portability issue - (reviewed by gfx++) 0.09_01 - fixed memory leak issue(reported by Maxime Soulé) 0.09 - support NVTYPE=="long double" or IVTYPE=="long long" environment (thanks to Jun Kuriyama++) 0.08 - fixed PVNV issue... 0.07 - do not use switch (SvTYPE(val)). 0.06 - use SvNOK. 0.05 - change type detection for old perl 0.04 - check SvROK first(reported by yappo++) - PreferInteger: faster string to integer conversion; support negative value (frsyuki++) - make PreferInteger variable magical and remove get_sv from _msgpack_pack_sv (frsyuki++) 0.03 - performance tuning for too long string - fixed memory leaks in stream unpacker 0.02 - added $Data::MessagePack::PreferInteger (requested by yappo++) 0.01 - initial release to CPAN LICENSE100644001750001750 4372214212656165 15577 0ustar00syoheisyohei000000000000Data-MessagePack-1.02This software is copyright (c) 2015- by Tokuhiro Matsuno. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. Terms of the Perl programming language system itself a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- This software is Copyright (c) 2015- by Nikolay Mishin < mi@ya.ru >. This is free software, licensed under: The GNU General Public License, Version 1, February 1989 GNU GENERAL PUBLIC LICENSE Version 1, February 1989 Copyright (C) 1989 Free Software Foundation, Inc. 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The license agreements of most software companies try to keep users at the mercy of those companies. By contrast, our General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. The General Public License applies to the Free Software Foundation's software and to any other program whose authors commit to using it. You can use it for your programs, too. When we speak of free software, we are referring to freedom, not price. Specifically, the General Public License is designed to make sure that you have the freedom to give away or sell copies of free software, that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of a such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must tell them their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License Agreement applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any work containing the Program or a portion of it, either verbatim or with modifications. Each licensee is addressed as "you". 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this General Public License and to the absence of any warranty; and give any other recipients of the Program a copy of this General Public License along with the Program. You may charge a fee for the physical act of transferring a copy. 2. You may modify your copy or copies of the Program or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: a) cause the modified files to carry prominent notices stating that you changed the files and the date of any change; and b) cause the whole of any work that you distribute or publish, that in whole or in part contains the Program or any part thereof, either with or without modifications, to be licensed at no charge to all third parties under the terms of this General Public License (except that you may choose to grant warranty protection to some or all third parties, at your option). c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the simplest and most usual way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this General Public License. d) You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. Mere aggregation of another independent work with the Program (or its derivative) on a volume of a storage or distribution medium does not bring the other work under the scope of these terms. 3. You may copy and distribute the Program (or a portion or derivative of it, under Paragraph 2) in object code or executable form under the terms of Paragraphs 1 and 2 above provided that you also do one of the following: a) accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Paragraphs 1 and 2 above; or, b) accompany it with a written offer, valid for at least three years, to give any third party free (except for a nominal charge for the cost of distribution) a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Paragraphs 1 and 2 above; or, c) accompany it with the information you received as to where the corresponding source code may be obtained. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form alone.) Source code for a work means the preferred form of the work for making modifications to it. For an executable file, complete source code means all the source code for all modules it contains; but, as a special exception, it need not include source code for modules which are standard libraries that accompany the operating system on which the executable file runs, or for standard header files or definitions files that accompany that operating system. 4. You may not copy, modify, sublicense, distribute or transfer the Program except as expressly provided under this General Public License. Any attempt otherwise to copy, modify, sublicense, distribute or transfer the Program is void, and will automatically terminate your rights to use the Program under this License. However, parties who have received copies, or rights to use copies, from you under this General Public License will not have their licenses terminated so long as such parties remain in full compliance. 5. By copying, distributing or modifying the Program (or any work based on the Program) you indicate your acceptance of this license to do so, and all its terms and conditions. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. 7. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of the license which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the license, you may choose any version ever published by the Free Software Foundation. 8. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 9. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 10. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to humanity, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19xx name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (a program to direct compilers to make passes at assemblers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice That's all there is to it! --- The Artistic License 1.0 --- This software is Copyright (c) 2015- by Nikolay Mishin < mi@ya.ru >. This is free software, licensed under: The Artistic License 1.0 The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: - "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. - "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. - "Copyright Holder" is whoever is named in the copyright or copyrights for the package. - "You" is you, if you're thinking about copying or distributing this Package. - "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) - "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. The End META.json100644001750001750 1153214212656165 16205 0ustar00syoheisyohei000000000000Data-MessagePack-1.02{ "abstract" : "MessagePack serializing/deserializing", "author" : [ "Tokuhiro Matsuno" ], "dynamic_config" : 0, "generated_by" : "Minilla/v3.1.15", "license" : [ "perl_5" ], "meta-spec" : { "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", "version" : "2" }, "name" : "Data-MessagePack", "no_index" : { "directory" : [ "t", "xt", "inc", "share", "eg", "examples", "author", "builder" ] }, "prereqs" : { "configure" : { "requires" : { "Devel::PPPort" : "3.42", "Module::Build" : "0.4005", "Module::Build::XSUtil" : "0" } }, "develop" : { "requires" : { "Test::CPAN::Meta" : "0", "Test::LeakTrace" : "0", "Test::MinimumVersion::Fast" : "0.04", "Test::PAUSE::Permissions" : "0.07", "Test::Pod" : "1.41", "Test::Spellunker" : "v0.2.7" } }, "runtime" : { "requires" : { "Math::BigInt" : "1.89", "perl" : "5.008001" } }, "test" : { "requires" : { "Test::More" : "0.98", "Test::Requires" : "0" } } }, "provides" : { "Data::MessagePack" : { "file" : "lib/Data/MessagePack.pm", "version" : "1.02" }, "Data::MessagePack::Boolean" : { "file" : "lib/Data/MessagePack/Boolean.pm" }, "Data::MessagePack::PP" : { "file" : "lib/Data/MessagePack/PP.pm" } }, "release_status" : "stable", "resources" : { "bugtracker" : { "web" : "https://github.com/msgpack/msgpack-perl/issues" }, "homepage" : "https://github.com/msgpack/msgpack-perl", "repository" : { "type" : "git", "url" : "https://github.com/msgpack/msgpack-perl.git", "web" : "https://github.com/msgpack/msgpack-perl" } }, "version" : "1.02", "x_authority" : "cpan:TOKUHIROM", "x_contributors" : [ "Brian Ketelsen ", "David Steinbrunner ", "FUJI Goro (gfx) ", "FURUHASHI Sadayuki ", "Fuji Goro ", "Fuji, Goro ", "Fuji, Goro ", "Hideyuki TAKEI ", "Hideyuki Tanaka ", "Hideyuki Tanaka ", "Hideyuki Tanaka ", "Hideyuki Tanaka ", "INADA Naoki ", "Kazuho Oku ", "Kazuki Ohta ", "Kazuki Ohta ", "Kazuki Oikawa ", "Keiji Muraishi ", "Masahiro Nakagawa ", "Moriyoshi Koizumi ", "Muga Nishizawa ", "Muga Nishizawa ", "Naoki INADA ", "Naoki INADA ", "Naoki INADA ", "Naoki INADA ", "Naoki INADA ", "Nicolas Despres ", "Nikolay Mishin ", "Perlover ", "Reini Urban ", "Robin Smidsrød ", "Shohei YOSHIDA ", "Shohei YOSHIDA ", "Shoichi Kaji ", "Taro L. Saito ", "Tokuhiro Matsuno ", "UENISHI Kota ", "UENISHI Kota ", "Vasily Titskiy ", "Vincent de Phily ", "Watabiki Naoya ", "Yuto Hayamizu ", "advect ", "cho45 ", "egtra ", "firewood ", "frsyuki (none) ", "frsyuki ", "frsyuki ", "gfx ", "inada-n ", "inada-n ", "inada-n ", "makamaka ", "moaikids ", "mzp ", "tailhook ", "takeshita ", "tokuhirom ", "xanxys " ], "x_serialization_backend" : "JSON::PP version 4.07", "x_static_install" : 0 } README.md100644001750001750 1447014212656165 16047 0ustar00syoheisyohei000000000000Data-MessagePack-1.02[![Build Status](https://travis-ci.org/msgpack/msgpack-perl.svg?branch=master)](https://travis-ci.org/msgpack/msgpack-perl) # NAME Data::MessagePack - MessagePack serializing/deserializing # SYNOPSIS use Data::MessagePack; my $mp = Data::MessagePack->new(); $mp->canonical->utf8->prefer_integer if $needed; my $packed = $mp->pack($dat); my $unpacked = $mp->unpack($dat); # DESCRIPTION This module converts Perl data structures to MessagePack and vice versa. # ABOUT MESSAGEPACK FORMAT MessagePack is a binary-based efficient object serialization format. It enables to exchange structured objects between many languages like JSON. But unlike JSON, it is very fast and small. ## ADVANTAGES - PORTABLE The MessagePack format does not depend on language nor byte order. - SMALL IN SIZE say length(JSON::XS::encode_json({a=>1, b=>2})); # => 13 say length(Storable::nfreeze({a=>1, b=>2})); # => 21 say length(Data::MessagePack->pack({a=>1, b=>2})); # => 7 The MessagePack format saves memory than JSON and Storable format. - STREAMING DESERIALIZER MessagePack supports streaming deserializer. It is useful for networking such as RPC. See [Data::MessagePack::Unpacker](https://metacpan.org/pod/Data%3A%3AMessagePack%3A%3AUnpacker) for details. If you want to get more information about the MessagePack format, please visit to [http://msgpack.org/](http://msgpack.org/). # METHODS - `my $packed = Data::MessagePack->pack($data[, $max_depth]);` Pack the $data to messagepack format string. This method throws an exception when the perl structure is nested more than $max\_depth levels(default: 512) in order to detect circular references. Data::MessagePack->pack() throws an exception when encountering a blessed perl object, because MessagePack is a language-independent format. - `my $unpacked = Data::MessagePack->unpack($msgpackstr);` unpack the $msgpackstr to a MessagePack format string. - `my $mp = Data::MesssagePack->new()` Creates a new MessagePack instance. - `$mp = $mp->prefer_integer([ $enable ])` - `$enabled = $mp->get_prefer_integer()` If _$enable_ is true (or missing), then the `pack` method tries a string as an integer if the string looks like an integer. - `$mp = $mp->canonical([ $enable ])` - `$enabled = $mp->get_canonical()` If _$enable_ is true (or missing), then the `pack` method will output packed data by sorting their keys. This is adding a comparatively high overhead. - `$mp = $mp->utf8([ $enable ])` - `$enabled = $mp->get_utf8()` If _$enable_ is true (or missing), then the `pack` method will apply `utf8::encode()` to all the string values. In other words, this property tell `$mp` to deal with **text strings**. See [perlunifaq](https://metacpan.org/pod/perlunifaq) for the meaning of **text string**. - `$packed = $mp->pack($data)` - `$packed = $mp->encode($data)` Same as `Data::MessagePack->pack()`, but properties are respected. - `$data = $mp->unpack($data)` - `$data = $mp->decode($data)` Same as `Data::MessagePack->unpack()`, but properties are respected. # Configuration Variables (DEPRECATED) - $Data::MessagePack::PreferInteger Packs a string as an integer, when it looks like an integer. This variable is **deprecated**. Use `$msgpack->prefer_integer` property instead. # SPEED This is a result of `benchmark/serialize.pl` and `benchmark/deserialize.pl` on my SC440(Linux 2.6.32-23-server #37-Ubuntu SMP). (You should benchmark them with **your** data if the speed matters, of course.) -- serialize JSON::XS: 2.3 Data::MessagePack: 0.24 Storable: 2.21 Benchmark: running json, mp, storable for at least 1 CPU seconds... json: 1 wallclock secs ( 1.00 usr + 0.01 sys = 1.01 CPU) @ 141939.60/s (n=143359) mp: 1 wallclock secs ( 1.06 usr + 0.00 sys = 1.06 CPU) @ 355500.94/s (n=376831) storable: 1 wallclock secs ( 1.12 usr + 0.00 sys = 1.12 CPU) @ 38399.11/s (n=43007) Rate storable json mp storable 38399/s -- -73% -89% json 141940/s 270% -- -60% mp 355501/s 826% 150% -- -- deserialize JSON::XS: 2.3 Data::MessagePack: 0.24 Storable: 2.21 Benchmark: running json, mp, storable for at least 1 CPU seconds... json: 0 wallclock secs ( 1.05 usr + 0.00 sys = 1.05 CPU) @ 179442.86/s (n=188415) mp: 0 wallclock secs ( 1.01 usr + 0.00 sys = 1.01 CPU) @ 212909.90/s (n=215039) storable: 2 wallclock secs ( 1.14 usr + 0.00 sys = 1.14 CPU) @ 114974.56/s (n=131071) Rate storable json mp storable 114975/s -- -36% -46% json 179443/s 56% -- -16% mp 212910/s 85% 19% -- # CAVEAT ## Unpacking 64 bit integers This module can unpack 64 bit integers even if your perl does not support them (i.e. where `perl -V:ivsize` is 4), but you cannot calculate these values unless you use `Math::BigInt`. # TODO - Error handling MessagePack cannot deal with complex scalars such as object references, filehandles, and code references. We should report the errors more kindly. - Streaming deserializer The current implementation of the streaming deserializer does not have internal buffers while some other bindings (such as Ruby binding) does. This limitation will astonish those who try to unpack byte streams with an arbitrary buffer size (e.g. `while(read($socket, $buffer, $arbitrary_buffer_size)) { ... }`). We should implement the internal buffer for the unpacker. # FAQ - Why does Data::MessagePack have pure perl implementations? msgpack C library uses C99 feature, VC++6 does not support C99. So pure perl version is needed for VC++ users. # AUTHORS Tokuhiro Matsuno Makamaka Hannyaharamitu gfx # THANKS TO Jun Kuriyama Dan Kogai FURUHASHI Sadayuki hanekomu Kazuho Oku syohex # LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. # SEE ALSO [http://msgpack.org/](http://msgpack.org/) is the official web site for the MessagePack format. [Data::MessagePack::Unpacker](https://metacpan.org/pod/Data%3A%3AMessagePack%3A%3AUnpacker) [AnyEvent::MPRPC](https://metacpan.org/pod/AnyEvent%3A%3AMPRPC) update-msgpack-c.pl100644001750001750 302114212656165 21522 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/author#!/usr/bin/env perl use strict; use warnings; use HTTP::Tiny; use IO::Socket::SSL; use Path::Tiny; use FindBin; chdir "$FindBin::Bin/.."; my $version = shift or die "Usage: $0 VERSION\n"; my $url = "https://github.com/msgpack/msgpack-c/releases/download/cpp-$version/msgpack-$version.tar.gz"; my $tempdir = Path::Tiny->tempdir; warn "Downloading $url\n"; my $res = HTTP::Tiny->new(veriry_SSL => 1)->mirror($url => "$tempdir/msgpack-$version.tar.gz"); die "$res->{status} $res->{reason}, $url\n" if !$res->{success}; warn "Unpacking msgpack-$version.tar.gz\n"; !system "tar", "xf", "$tempdir/msgpack-$version.tar.gz", "-C", "$tempdir" or die; path($_)->remove_tree for grep -d, 'include', 't/std'; warn "Copying include/*.h\n"; path("$tempdir/msgpack-$version/include/msgpack")->visit( sub { my $path = shift; return if !$path->is_file; return if $path->stringify !~ /\.h$/; my $relative = $path->relative("$tempdir/msgpack-$version"); $relative->parent->mkpath if !$relative->parent->exists; $path->copy($relative); }, { recurse => 1 }, ); warn "Copying test/*.mapc\n"; path("t/std")->mkpath; path("$tempdir/msgpack-$version/test")->visit( sub { my $path = shift; return if !$path->is_file; return if $path->stringify !~ /\.mpac$/; my $relative = $path->relative("$tempdir/msgpack-$version/test"); $path->copy("t/std/$relative"); }, ); warn "Writing include/msgpack-c-version\n"; path("include/msgpack-c-version")->spew("$version\n"); data.pl100755001750001750 33314212656165 17724 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/benchmark+{ "method" => "handleMessage", "params" => [ "user1", "we were just talking", "foo\nbar\nbaz\nqux" ], "id" => undef, "array" => [ 1, 1024, 70000, -5, 1e5, 1e7, 1, 0, 3.14, sqrt(2), 1 .. 100 ], }; deserialize.pl100644001750001750 121614212656165 21331 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/benchmarkuse strict; use warnings; use Data::MessagePack; use JSON; use Storable; use Benchmark ':all'; #$Data::MessagePack::PreferInteger = 1; my $a = do 'benchmark/data.pl'; my $j = JSON::encode_json($a); my $m = Data::MessagePack->pack($a); my $s = Storable::freeze($a); print "-- deserialize\n"; print "$JSON::Backend: ", $JSON::Backend->VERSION, "\n"; print "Data::MessagePack: $Data::MessagePack::VERSION\n"; print "Storable: $Storable::VERSION\n"; cmpthese timethese( -1 => { json => sub { JSON::decode_json($j) }, mp => sub { Data::MessagePack->unpack($m) }, storable => sub { Storable::thaw($s) }, } ); serialize.pl100644001750001750 77414212656165 21010 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/benchmarkuse strict; use warnings; use Data::MessagePack; use JSON; use Storable; use Benchmark ':all'; my $a = do 'benchmark/data.pl'; print "-- serialize\n"; print "$JSON::Backend: ", $JSON::Backend->VERSION, "\n"; print "Data::MessagePack: $Data::MessagePack::VERSION\n"; print "Storable: $Storable::VERSION\n"; cmpthese timethese( -1 => { json => sub { JSON::encode_json($a) }, storable => sub { Storable::freeze($a) }, mp => sub { Data::MessagePack->pack($a) }, } ); size.pl100644001750001750 124714212656165 20007 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/benchmark#!/usr/bin/perl use strict; use warnings; use Data::MessagePack; use Storable; use Text::SimpleTable; my @entries = ( '1', '3.14', '{}', '[]', "[('a')x10]", "{('a')x10}", "+{1,+{1,+{}}}", "+[+[+[]]]", ); my $table = Text::SimpleTable->new([15, 'src'], [9, 'storable'], [7, 'msgpack']); for my $src (@entries) { my $e = eval $src; die $@ if $@; $table->row( $src, length(Storable::nfreeze(ref $e ? $e : \$e)), length(Data::MessagePack->pack($e)), ); } print "perl: $]\n"; print "Storable: $Storable::VERSION\n"; print "Data::MessagePack: $Data::MessagePack::VERSION\n"; print "\n"; print $table->draw; MyBuilder.pm100644001750001750 164314212656165 20426 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/builderpackage builder::MyBuilder; use strict; use warnings; use base 'Module::Build::XSUtil'; sub new { my ($class, %args) = @_; my $self = $class->SUPER::new( %args, c_source => ['xs-src'], cc_warnings => 1, generate_ppport_h => 'xs-src/ppport.h', generate_xshelper_h => 'xs-src/xshelper.h', include_dirs => ['include'], needs_compiler_c99 => 1, xs_files => { 'xs-src/MessagePack.xs' => 'lib/Data/MessagePack.xs' }, ); $self->c_source([]) if $self->pureperl_only; # for Module::Build 0.4224 or below $self; } sub ACTION_test { my $self = shift; { local $ENV{PERL_ONLY} = 1; $self->log_info("pp tests\n"); $self->SUPER::ACTION_test(@_); } if (!$self->pureperl_only) { local $ENV{PERL_DATA_MESSAGEPACK} = "xs"; $self->log_info("xs tests\n"); $self->SUPER::ACTION_test(@_); } } 1; cpanfile100644001750001750 52714212656165 16232 0ustar00syoheisyohei000000000000Data-MessagePack-1.02requires 'perl', '5.008001'; requires 'Math::BigInt', 1.89; # old versions of BigInt were broken on configure => sub { requires 'Module::Build::XSUtil'; requires 'Devel::PPPort', '3.42'; }; on test => sub { requires 'Test::More', '0.98'; requires 'Test::Requires'; }; on develop => sub { requires 'Test::LeakTrace'; }; msgpack-c-version100644001750001750 614212656165 21354 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include1.4.0 fbuffer.h100644001750001750 124514212656165 21404 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C FILE* buffer adaptor * * Copyright (C) 2013 Vladimir Volodko * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_FBUFFER_H #define MSGPACK_FBUFFER_H #include #ifdef __cplusplus extern "C" { #endif /** * @defgroup msgpack_fbuffer FILE* buffer * @ingroup msgpack_buffer * @{ */ static inline int msgpack_fbuffer_write(void* data, const char* buf, size_t len) { return (1 == fwrite(buf, len, 1, (FILE *)data)) ? 0 : -1; } /** @} */ #ifdef __cplusplus } #endif #endif /* msgpack/fbuffer.h */ gcc_atomic.h100644001750001750 103114212656165 22046 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_GCC_ATOMIC_H #define MSGPACK_GCC_ATOMIC_H #if defined(__cplusplus) extern "C" { #endif typedef int _msgpack_atomic_counter_t; int _msgpack_sync_decr_and_fetch(volatile _msgpack_atomic_counter_t* ptr); int _msgpack_sync_incr_and_fetch(volatile _msgpack_atomic_counter_t* ptr); #if defined(__cplusplus) } #endif #endif // MSGPACK_GCC_ATOMIC_H object.h100644001750001750 471314212656165 21236 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C dynamic typing routine * * Copyright (C) 2008-2009 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_OBJECT_H #define MSGPACK_OBJECT_H #include "zone.h" #include #ifdef __cplusplus extern "C" { #endif /** * @defgroup msgpack_object Dynamically typed object * @ingroup msgpack * @{ */ typedef enum { MSGPACK_OBJECT_NIL = 0x00, MSGPACK_OBJECT_BOOLEAN = 0x01, MSGPACK_OBJECT_POSITIVE_INTEGER = 0x02, MSGPACK_OBJECT_NEGATIVE_INTEGER = 0x03, MSGPACK_OBJECT_FLOAT = 0x04, #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) MSGPACK_OBJECT_DOUBLE = MSGPACK_OBJECT_FLOAT, /* obsolete */ #endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */ MSGPACK_OBJECT_STR = 0x05, MSGPACK_OBJECT_ARRAY = 0x06, MSGPACK_OBJECT_MAP = 0x07, MSGPACK_OBJECT_BIN = 0x08, MSGPACK_OBJECT_EXT = 0x09 } msgpack_object_type; struct msgpack_object; struct msgpack_object_kv; typedef struct { uint32_t size; struct msgpack_object* ptr; } msgpack_object_array; typedef struct { uint32_t size; struct msgpack_object_kv* ptr; } msgpack_object_map; typedef struct { uint32_t size; const char* ptr; } msgpack_object_str; typedef struct { uint32_t size; const char* ptr; } msgpack_object_bin; typedef struct { int8_t type; uint32_t size; const char* ptr; } msgpack_object_ext; typedef union { bool boolean; uint64_t u64; int64_t i64; #if defined(MSGPACK_USE_LEGACY_NAME_AS_FLOAT) double dec; /* obsolete*/ #endif /* MSGPACK_USE_LEGACY_NAME_AS_FLOAT */ double f64; msgpack_object_array array; msgpack_object_map map; msgpack_object_str str; msgpack_object_bin bin; msgpack_object_ext ext; } msgpack_object_union; typedef struct msgpack_object { msgpack_object_type type; msgpack_object_union via; } msgpack_object; typedef struct msgpack_object_kv { msgpack_object key; msgpack_object val; } msgpack_object_kv; MSGPACK_DLLEXPORT void msgpack_object_print(FILE* out, msgpack_object o); MSGPACK_DLLEXPORT bool msgpack_object_equal(const msgpack_object x, const msgpack_object y); /** @} */ #ifdef __cplusplus } #endif #endif /* msgpack/object.h */ pack.h100644001750001750 1130414212656165 20720 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C packing routine * * Copyright (C) 2008-2009 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PACK_H #define MSGPACK_PACK_H #include "pack_define.h" #include "object.h" #include #ifdef __cplusplus extern "C" { #endif /** * @defgroup msgpack_buffer Buffers * @ingroup msgpack * @{ * @} */ /** * @defgroup msgpack_pack Serializer * @ingroup msgpack * @{ */ typedef int (*msgpack_packer_write)(void* data, const char* buf, size_t len); typedef struct msgpack_packer { void* data; msgpack_packer_write callback; } msgpack_packer; static void msgpack_packer_init(msgpack_packer* pk, void* data, msgpack_packer_write callback); static msgpack_packer* msgpack_packer_new(void* data, msgpack_packer_write callback); static void msgpack_packer_free(msgpack_packer* pk); static int msgpack_pack_char(msgpack_packer* pk, char d); static int msgpack_pack_signed_char(msgpack_packer* pk, signed char d); static int msgpack_pack_short(msgpack_packer* pk, short d); static int msgpack_pack_int(msgpack_packer* pk, int d); static int msgpack_pack_long(msgpack_packer* pk, long d); static int msgpack_pack_long_long(msgpack_packer* pk, long long d); static int msgpack_pack_unsigned_char(msgpack_packer* pk, unsigned char d); static int msgpack_pack_unsigned_short(msgpack_packer* pk, unsigned short d); static int msgpack_pack_unsigned_int(msgpack_packer* pk, unsigned int d); static int msgpack_pack_unsigned_long(msgpack_packer* pk, unsigned long d); static int msgpack_pack_unsigned_long_long(msgpack_packer* pk, unsigned long long d); static int msgpack_pack_uint8(msgpack_packer* pk, uint8_t d); static int msgpack_pack_uint16(msgpack_packer* pk, uint16_t d); static int msgpack_pack_uint32(msgpack_packer* pk, uint32_t d); static int msgpack_pack_uint64(msgpack_packer* pk, uint64_t d); static int msgpack_pack_int8(msgpack_packer* pk, int8_t d); static int msgpack_pack_int16(msgpack_packer* pk, int16_t d); static int msgpack_pack_int32(msgpack_packer* pk, int32_t d); static int msgpack_pack_int64(msgpack_packer* pk, int64_t d); static int msgpack_pack_fix_uint8(msgpack_packer* pk, uint8_t d); static int msgpack_pack_fix_uint16(msgpack_packer* pk, uint16_t d); static int msgpack_pack_fix_uint32(msgpack_packer* pk, uint32_t d); static int msgpack_pack_fix_uint64(msgpack_packer* pk, uint64_t d); static int msgpack_pack_fix_int8(msgpack_packer* pk, int8_t d); static int msgpack_pack_fix_int16(msgpack_packer* pk, int16_t d); static int msgpack_pack_fix_int32(msgpack_packer* pk, int32_t d); static int msgpack_pack_fix_int64(msgpack_packer* pk, int64_t d); static int msgpack_pack_float(msgpack_packer* pk, float d); static int msgpack_pack_double(msgpack_packer* pk, double d); static int msgpack_pack_nil(msgpack_packer* pk); static int msgpack_pack_true(msgpack_packer* pk); static int msgpack_pack_false(msgpack_packer* pk); static int msgpack_pack_array(msgpack_packer* pk, size_t n); static int msgpack_pack_map(msgpack_packer* pk, size_t n); static int msgpack_pack_str(msgpack_packer* pk, size_t l); static int msgpack_pack_str_body(msgpack_packer* pk, const void* b, size_t l); static int msgpack_pack_v4raw(msgpack_packer* pk, size_t l); static int msgpack_pack_v4raw_body(msgpack_packer* pk, const void* b, size_t l); static int msgpack_pack_bin(msgpack_packer* pk, size_t l); static int msgpack_pack_bin_body(msgpack_packer* pk, const void* b, size_t l); static int msgpack_pack_ext(msgpack_packer* pk, size_t l, int8_t type); static int msgpack_pack_ext_body(msgpack_packer* pk, const void* b, size_t l); int msgpack_pack_object(msgpack_packer* pk, msgpack_object d); /** @} */ #define msgpack_pack_inline_func(name) \ inline int msgpack_pack ## name #define msgpack_pack_inline_func_cint(name) \ inline int msgpack_pack ## name #define msgpack_pack_inline_func_fixint(name) \ inline int msgpack_pack_fix ## name #define msgpack_pack_user msgpack_packer* #define msgpack_pack_append_buffer(user, buf, len) \ return (*(user)->callback)((user)->data, (const char*)buf, len) #include "pack_template.h" inline void msgpack_packer_init(msgpack_packer* pk, void* data, msgpack_packer_write callback) { pk->data = data; pk->callback = callback; } inline msgpack_packer* msgpack_packer_new(void* data, msgpack_packer_write callback) { msgpack_packer* pk = (msgpack_packer*)calloc(1, sizeof(msgpack_packer)); if(!pk) { return NULL; } msgpack_packer_init(pk, data, callback); return pk; } inline void msgpack_packer_free(msgpack_packer* pk) { free(pk); } #ifdef __cplusplus } #endif #endif /* msgpack/pack.h */ pack_define.h100644001750001750 66014212656165 22175 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack unpacking routine template * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PACK_DEFINE_H #define MSGPACK_PACK_DEFINE_H #include "msgpack/sysdep.h" #include #include #endif /* msgpack/pack_define.h */ pack_template.h100644001750001750 5573314212656165 22631 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack packing routine template * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #if MSGPACK_ENDIAN_LITTLE_BYTE #define TAKE8_8(d) ((uint8_t*)&d)[0] #define TAKE8_16(d) ((uint8_t*)&d)[0] #define TAKE8_32(d) ((uint8_t*)&d)[0] #define TAKE8_64(d) ((uint8_t*)&d)[0] #elif MSGPACK_ENDIAN_BIG_BYTE #define TAKE8_8(d) ((uint8_t*)&d)[0] #define TAKE8_16(d) ((uint8_t*)&d)[1] #define TAKE8_32(d) ((uint8_t*)&d)[3] #define TAKE8_64(d) ((uint8_t*)&d)[7] #else #error msgpack-c supports only big endian and little endian #endif #ifndef msgpack_pack_inline_func #error msgpack_pack_inline_func template is not defined #endif #ifndef msgpack_pack_user #error msgpack_pack_user type is not defined #endif #ifndef msgpack_pack_append_buffer #error msgpack_pack_append_buffer callback is not defined #endif /* * Integer */ #define msgpack_pack_real_uint8(x, d) \ do { \ if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \ } else { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_8(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } while(0) #define msgpack_pack_real_uint16(x, d) \ do { \ if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \ } else if(d < (1<<8)) { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } \ } while(0) #define msgpack_pack_real_uint32(x, d) \ do { \ if(d < (1<<8)) { \ if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \ } else { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } else { \ if(d < (1<<16)) { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* unsigned 32 */ \ unsigned char buf[5]; \ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } \ } \ } while(0) #define msgpack_pack_real_uint64(x, d) \ do { \ if(d < (1ULL<<8)) { \ if(d < (1ULL<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \ } else { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } else { \ if(d < (1ULL<<16)) { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else if(d < (1ULL<<32)) { \ /* unsigned 32 */ \ unsigned char buf[5]; \ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } else { \ /* unsigned 64 */ \ unsigned char buf[9]; \ buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \ msgpack_pack_append_buffer(x, buf, 9); \ } \ } \ } while(0) #define msgpack_pack_real_int8(x, d) \ do { \ if(d < -(1<<5)) { \ /* signed 8 */ \ unsigned char buf[2] = {0xd0, TAKE8_8(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); \ } \ } while(0) #define msgpack_pack_real_int16(x, d) \ do { \ if(d < -(1<<5)) { \ if(d < -(1<<7)) { \ /* signed 16 */ \ unsigned char buf[3]; \ buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* signed 8 */ \ unsigned char buf[2] = {0xd0, TAKE8_16(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } else if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_16(d), 1); \ } else { \ if(d < (1<<8)) { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_16(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } \ } \ } while(0) #define msgpack_pack_real_int32(x, d) \ do { \ if(d < -(1<<5)) { \ if(d < -(1<<15)) { \ /* signed 32 */ \ unsigned char buf[5]; \ buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } else if(d < -(1<<7)) { \ /* signed 16 */ \ unsigned char buf[3]; \ buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* signed 8 */ \ unsigned char buf[2] = {0xd0, TAKE8_32(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } else if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_32(d), 1); \ } else { \ if(d < (1<<8)) { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_32(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else if(d < (1<<16)) { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* unsigned 32 */ \ unsigned char buf[5]; \ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } \ } \ } while(0) #define msgpack_pack_real_int64(x, d) \ do { \ if(d < -(1LL<<5)) { \ if(d < -(1LL<<15)) { \ if(d < -(1LL<<31)) { \ /* signed 64 */ \ unsigned char buf[9]; \ buf[0] = 0xd3; _msgpack_store64(&buf[1], d); \ msgpack_pack_append_buffer(x, buf, 9); \ } else { \ /* signed 32 */ \ unsigned char buf[5]; \ buf[0] = 0xd2; _msgpack_store32(&buf[1], (int32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } \ } else { \ if(d < -(1<<7)) { \ /* signed 16 */ \ unsigned char buf[3]; \ buf[0] = 0xd1; _msgpack_store16(&buf[1], (int16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } else { \ /* signed 8 */ \ unsigned char buf[2] = {0xd0, TAKE8_64(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } \ } \ } else if(d < (1<<7)) { \ /* fixnum */ \ msgpack_pack_append_buffer(x, &TAKE8_64(d), 1); \ } else { \ if(d < (1LL<<16)) { \ if(d < (1<<8)) { \ /* unsigned 8 */ \ unsigned char buf[2] = {0xcc, TAKE8_64(d)}; \ msgpack_pack_append_buffer(x, buf, 2); \ } else { \ /* unsigned 16 */ \ unsigned char buf[3]; \ buf[0] = 0xcd; _msgpack_store16(&buf[1], (uint16_t)d); \ msgpack_pack_append_buffer(x, buf, 3); \ } \ } else { \ if(d < (1LL<<32)) { \ /* unsigned 32 */ \ unsigned char buf[5]; \ buf[0] = 0xce; _msgpack_store32(&buf[1], (uint32_t)d); \ msgpack_pack_append_buffer(x, buf, 5); \ } else { \ /* unsigned 64 */ \ unsigned char buf[9]; \ buf[0] = 0xcf; _msgpack_store64(&buf[1], d); \ msgpack_pack_append_buffer(x, buf, 9); \ } \ } \ } \ } while(0) #ifdef msgpack_pack_inline_func_fixint msgpack_pack_inline_func_fixint(_uint8)(msgpack_pack_user x, uint8_t d) { unsigned char buf[2] = {0xcc, TAKE8_8(d)}; msgpack_pack_append_buffer(x, buf, 2); } msgpack_pack_inline_func_fixint(_uint16)(msgpack_pack_user x, uint16_t d) { unsigned char buf[3]; buf[0] = 0xcd; _msgpack_store16(&buf[1], d); msgpack_pack_append_buffer(x, buf, 3); } msgpack_pack_inline_func_fixint(_uint32)(msgpack_pack_user x, uint32_t d) { unsigned char buf[5]; buf[0] = 0xce; _msgpack_store32(&buf[1], d); msgpack_pack_append_buffer(x, buf, 5); } msgpack_pack_inline_func_fixint(_uint64)(msgpack_pack_user x, uint64_t d) { unsigned char buf[9]; buf[0] = 0xcf; _msgpack_store64(&buf[1], d); msgpack_pack_append_buffer(x, buf, 9); } msgpack_pack_inline_func_fixint(_int8)(msgpack_pack_user x, int8_t d) { unsigned char buf[2] = {0xd0, TAKE8_8(d)}; msgpack_pack_append_buffer(x, buf, 2); } msgpack_pack_inline_func_fixint(_int16)(msgpack_pack_user x, int16_t d) { unsigned char buf[3]; buf[0] = 0xd1; _msgpack_store16(&buf[1], d); msgpack_pack_append_buffer(x, buf, 3); } msgpack_pack_inline_func_fixint(_int32)(msgpack_pack_user x, int32_t d) { unsigned char buf[5]; buf[0] = 0xd2; _msgpack_store32(&buf[1], d); msgpack_pack_append_buffer(x, buf, 5); } msgpack_pack_inline_func_fixint(_int64)(msgpack_pack_user x, int64_t d) { unsigned char buf[9]; buf[0] = 0xd3; _msgpack_store64(&buf[1], d); msgpack_pack_append_buffer(x, buf, 9); } #undef msgpack_pack_inline_func_fixint #endif msgpack_pack_inline_func(_uint8)(msgpack_pack_user x, uint8_t d) { msgpack_pack_real_uint8(x, d); } msgpack_pack_inline_func(_uint16)(msgpack_pack_user x, uint16_t d) { msgpack_pack_real_uint16(x, d); } msgpack_pack_inline_func(_uint32)(msgpack_pack_user x, uint32_t d) { msgpack_pack_real_uint32(x, d); } msgpack_pack_inline_func(_uint64)(msgpack_pack_user x, uint64_t d) { msgpack_pack_real_uint64(x, d); } msgpack_pack_inline_func(_int8)(msgpack_pack_user x, int8_t d) { msgpack_pack_real_int8(x, d); } msgpack_pack_inline_func(_int16)(msgpack_pack_user x, int16_t d) { msgpack_pack_real_int16(x, d); } msgpack_pack_inline_func(_int32)(msgpack_pack_user x, int32_t d) { msgpack_pack_real_int32(x, d); } msgpack_pack_inline_func(_int64)(msgpack_pack_user x, int64_t d) { msgpack_pack_real_int64(x, d); } msgpack_pack_inline_func(_char)(msgpack_pack_user x, char d) { #if defined(CHAR_MIN) #if CHAR_MIN < 0 msgpack_pack_real_int8(x, d); #else msgpack_pack_real_uint8(x, d); #endif #else #error CHAR_MIN is not defined #endif } msgpack_pack_inline_func(_signed_char)(msgpack_pack_user x, signed char d) { msgpack_pack_real_int8(x, d); } msgpack_pack_inline_func(_unsigned_char)(msgpack_pack_user x, unsigned char d) { msgpack_pack_real_uint8(x, d); } #ifdef msgpack_pack_inline_func_cint msgpack_pack_inline_func_cint(_short)(msgpack_pack_user x, short d) { #if defined(SIZEOF_SHORT) #if SIZEOF_SHORT == 2 msgpack_pack_real_int16(x, d); #elif SIZEOF_SHORT == 4 msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #elif defined(SHRT_MAX) #if SHRT_MAX == 0x7fff msgpack_pack_real_int16(x, d); #elif SHRT_MAX == 0x7fffffff msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #else if(sizeof(short) == 2) { msgpack_pack_real_int16(x, d); } else if(sizeof(short) == 4) { msgpack_pack_real_int32(x, d); } else { msgpack_pack_real_int64(x, d); } #endif } msgpack_pack_inline_func_cint(_int)(msgpack_pack_user x, int d) { #if defined(SIZEOF_INT) #if SIZEOF_INT == 2 msgpack_pack_real_int16(x, d); #elif SIZEOF_INT == 4 msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #elif defined(INT_MAX) #if INT_MAX == 0x7fff msgpack_pack_real_int16(x, d); #elif INT_MAX == 0x7fffffff msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #else if(sizeof(int) == 2) { msgpack_pack_real_int16(x, d); } else if(sizeof(int) == 4) { msgpack_pack_real_int32(x, d); } else { msgpack_pack_real_int64(x, d); } #endif } msgpack_pack_inline_func_cint(_long)(msgpack_pack_user x, long d) { #if defined(SIZEOF_LONG) #if SIZEOF_LONG == 2 msgpack_pack_real_int16(x, d); #elif SIZEOF_LONG == 4 msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #elif defined(LONG_MAX) #if LONG_MAX == 0x7fffL msgpack_pack_real_int16(x, d); #elif LONG_MAX == 0x7fffffffL msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #else if(sizeof(long) == 2) { msgpack_pack_real_int16(x, d); } else if(sizeof(long) == 4) { msgpack_pack_real_int32(x, d); } else { msgpack_pack_real_int64(x, d); } #endif } msgpack_pack_inline_func_cint(_long_long)(msgpack_pack_user x, long long d) { #if defined(SIZEOF_LONG_LONG) #if SIZEOF_LONG_LONG == 2 msgpack_pack_real_int16(x, d); #elif SIZEOF_LONG_LONG == 4 msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #elif defined(LLONG_MAX) #if LLONG_MAX == 0x7fffL msgpack_pack_real_int16(x, d); #elif LLONG_MAX == 0x7fffffffL msgpack_pack_real_int32(x, d); #else msgpack_pack_real_int64(x, d); #endif #else if(sizeof(long long) == 2) { msgpack_pack_real_int16(x, d); } else if(sizeof(long long) == 4) { msgpack_pack_real_int32(x, d); } else { msgpack_pack_real_int64(x, d); } #endif } msgpack_pack_inline_func_cint(_unsigned_short)(msgpack_pack_user x, unsigned short d) { #if defined(SIZEOF_SHORT) #if SIZEOF_SHORT == 2 msgpack_pack_real_uint16(x, d); #elif SIZEOF_SHORT == 4 msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #elif defined(USHRT_MAX) #if USHRT_MAX == 0xffffU msgpack_pack_real_uint16(x, d); #elif USHRT_MAX == 0xffffffffU msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #else if(sizeof(unsigned short) == 2) { msgpack_pack_real_uint16(x, d); } else if(sizeof(unsigned short) == 4) { msgpack_pack_real_uint32(x, d); } else { msgpack_pack_real_uint64(x, d); } #endif } msgpack_pack_inline_func_cint(_unsigned_int)(msgpack_pack_user x, unsigned int d) { #if defined(SIZEOF_INT) #if SIZEOF_INT == 2 msgpack_pack_real_uint16(x, d); #elif SIZEOF_INT == 4 msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #elif defined(UINT_MAX) #if UINT_MAX == 0xffffU msgpack_pack_real_uint16(x, d); #elif UINT_MAX == 0xffffffffU msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #else if(sizeof(unsigned int) == 2) { msgpack_pack_real_uint16(x, d); } else if(sizeof(unsigned int) == 4) { msgpack_pack_real_uint32(x, d); } else { msgpack_pack_real_uint64(x, d); } #endif } msgpack_pack_inline_func_cint(_unsigned_long)(msgpack_pack_user x, unsigned long d) { #if defined(SIZEOF_LONG) #if SIZEOF_LONG == 2 msgpack_pack_real_uint16(x, d); #elif SIZEOF_LONG == 4 msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #elif defined(ULONG_MAX) #if ULONG_MAX == 0xffffUL msgpack_pack_real_uint16(x, d); #elif ULONG_MAX == 0xffffffffUL msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #else if(sizeof(unsigned long) == 2) { msgpack_pack_real_uint16(x, d); } else if(sizeof(unsigned long) == 4) { msgpack_pack_real_uint32(x, d); } else { msgpack_pack_real_uint64(x, d); } #endif } msgpack_pack_inline_func_cint(_unsigned_long_long)(msgpack_pack_user x, unsigned long long d) { #if defined(SIZEOF_LONG_LONG) #if SIZEOF_LONG_LONG == 2 msgpack_pack_real_uint16(x, d); #elif SIZEOF_LONG_LONG == 4 msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #elif defined(ULLONG_MAX) #if ULLONG_MAX == 0xffffUL msgpack_pack_real_uint16(x, d); #elif ULLONG_MAX == 0xffffffffUL msgpack_pack_real_uint32(x, d); #else msgpack_pack_real_uint64(x, d); #endif #else if(sizeof(unsigned long long) == 2) { msgpack_pack_real_uint16(x, d); } else if(sizeof(unsigned long long) == 4) { msgpack_pack_real_uint32(x, d); } else { msgpack_pack_real_uint64(x, d); } #endif } #undef msgpack_pack_inline_func_cint #endif /* * Float */ msgpack_pack_inline_func(_float)(msgpack_pack_user x, float d) { unsigned char buf[5]; union { float f; uint32_t i; } mem; mem.f = d; buf[0] = 0xca; _msgpack_store32(&buf[1], mem.i); msgpack_pack_append_buffer(x, buf, 5); } msgpack_pack_inline_func(_double)(msgpack_pack_user x, double d) { unsigned char buf[9]; union { double f; uint64_t i; } mem; mem.f = d; buf[0] = 0xcb; #if defined(TARGET_OS_IPHONE) // ok #elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi // https://github.com/msgpack/msgpack-perl/pull/1 mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); #endif _msgpack_store64(&buf[1], mem.i); msgpack_pack_append_buffer(x, buf, 9); } /* * Nil */ msgpack_pack_inline_func(_nil)(msgpack_pack_user x) { static const unsigned char d = 0xc0; msgpack_pack_append_buffer(x, &d, 1); } /* * Boolean */ msgpack_pack_inline_func(_true)(msgpack_pack_user x) { static const unsigned char d = 0xc3; msgpack_pack_append_buffer(x, &d, 1); } msgpack_pack_inline_func(_false)(msgpack_pack_user x) { static const unsigned char d = 0xc2; msgpack_pack_append_buffer(x, &d, 1); } /* * Array */ msgpack_pack_inline_func(_array)(msgpack_pack_user x, size_t n) { if(n < 16) { unsigned char d = 0x90 | (uint8_t)n; msgpack_pack_append_buffer(x, &d, 1); } else if(n < 65536) { unsigned char buf[3]; buf[0] = 0xdc; _msgpack_store16(&buf[1], (uint16_t)n); msgpack_pack_append_buffer(x, buf, 3); } else { unsigned char buf[5]; buf[0] = 0xdd; _msgpack_store32(&buf[1], (uint32_t)n); msgpack_pack_append_buffer(x, buf, 5); } } /* * Map */ msgpack_pack_inline_func(_map)(msgpack_pack_user x, size_t n) { if(n < 16) { unsigned char d = 0x80 | (uint8_t)n; msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); } else if(n < 65536) { unsigned char buf[3]; buf[0] = 0xde; _msgpack_store16(&buf[1], (uint16_t)n); msgpack_pack_append_buffer(x, buf, 3); } else { unsigned char buf[5]; buf[0] = 0xdf; _msgpack_store32(&buf[1], (uint32_t)n); msgpack_pack_append_buffer(x, buf, 5); } } /* * Str */ msgpack_pack_inline_func(_str)(msgpack_pack_user x, size_t l) { if(l < 32) { unsigned char d = 0xa0 | (uint8_t)l; msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); } else if(l < 256) { unsigned char buf[2]; buf[0] = 0xd9; buf[1] = (uint8_t)l; msgpack_pack_append_buffer(x, buf, 2); } else if(l < 65536) { unsigned char buf[3]; buf[0] = 0xda; _msgpack_store16(&buf[1], (uint16_t)l); msgpack_pack_append_buffer(x, buf, 3); } else { unsigned char buf[5]; buf[0] = 0xdb; _msgpack_store32(&buf[1], (uint32_t)l); msgpack_pack_append_buffer(x, buf, 5); } } msgpack_pack_inline_func(_str_body)(msgpack_pack_user x, const void* b, size_t l) { msgpack_pack_append_buffer(x, (const unsigned char*)b, l); } /* * Raw (V4) */ msgpack_pack_inline_func(_v4raw)(msgpack_pack_user x, size_t l) { if(l < 32) { unsigned char d = 0xa0 | (uint8_t)l; msgpack_pack_append_buffer(x, &TAKE8_8(d), 1); } else if(l < 65536) { unsigned char buf[3]; buf[0] = 0xda; _msgpack_store16(&buf[1], (uint16_t)l); msgpack_pack_append_buffer(x, buf, 3); } else { unsigned char buf[5]; buf[0] = 0xdb; _msgpack_store32(&buf[1], (uint32_t)l); msgpack_pack_append_buffer(x, buf, 5); } } msgpack_pack_inline_func(_v4raw_body)(msgpack_pack_user x, const void* b, size_t l) { msgpack_pack_append_buffer(x, (const unsigned char*)b, l); } /* * Bin */ msgpack_pack_inline_func(_bin)(msgpack_pack_user x, size_t l) { if(l < 256) { unsigned char buf[2]; buf[0] = 0xc4; buf[1] = (uint8_t)l; msgpack_pack_append_buffer(x, buf, 2); } else if(l < 65536) { unsigned char buf[3]; buf[0] = 0xc5; _msgpack_store16(&buf[1], (uint16_t)l); msgpack_pack_append_buffer(x, buf, 3); } else { unsigned char buf[5]; buf[0] = 0xc6; _msgpack_store32(&buf[1], (uint32_t)l); msgpack_pack_append_buffer(x, buf, 5); } } msgpack_pack_inline_func(_bin_body)(msgpack_pack_user x, const void* b, size_t l) { msgpack_pack_append_buffer(x, (const unsigned char*)b, l); } /* * Ext */ msgpack_pack_inline_func(_ext)(msgpack_pack_user x, size_t l, int8_t type) { switch(l) { case 1: { unsigned char buf[2]; buf[0] = 0xd4; buf[1] = type; msgpack_pack_append_buffer(x, buf, 2); } break; case 2: { unsigned char buf[2]; buf[0] = 0xd5; buf[1] = type; msgpack_pack_append_buffer(x, buf, 2); } break; case 4: { unsigned char buf[2]; buf[0] = 0xd6; buf[1] = type; msgpack_pack_append_buffer(x, buf, 2); } break; case 8: { unsigned char buf[2]; buf[0] = 0xd7; buf[1] = type; msgpack_pack_append_buffer(x, buf, 2); } break; case 16: { unsigned char buf[2]; buf[0] = 0xd8; buf[1] = type; msgpack_pack_append_buffer(x, buf, 2); } break; default: if(l < 256) { unsigned char buf[3]; buf[0] = 0xc7; buf[1] = (unsigned char)l; buf[2] = type; msgpack_pack_append_buffer(x, buf, 3); } else if(l < 65536) { unsigned char buf[4]; buf[0] = 0xc8; _msgpack_store16(&buf[1], l); buf[3] = type; msgpack_pack_append_buffer(x, buf, 4); } else { unsigned char buf[6]; buf[0] = 0xc9; _msgpack_store32(&buf[1], l); buf[5] = type; msgpack_pack_append_buffer(x, buf, 6); } break; } } msgpack_pack_inline_func(_ext_body)(msgpack_pack_user x, const void* b, size_t l) { msgpack_pack_append_buffer(x, (const unsigned char*)b, l); } #undef msgpack_pack_inline_func #undef msgpack_pack_user #undef msgpack_pack_append_buffer #undef TAKE8_8 #undef TAKE8_16 #undef TAKE8_32 #undef TAKE8_64 #undef msgpack_pack_real_uint8 #undef msgpack_pack_real_uint16 #undef msgpack_pack_real_uint32 #undef msgpack_pack_real_uint64 #undef msgpack_pack_real_int8 #undef msgpack_pack_real_int16 #undef msgpack_pack_real_int32 #undef msgpack_pack_real_int64 predef.h100644001750001750 76214212656165 21215 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_H #define MSGPACK_PREDEF_H #include #include #include #include #include #include #include #endif architecture.h100644001750001750 213014212656165 23706 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_H #define MSGPACK_PREDEF_ARCHITECTURE_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /*#include */ #endif alpha.h100644001750001750 321114212656165 24774 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_ALPHA_H #define MSGPACK_PREDEF_ARCHITECTURE_ALPHA_H #include #include /*` [heading `MSGPACK_ARCH_ALPHA`] [@http://en.wikipedia.org/wiki/DEC_Alpha DEC Alpha] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__alpha__`] [__predef_detection__]] [[`__alpha`] [__predef_detection__]] [[`_M_ALPHA`] [__predef_detection__]] [[`__alpha_ev4__`] [4.0.0]] [[`__alpha_ev5__`] [5.0.0]] [[`__alpha_ev6__`] [6.0.0]] ] */ #define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__alpha__) || defined(__alpha) || \ defined(_M_ALPHA) # undef MSGPACK_ARCH_ALPHA # if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev4__) # define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(4,0,0) # endif # if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev5__) # define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(5,0,0) # endif # if !defined(MSGPACK_ARCH_ALPHA) && defined(__alpha_ev6__) # define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER(6,0,0) # endif # if !defined(MSGPACK_ARCH_ALPHA) # define MSGPACK_ARCH_ALPHA MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_ALPHA # define MSGPACK_ARCH_ALPHA_AVAILABLE #endif #define MSGPACK_ARCH_ALPHA_NAME "DEC Alpha" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_ALPHA,MSGPACK_ARCH_ALPHA_NAME) #endif arm.h100644001750001750 411714212656165 24474 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Copyright Franz Detro 2014 Copyright (c) Microsoft Corporation 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_ARM_H #define MSGPACK_PREDEF_ARCHITECTURE_ARM_H #include #include /*` [heading `MSGPACK_ARCH_ARM`] [@http://en.wikipedia.org/wiki/ARM_architecture ARM] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__arm__`] [__predef_detection__]] [[`__arm64`] [__predef_detection__]] [[`__thumb__`] [__predef_detection__]] [[`__TARGET_ARCH_ARM`] [__predef_detection__]] [[`__TARGET_ARCH_THUMB`] [__predef_detection__]] [[`_M_ARM`] [__predef_detection__]] [[`__arm64`] [8.0.0]] [[`__TARGET_ARCH_ARM`] [V.0.0]] [[`__TARGET_ARCH_THUMB`] [V.0.0]] [[`_M_ARM`] [V.0.0]] ] */ #define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__arm__) || defined(__arm64) || defined(__thumb__) || \ defined(__TARGET_ARCH_ARM) || defined(__TARGET_ARCH_THUMB) || \ defined(_M_ARM) # undef MSGPACK_ARCH_ARM # if !defined(MSGPACK_ARCH_ARM) && defined(__arm64) # define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(8,0,0) # endif # if !defined(MSGPACK_ARCH_ARM) && defined(__TARGET_ARCH_ARM) # define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(__TARGET_ARCH_ARM,0,0) # endif # if !defined(MSGPACK_ARCH_ARM) && defined(__TARGET_ARCH_THUMB) # define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(__TARGET_ARCH_THUMB,0,0) # endif # if !defined(MSGPACK_ARCH_ARM) && defined(_M_ARM) # define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER(_M_ARM,0,0) # endif # if !defined(MSGPACK_ARCH_ARM) # define MSGPACK_ARCH_ARM MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_ARM # define MSGPACK_ARCH_ARM_AVAILABLE #endif #define MSGPACK_ARCH_ARM_NAME "ARM" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_ARM,MSGPACK_ARCH_ARM_NAME) #endif blackfin.h100644001750001750 222014212656165 25457 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_BLACKFIN_H #define MSGPACK_PREDEF_ARCHITECTURE_BLACKFIN_H #include #include /*` [heading `MSGPACK_ARCH_BLACKFIN`] Blackfin Processors from Analog Devices. [table [[__predef_symbol__] [__predef_version__]] [[`__bfin__`] [__predef_detection__]] [[`__BFIN__`] [__predef_detection__]] [[`bfin`] [__predef_detection__]] [[`BFIN`] [__predef_detection__]] ] */ #define MSGPACK_ARCH_BLACKFIN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__bfin__) || defined(__BFIN__) || \ defined(bfin) || defined(BFIN) # undef MSGPACK_ARCH_BLACKFIN # define MSGPACK_ARCH_BLACKFIN MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_ARCH_BLACKFIN # define MSGPACK_ARCH_BLACKFIN_AVAILABLE #endif #define MSGPACK_ARCH_BLACKFIN_NAME "Blackfin" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_BLACKFIN,MSGPACK_ARCH_BLACKFIN_NAME) #endif convex.h100644001750001750 361114212656165 25215 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2011-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_CONVEX_H #define MSGPACK_PREDEF_ARCHITECTURE_CONVEX_H #include #include /*` [heading `MSGPACK_ARCH_CONVEX`] [@http://en.wikipedia.org/wiki/Convex_Computer Convex Computer] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__convex__`] [__predef_detection__]] [[`__convex_c1__`] [1.0.0]] [[`__convex_c2__`] [2.0.0]] [[`__convex_c32__`] [3.2.0]] [[`__convex_c34__`] [3.4.0]] [[`__convex_c38__`] [3.8.0]] ] */ #define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__convex__) # undef MSGPACK_ARCH_CONVEX # if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c1__) # define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(1,0,0) # endif # if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c2__) # define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(2,0,0) # endif # if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c32__) # define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,2,0) # endif # if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c34__) # define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,4,0) # endif # if !defined(MSGPACK_ARCH_CONVEX) && defined(__convex_c38__) # define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER(3,8,0) # endif # if !defined(MSGPACK_ARCH_CONVEX) # define MSGPACK_ARCH_CONVEX MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_CONVEX # define MSGPACK_ARCH_CONVEX_AVAILABLE #endif #define MSGPACK_ARCH_CONVEX_NAME "Convex Computer" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_CONVEX,MSGPACK_ARCH_CONVEX_NAME) #endif ia64.h100644001750001750 243114212656165 24455 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_IA64_H #define MSGPACK_PREDEF_ARCHITECTURE_IA64_H #include #include /*` [heading `MSGPACK_ARCH_IA64`] [@http://en.wikipedia.org/wiki/Ia64 Intel Itanium 64] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__ia64__`] [__predef_detection__]] [[`_IA64`] [__predef_detection__]] [[`__IA64__`] [__predef_detection__]] [[`__ia64`] [__predef_detection__]] [[`_M_IA64`] [__predef_detection__]] [[`__itanium__`] [__predef_detection__]] ] */ #define MSGPACK_ARCH_IA64 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__ia64__) || defined(_IA64) || \ defined(__IA64__) || defined(__ia64) || \ defined(_M_IA64) || defined(__itanium__) # undef MSGPACK_ARCH_IA64 # define MSGPACK_ARCH_IA64 MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_ARCH_IA64 # define MSGPACK_ARCH_IA64_AVAILABLE #endif #define MSGPACK_ARCH_IA64_NAME "Intel Itanium 64" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_IA64,MSGPACK_ARCH_IA64_NAME) #endif m68k.h100644001750001750 513114212656165 24477 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_M68K_H #define MSGPACK_PREDEF_ARCHITECTURE_M68K_H #include #include /*` [heading `MSGPACK_ARCH_M68K`] [@http://en.wikipedia.org/wiki/M68k Motorola 68k] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__m68k__`] [__predef_detection__]] [[`M68000`] [__predef_detection__]] [[`__mc68060__`] [6.0.0]] [[`mc68060`] [6.0.0]] [[`__mc68060`] [6.0.0]] [[`__mc68040__`] [4.0.0]] [[`mc68040`] [4.0.0]] [[`__mc68040`] [4.0.0]] [[`__mc68030__`] [3.0.0]] [[`mc68030`] [3.0.0]] [[`__mc68030`] [3.0.0]] [[`__mc68020__`] [2.0.0]] [[`mc68020`] [2.0.0]] [[`__mc68020`] [2.0.0]] [[`__mc68010__`] [1.0.0]] [[`mc68010`] [1.0.0]] [[`__mc68010`] [1.0.0]] [[`__mc68000__`] [0.0.1]] [[`mc68000`] [0.0.1]] [[`__mc68000`] [0.0.1]] ] */ #define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__m68k__) || defined(M68000) # undef MSGPACK_ARCH_M68K # if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68060__) || defined(mc68060) || defined(__mc68060)) # define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(6,0,0) # endif # if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68040__) || defined(mc68040) || defined(__mc68040)) # define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(4,0,0) # endif # if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68030__) || defined(mc68030) || defined(__mc68030)) # define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(3,0,0) # endif # if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68020__) || defined(mc68020) || defined(__mc68020)) # define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(2,0,0) # endif # if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68010__) || defined(mc68010) || defined(__mc68010)) # define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER(1,0,0) # endif # if !defined(MSGPACK_ARCH_M68K) && (defined(__mc68000__) || defined(mc68000) || defined(__mc68000)) # define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_AVAILABLE # endif # if !defined(MSGPACK_ARCH_M68K) # define MSGPACK_ARCH_M68K MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_M68K # define MSGPACK_ARCH_M68K_AVAILABLE #endif #define MSGPACK_ARCH_M68K_NAME "Motorola 68k" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_M68K,MSGPACK_ARCH_M68K_NAME) #endif mips.h100644001750001750 432514212656165 24666 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_MIPS_H #define MSGPACK_PREDEF_ARCHITECTURE_MIPS_H #include #include /*` [heading `MSGPACK_ARCH_MIPS`] [@http://en.wikipedia.org/wiki/MIPS_architecture MIPS] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__mips__`] [__predef_detection__]] [[`__mips`] [__predef_detection__]] [[`__MIPS__`] [__predef_detection__]] [[`__mips`] [V.0.0]] [[`_MIPS_ISA_MIPS1`] [1.0.0]] [[`_R3000`] [1.0.0]] [[`_MIPS_ISA_MIPS2`] [2.0.0]] [[`__MIPS_ISA2__`] [2.0.0]] [[`_R4000`] [2.0.0]] [[`_MIPS_ISA_MIPS3`] [3.0.0]] [[`__MIPS_ISA3__`] [3.0.0]] [[`_MIPS_ISA_MIPS4`] [4.0.0]] [[`__MIPS_ISA4__`] [4.0.0]] ] */ #define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__mips__) || defined(__mips) || \ defined(__MIPS__) # undef MSGPACK_ARCH_MIPS # if !defined(MSGPACK_ARCH_MIPS) && (defined(__mips)) # define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(__mips,0,0) # endif # if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS1) || defined(_R3000)) # define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(1,0,0) # endif # if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS2) || defined(__MIPS_ISA2__) || defined(_R4000)) # define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(2,0,0) # endif # if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS3) || defined(__MIPS_ISA3__)) # define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(3,0,0) # endif # if !defined(MSGPACK_ARCH_MIPS) && (defined(_MIPS_ISA_MIPS4) || defined(__MIPS_ISA4__)) # define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER(4,0,0) # endif # if !defined(MSGPACK_ARCH_MIPS) # define MSGPACK_ARCH_MIPS MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_MIPS # define MSGPACK_ARCH_MIPS_AVAILABLE #endif #define MSGPACK_ARCH_MIPS_NAME "MIPS" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_MIPS,MSGPACK_ARCH_MIPS_NAME) #endif parisc.h100644001750001750 363114212656165 25176 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_PARISC_H #define MSGPACK_PREDEF_ARCHITECTURE_PARISC_H #include #include /*` [heading `MSGPACK_ARCH_PARISK`] [@http://en.wikipedia.org/wiki/PA-RISC_family HP/PA RISC] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__hppa__`] [__predef_detection__]] [[`__hppa`] [__predef_detection__]] [[`__HPPA__`] [__predef_detection__]] [[`_PA_RISC1_0`] [1.0.0]] [[`_PA_RISC1_1`] [1.1.0]] [[`__HPPA11__`] [1.1.0]] [[`__PA7100__`] [1.1.0]] [[`_PA_RISC2_0`] [2.0.0]] [[`__RISC2_0__`] [2.0.0]] [[`__HPPA20__`] [2.0.0]] [[`__PA8000__`] [2.0.0]] ] */ #define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__hppa__) || defined(__hppa) || defined(__HPPA__) # undef MSGPACK_ARCH_PARISC # if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC1_0)) # define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(1,0,0) # endif # if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC1_1) || defined(__HPPA11__) || defined(__PA7100__)) # define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(1,1,0) # endif # if !defined(MSGPACK_ARCH_PARISC) && (defined(_PA_RISC2_0) || defined(__RISC2_0__) || defined(__HPPA20__) || defined(__PA8000__)) # define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER(2,0,0) # endif # if !defined(MSGPACK_ARCH_PARISC) # define MSGPACK_ARCH_PARISC MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_PARISC # define MSGPACK_ARCH_PARISC_AVAILABLE #endif #define MSGPACK_ARCH_PARISC_NAME "HP/PA RISC" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PARISC,MSGPACK_ARCH_PARISC_NAME) #endif ppc.h100644001750001750 423014212656165 24473 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_PPC_H #define MSGPACK_PREDEF_ARCHITECTURE_PPC_H #include #include /*` [heading `MSGPACK_ARCH_PPC`] [@http://en.wikipedia.org/wiki/PowerPC PowerPC] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__powerpc`] [__predef_detection__]] [[`__powerpc__`] [__predef_detection__]] [[`__POWERPC__`] [__predef_detection__]] [[`__ppc__`] [__predef_detection__]] [[`_M_PPC`] [__predef_detection__]] [[`_ARCH_PPC`] [__predef_detection__]] [[`__PPCGECKO__`] [__predef_detection__]] [[`__PPCBROADWAY__`] [__predef_detection__]] [[`_XENON`] [__predef_detection__]] [[`__ppc601__`] [6.1.0]] [[`_ARCH_601`] [6.1.0]] [[`__ppc603__`] [6.3.0]] [[`_ARCH_603`] [6.3.0]] [[`__ppc604__`] [6.4.0]] [[`__ppc604__`] [6.4.0]] ] */ #define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__powerpc) || defined(__powerpc__) || \ defined(__POWERPC__) || defined(__ppc__) || \ defined(_M_PPC) || defined(_ARCH_PPC) || \ defined(__PPCGECKO__) || defined(__PPCBROADWAY__) || \ defined(_XENON) # undef MSGPACK_ARCH_PPC # if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc601__) || defined(_ARCH_601)) # define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,1,0) # endif # if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc603__) || defined(_ARCH_603)) # define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,3,0) # endif # if !defined (MSGPACK_ARCH_PPC) && (defined(__ppc604__) || defined(__ppc604__)) # define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER(6,4,0) # endif # if !defined (MSGPACK_ARCH_PPC) # define MSGPACK_ARCH_PPC MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_PPC # define MSGPACK_ARCH_PPC_AVAILABLE #endif #define MSGPACK_ARCH_PPC_NAME "PowerPC" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PPC,MSGPACK_ARCH_PPC_NAME) #endif pyramid.h100644001750001750 170314212656165 25360 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2011-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_PYRAMID_H #define MSGPACK_PREDEF_ARCHITECTURE_PYRAMID_H #include #include /*` [heading `MSGPACK_ARCH_PYRAMID`] Pyramid 9810 architecture. [table [[__predef_symbol__] [__predef_version__]] [[`pyr`] [__predef_detection__]] ] */ #define MSGPACK_ARCH_PYRAMID MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(pyr) # undef MSGPACK_ARCH_PYRAMID # define MSGPACK_ARCH_PYRAMID MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_ARCH_PYRAMID # define MSGPACK_ARCH_PYRAMID_AVAILABLE #endif #define MSGPACK_ARCH_PYRAMID_NAME "Pyramid 9810" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_PYRAMID,MSGPACK_ARCH_PYRAMID_NAME) #endif rs6k.h100644001750001750 262214212656165 24601 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_RS6K_H #define MSGPACK_PREDEF_ARCHITECTURE_RS6K_H #include #include /*` [heading `MSGPACK_ARCH_RS6000`] [@http://en.wikipedia.org/wiki/RS/6000 RS/6000] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__THW_RS6000`] [__predef_detection__]] [[`_IBMR2`] [__predef_detection__]] [[`_POWER`] [__predef_detection__]] [[`_ARCH_PWR`] [__predef_detection__]] [[`_ARCH_PWR2`] [__predef_detection__]] ] */ #define MSGPACK_ARCH_RS6000 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__THW_RS6000) || defined(_IBMR2) || \ defined(_POWER) || defined(_ARCH_PWR) || \ defined(_ARCH_PWR2) # undef MSGPACK_ARCH_RS6000 # define MSGPACK_ARCH_RS6000 MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_ARCH_RS6000 # define MSGPACK_ARCH_RS6000_AVAILABLE #endif #define MSGPACK_ARCH_RS6000_NAME "RS/6000" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_RS6000,MSGPACK_ARCH_RS6000_NAME) #define MSGPACK_ARCH_PWR MSGPACK_ARCH_RS6000 #if MSGPACK_ARCH_PWR # define MSGPACK_ARCH_PWR_AVAILABLE #endif #define MSGPACK_ARCH_PWR_NAME MSGPACK_ARCH_RS6000_NAME #endif sparc.h100644001750001750 260114212656165 25021 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_SPARC_H #define MSGPACK_PREDEF_ARCHITECTURE_SPARC_H #include #include /*` [heading `MSGPACK_ARCH_SPARC`] [@http://en.wikipedia.org/wiki/SPARC SPARC] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__sparc__`] [__predef_detection__]] [[`__sparc`] [__predef_detection__]] [[`__sparcv9`] [9.0.0]] [[`__sparcv8`] [8.0.0]] ] */ #define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__sparc__) || defined(__sparc) # undef MSGPACK_ARCH_SPARC # if !defined(MSGPACK_ARCH_SPARC) && defined(__sparcv9) # define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER(9,0,0) # endif # if !defined(MSGPACK_ARCH_SPARC) && defined(__sparcv8) # define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER(8,0,0) # endif # if !defined(MSGPACK_ARCH_SPARC) # define MSGPACK_ARCH_SPARC MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_SPARC # define MSGPACK_ARCH_SPARC_AVAILABLE #endif #define MSGPACK_ARCH_SPARC_NAME "SPARC" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SPARC,MSGPACK_ARCH_SPARC_NAME) #endif superh.h100644001750001750 350414212656165 25222 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_SUPERH_H #define MSGPACK_PREDEF_ARCHITECTURE_SUPERH_H #include #include /*` [heading `MSGPACK_ARCH_SH`] [@http://en.wikipedia.org/wiki/SuperH SuperH] architecture: If available versions \[1-5\] are specifically detected. [table [[__predef_symbol__] [__predef_version__]] [[`__sh__`] [__predef_detection__]] [[`__SH5__`] [5.0.0]] [[`__SH4__`] [4.0.0]] [[`__sh3__`] [3.0.0]] [[`__SH3__`] [3.0.0]] [[`__sh2__`] [2.0.0]] [[`__sh1__`] [1.0.0]] ] */ #define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__sh__) # undef MSGPACK_ARCH_SH # if !defined(MSGPACK_ARCH_SH) && (defined(__SH5__)) # define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(5,0,0) # endif # if !defined(MSGPACK_ARCH_SH) && (defined(__SH4__)) # define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(4,0,0) # endif # if !defined(MSGPACK_ARCH_SH) && (defined(__sh3__) || defined(__SH3__)) # define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(3,0,0) # endif # if !defined(MSGPACK_ARCH_SH) && (defined(__sh2__)) # define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(2,0,0) # endif # if !defined(MSGPACK_ARCH_SH) && (defined(__sh1__)) # define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER(1,0,0) # endif # if !defined(MSGPACK_ARCH_SH) # define MSGPACK_ARCH_SH MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_SH # define MSGPACK_ARCH_SH_AVAILABLE #endif #define MSGPACK_ARCH_SH_NAME "SuperH" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SH,MSGPACK_ARCH_SH_NAME) #endif sys370.h100644001750001750 205414212656165 24763 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_SYS370_H #define MSGPACK_PREDEF_ARCHITECTURE_SYS370_H #include #include /*` [heading `MSGPACK_ARCH_SYS370`] [@http://en.wikipedia.org/wiki/System/370 System/370] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__370__`] [__predef_detection__]] [[`__THW_370__`] [__predef_detection__]] ] */ #define MSGPACK_ARCH_SYS370 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__370__) || defined(__THW_370__) # undef MSGPACK_ARCH_SYS370 # define MSGPACK_ARCH_SYS370 MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_ARCH_SYS370 # define MSGPACK_ARCH_SYS370_AVAILABLE #endif #define MSGPACK_ARCH_SYS370_NAME "System/370" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SYS370,MSGPACK_ARCH_SYS370_NAME) #endif sys390.h100644001750001750 205214212656165 24763 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_SYS390_H #define MSGPACK_PREDEF_ARCHITECTURE_SYS390_H #include #include /*` [heading `MSGPACK_ARCH_SYS390`] [@http://en.wikipedia.org/wiki/System/390 System/390] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__s390__`] [__predef_detection__]] [[`__s390x__`] [__predef_detection__]] ] */ #define MSGPACK_ARCH_SYS390 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__s390__) || defined(__s390x__) # undef MSGPACK_ARCH_SYS390 # define MSGPACK_ARCH_SYS390 MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_ARCH_SYS390 # define MSGPACK_ARCH_SYS390_AVAILABLE #endif #define MSGPACK_ARCH_SYS390_NAME "System/390" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_SYS390,MSGPACK_ARCH_SYS390_NAME) #endif x86.h100644001750001750 175214212656165 24344 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_H #define MSGPACK_PREDEF_ARCHITECTURE_X86_H #include #include /*` [heading `MSGPACK_ARCH_X86`] [@http://en.wikipedia.org/wiki/X86 Intel x86] architecture. This is a category to indicate that either `MSGPACK_ARCH_X86_32` or `MSGPACK_ARCH_X86_64` is detected. */ #define MSGPACK_ARCH_X86 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if MSGPACK_ARCH_X86_32 || MSGPACK_ARCH_X86_64 # undef MSGPACK_ARCH_X86 # define MSGPACK_ARCH_X86 MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_ARCH_X86 # define MSGPACK_ARCH_X86_AVAILABLE #endif #define MSGPACK_ARCH_X86_NAME "Intel x86" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86,MSGPACK_ARCH_X86_NAME) #endif 32.h100644001750001750 532014212656165 24563 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/x86/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_32_H #define MSGPACK_PREDEF_ARCHITECTURE_X86_32_H #include #include /*` [heading `MSGPACK_ARCH_X86_32`] [@http://en.wikipedia.org/wiki/X86 Intel x86] architecture: If available versions \[3-6\] are specifically detected. [table [[__predef_symbol__] [__predef_version__]] [[`i386`] [__predef_detection__]] [[`__i386__`] [__predef_detection__]] [[`__i486__`] [__predef_detection__]] [[`__i586__`] [__predef_detection__]] [[`__i686__`] [__predef_detection__]] [[`__i386`] [__predef_detection__]] [[`_M_IX86`] [__predef_detection__]] [[`_X86_`] [__predef_detection__]] [[`__THW_INTEL__`] [__predef_detection__]] [[`__I86__`] [__predef_detection__]] [[`__INTEL__`] [__predef_detection__]] [[`__I86__`] [V.0.0]] [[`_M_IX86`] [V.0.0]] [[`__i686__`] [6.0.0]] [[`__i586__`] [5.0.0]] [[`__i486__`] [4.0.0]] [[`__i386__`] [3.0.0]] ] */ #define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(i386) || defined(__i386__) || \ defined(__i486__) || defined(__i586__) || \ defined(__i686__) || defined(__i386) || \ defined(_M_IX86) || defined(_X86_) || \ defined(__THW_INTEL__) || defined(__I86__) || \ defined(__INTEL__) # undef MSGPACK_ARCH_X86_32 # if !defined(MSGPACK_ARCH_X86_32) && defined(__I86__) # define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(__I86__,0,0) # endif # if !defined(MSGPACK_ARCH_X86_32) && defined(_M_IX86) # define MSGPACK_ARCH_X86_32 MSGPACK_PREDEF_MAKE_10_VV00(_M_IX86) # endif # if !defined(MSGPACK_ARCH_X86_32) && defined(__i686__) # define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(6,0,0) # endif # if !defined(MSGPACK_ARCH_X86_32) && defined(__i586__) # define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(5,0,0) # endif # if !defined(MSGPACK_ARCH_X86_32) && defined(__i486__) # define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(4,0,0) # endif # if !defined(MSGPACK_ARCH_X86_32) && defined(__i386__) # define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER(3,0,0) # endif # if !defined(MSGPACK_ARCH_X86_32) # define MSGPACK_ARCH_X86_32 MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_ARCH_X86_32 # define MSGPACK_ARCH_X86_32_AVAILABLE #endif #define MSGPACK_ARCH_X86_32_NAME "Intel x86-32" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86_32,MSGPACK_ARCH_X86_32_NAME) #include #endif 64.h100644001750001750 243314212656165 24572 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/x86/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_X86_64_H #define MSGPACK_PREDEF_ARCHITECTURE_X86_64_H #include #include /*` [heading `MSGPACK_ARCH_X86_64`] [@http://en.wikipedia.org/wiki/Ia64 Intel IA-64] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__x86_64`] [__predef_detection__]] [[`__x86_64__`] [__predef_detection__]] [[`__amd64__`] [__predef_detection__]] [[`__amd64`] [__predef_detection__]] [[`_M_X64`] [__predef_detection__]] ] */ #define MSGPACK_ARCH_X86_64 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__x86_64) || defined(__x86_64__) || \ defined(__amd64__) || defined(__amd64) || \ defined(_M_X64) # undef MSGPACK_ARCH_X86_64 # define MSGPACK_ARCH_X86_64 MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_ARCH_X86_64 # define MSGPACK_ARCH_X86_64_AVAILABLE #endif #define MSGPACK_ARCH_X86_64_NAME "Intel x86-64" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_X86_64,MSGPACK_ARCH_X86_64_NAME) #include #endif z.h100644001750001750 171214212656165 24164 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/architecture/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ARCHITECTURE_Z_H #define MSGPACK_PREDEF_ARCHITECTURE_Z_H #include #include /*` [heading `MSGPACK_ARCH_Z`] [@http://en.wikipedia.org/wiki/Z/Architecture z/Architecture] architecture. [table [[__predef_symbol__] [__predef_version__]] [[`__SYSC_ZARCH__`] [__predef_detection__]] ] */ #define MSGPACK_ARCH_Z MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__SYSC_ZARCH__) # undef MSGPACK_ARCH_Z # define MSGPACK_ARCH_Z MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_ARCH_Z # define MSGPACK_ARCH_Z_AVAILABLE #endif #define MSGPACK_ARCH_Z_NAME "z/Architecture" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ARCH_Z,MSGPACK_ARCH_Z_NAME) #endif compiler.h100644001750001750 300014212656165 23033 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_H #define MSGPACK_PREDEF_COMPILER_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif borland.h100644001750001750 357614212656165 24476 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_BORLAND_H #define MSGPACK_PREDEF_COMPILER_BORLAND_H #include #include /*` [heading `MSGPACK_COMP_BORLAND`] [@http://en.wikipedia.org/wiki/C_plus_plus_builder Borland C++] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__BORLANDC__`] [__predef_detection__]] [[`__CODEGEARC__`] [__predef_detection__]] [[`__BORLANDC__`] [V.R.P]] [[`__CODEGEARC__`] [V.R.P]] ] */ #define MSGPACK_COMP_BORLAND MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__BORLANDC__) || defined(__CODEGEARC__) # if !defined(MSGPACK_COMP_BORLAND_DETECTION) && (defined(__CODEGEARC__)) # define MSGPACK_COMP_BORLAND_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRP(__CODEGEARC__) # endif # if !defined(MSGPACK_COMP_BORLAND_DETECTION) # define MSGPACK_COMP_BORLAND_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRP(__BORLANDC__) # endif #endif #ifdef MSGPACK_COMP_BORLAND_DETECTION # define MSGPACK_COMP_BORLAND_AVAILABLE # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_BORLAND_EMULATED MSGPACK_COMP_BORLAND_DETECTION # else # undef MSGPACK_COMP_BORLAND # define MSGPACK_COMP_BORLAND MSGPACK_COMP_BORLAND_DETECTION # endif # include #endif #define MSGPACK_COMP_BORLAND_NAME "Borland C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_BORLAND,MSGPACK_COMP_BORLAND_NAME) #ifdef MSGPACK_COMP_BORLAND_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_BORLAND_EMULATED,MSGPACK_COMP_BORLAND_NAME) #endif #endif clang.h100644001750001750 306514212656165 24132 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_CLANG_H #define MSGPACK_PREDEF_COMPILER_CLANG_H #include #include /*` [heading `MSGPACK_COMP_CLANG`] [@http://en.wikipedia.org/wiki/Clang Clang] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__clang__`] [__predef_detection__]] [[`__clang_major__`, `__clang_minor__`, `__clang_patchlevel__`] [V.R.P]] ] */ #define MSGPACK_COMP_CLANG MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__clang__) # define MSGPACK_COMP_CLANG_DETECTION MSGPACK_VERSION_NUMBER(__clang_major__,__clang_minor__,__clang_patchlevel__) #endif #ifdef MSGPACK_COMP_CLANG_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_CLANG_EMULATED MSGPACK_COMP_CLANG_DETECTION # else # undef MSGPACK_COMP_CLANG # define MSGPACK_COMP_CLANG MSGPACK_COMP_CLANG_DETECTION # endif # define MSGPACK_COMP_CLANG_AVAILABLE # include #endif #define MSGPACK_COMP_CLANG_NAME "Clang" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_CLANG,MSGPACK_COMP_CLANG_NAME) #ifdef MSGPACK_COMP_CLANG_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_CLANG_EMULATED,MSGPACK_COMP_CLANG_NAME) #endif #endif comeau.h100644001750001750 331314212656165 24313 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_COMEAU_H #define MSGPACK_PREDEF_COMPILER_COMEAU_H #include #include #define MSGPACK_COMP_COMO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE /*` [heading `MSGPACK_COMP_COMO`] [@http://en.wikipedia.org/wiki/Comeau_C/C%2B%2B Comeau C++] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__COMO__`] [__predef_detection__]] [[`__COMO_VERSION__`] [V.R.P]] ] */ #if defined(__COMO__) # if !defined(MSGPACK_COMP_COMO_DETECTION) && defined(__CONO_VERSION__) # define MSGPACK_COMP_COMO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__COMO_VERSION__) # endif # if !defined(MSGPACK_COMP_COMO_DETECTION) # define MSGPACK_COMP_COMO_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_COMO_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_COMO_EMULATED MSGPACK_COMP_COMO_DETECTION # else # undef MSGPACK_COMP_COMO # define MSGPACK_COMP_COMO MSGPACK_COMP_COMO_DETECTION # endif # define MSGPACK_COMP_COMO_AVAILABLE # include #endif #define MSGPACK_COMP_COMO_NAME "Comeau C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_COMO,MSGPACK_COMP_COMO_NAME) #ifdef MSGPACK_COMP_COMO_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_COMO_EMULATED,MSGPACK_COMP_COMO_NAME) #endif #endif compaq.h100644001750001750 367514212656165 24335 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_COMPAQ_H #define MSGPACK_PREDEF_COMPILER_COMPAQ_H #include #include /*` [heading `MSGPACK_COMP_DEC`] [@http://www.openvms.compaq.com/openvms/brochures/deccplus/ Compaq C/C++] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__DECCXX`] [__predef_detection__]] [[`__DECC`] [__predef_detection__]] [[`__DECCXX_VER`] [V.R.P]] [[`__DECC_VER`] [V.R.P]] ] */ #define MSGPACK_COMP_DEC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__DECC) || defined(__DECCXX) # if !defined(MSGPACK_COMP_DEC_DETECTION) && defined(__DECCXX_VER) # define MSGPACK_COMP_DEC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__DECCXX_VER) # endif # if !defined(MSGPACK_COMP_DEC_DETECTION) && defined(__DECC_VER) # define MSGPACK_COMP_DEC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__DECC_VER) # endif # if !defined(MSGPACK_COMP_DEC_DETECTION) # define MSGPACK_COM_DEC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_DEC_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_DEC_EMULATED MSGPACK_COMP_DEC_DETECTION # else # undef MSGPACK_COMP_DEC # define MSGPACK_COMP_DEC MSGPACK_COMP_DEC_DETECTION # endif # define MSGPACK_COMP_DEC_AVAILABLE # include #endif #define MSGPACK_COMP_DEC_NAME "Compaq C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DEC,MSGPACK_COMP_DEC_NAME) #ifdef MSGPACK_COMP_DEC_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DEC_EMULATED,MSGPACK_COMP_DEC_NAME) #endif #endif diab.h100644001750001750 301214212656165 23735 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_DIAB_H #define MSGPACK_PREDEF_COMPILER_DIAB_H #include #include /*` [heading `MSGPACK_COMP_DIAB`] [@http://www.windriver.com/products/development_suite/wind_river_compiler/ Diab C/C++] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__DCC__`] [__predef_detection__]] [[`__VERSION_NUMBER__`] [V.R.P]] ] */ #define MSGPACK_COMP_DIAB MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__DCC__) # define MSGPACK_COMP_DIAB_DETECTION MSGPACK_PREDEF_MAKE_10_VRPP(__VERSION_NUMBER__) #endif #ifdef MSGPACK_COMP_DIAB_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_DIAB_EMULATED MSGPACK_COMP_DIAB_DETECTION # else # undef MSGPACK_COMP_DIAB # define MSGPACK_COMP_DIAB MSGPACK_COMP_DIAB_DETECTION # endif # define MSGPACK_COMP_DIAB_AVAILABLE # include #endif #define MSGPACK_COMP_DIAB_NAME "Diab C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DIAB,MSGPACK_COMP_DIAB_NAME) #ifdef MSGPACK_COMP_DIAB_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DIAB_EMULATED,MSGPACK_COMP_DIAB_NAME) #endif #endif digitalmars.h100644001750001750 272614212656165 25351 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_DIGITALMARS_H #define MSGPACK_PREDEF_COMPILER_DIGITALMARS_H #include #include /*` [heading `MSGPACK_COMP_DMC`] [@http://en.wikipedia.org/wiki/Digital_Mars Digital Mars] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__DMC__`] [__predef_detection__]] [[`__DMC__`] [V.R.P]] ] */ #define MSGPACK_COMP_DMC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__DMC__) # define MSGPACK_COMP_DMC_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__DMC__) #endif #ifdef MSGPACK_COMP_DMC_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_DMC_EMULATED MSGPACK_COMP_DMC_DETECTION # else # undef MSGPACK_COMP_DMC # define MSGPACK_COMP_DMC MSGPACK_COMP_DMC_DETECTION # endif # define MSGPACK_COMP_DMC_AVAILABLE # include #endif #define MSGPACK_COMP_DMC_NAME "Digital Mars" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DMC,MSGPACK_COMP_DMC_NAME) #ifdef MSGPACK_COMP_DMC_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_DMC_EMULATED,MSGPACK_COMP_DMC_NAME) #endif #endif dignus.h100644001750001750 275014212656165 24337 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_DIGNUS_H #define MSGPACK_PREDEF_COMPILER_DIGNUS_H #include #include /*` [heading `MSGPACK_COMP_SYSC`] [@http://www.dignus.com/dcxx/ Dignus Systems/C++] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__SYSC__`] [__predef_detection__]] [[`__SYSC_VER__`] [V.R.P]] ] */ #define MSGPACK_COMP_SYSC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__SYSC__) # define MSGPACK_COMP_SYSC_DETECTION MSGPACK_PREDEF_MAKE_10_VRRPP(__SYSC_VER__) #endif #ifdef MSGPACK_COMP_SYSC_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_SYSC_EMULATED MSGPACK_COMP_SYSC_DETECTION # else # undef MSGPACK_COMP_SYSC # define MSGPACK_COMP_SYSC MSGPACK_COMP_SYSC_DETECTION # endif # define MSGPACK_COMP_SYSC_AVAILABLE # include #endif #define MSGPACK_COMP_SYSC_NAME "Dignus Systems/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SYSC,MSGPACK_COMP_SYSC_NAME) #ifdef MSGPACK_COMP_SYSC_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SYSC_EMULATED,MSGPACK_COMP_SYSC_NAME) #endif #endif edg.h100644001750001750 274514212656165 23611 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_EDG_H #define MSGPACK_PREDEF_COMPILER_EDG_H #include #include /*` [heading `MSGPACK_COMP_EDG`] [@http://en.wikipedia.org/wiki/Edison_Design_Group EDG C++ Frontend] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__EDG__`] [__predef_detection__]] [[`__EDG_VERSION__`] [V.R.0]] ] */ #define MSGPACK_COMP_EDG MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__EDG__) # define MSGPACK_COMP_EDG_DETECTION MSGPACK_PREDEF_MAKE_10_VRR(__EDG_VERSION__) #endif #ifdef MSGPACK_COMP_EDG_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_EDG_EMULATED MSGPACK_COMP_EDG_DETECTION # else # undef MSGPACK_COMP_EDG # define MSGPACK_COMP_EDG MSGPACK_COMP_EDG_DETECTION # endif # define MSGPACK_COMP_EDG_AVAILABLE # include #endif #define MSGPACK_COMP_EDG_NAME "EDG C++ Frontend" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_EDG,MSGPACK_COMP_EDG_NAME) #ifdef MSGPACK_COMP_EDG_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_EDG_EMULATED,MSGPACK_COMP_EDG_NAME) #endif #endif ekopath.h100644001750001750 306714212656165 24503 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_EKOPATH_H #define MSGPACK_PREDEF_COMPILER_EKOPATH_H #include #include /*` [heading `MSGPACK_COMP_PATH`] [@http://en.wikipedia.org/wiki/PathScale EKOpath] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__PATHCC__`] [__predef_detection__]] [[`__PATHCC__`, `__PATHCC_MINOR__`, `__PATHCC_PATCHLEVEL__`] [V.R.P]] ] */ #define MSGPACK_COMP_PATH MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__PATHCC__) # define MSGPACK_COMP_PATH_DETECTION \ MSGPACK_VERSION_NUMBER(__PATHCC__,__PATHCC_MINOR__,__PATHCC_PATCHLEVEL__) #endif #ifdef MSGPACK_COMP_PATH_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_PATH_EMULATED MSGPACK_COMP_PATH_DETECTION # else # undef MSGPACK_COMP_PATH # define MSGPACK_COMP_PATH MSGPACK_COMP_PATH_DETECTION # endif # define MSGPACK_COMP_PATH_AVAILABLE # include #endif #define MSGPACK_COMP_PATH_NAME "EKOpath" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PATH,MSGPACK_COMP_PATH_NAME) #ifdef MSGPACK_COMP_PATH_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PATH_EMULATED,MSGPACK_COMP_PATH_NAME) #endif #endif gcc.h100644001750001750 375214212656165 23605 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_GCC_H #define MSGPACK_PREDEF_COMPILER_GCC_H /* Other compilers that emulate this one need to be detected first. */ #include #include #include /*` [heading `MSGPACK_COMP_GNUC`] [@http://en.wikipedia.org/wiki/GNU_Compiler_Collection Gnu GCC C/C++] compiler. Version number available as major, minor, and patch (if available). [table [[__predef_symbol__] [__predef_version__]] [[`__GNUC__`] [__predef_detection__]] [[`__GNUC__`, `__GNUC_MINOR__`, `__GNUC_PATCHLEVEL__`] [V.R.P]] [[`__GNUC__`, `__GNUC_MINOR__`] [V.R.0]] ] */ #define MSGPACK_COMP_GNUC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__GNUC__) # if !defined(MSGPACK_COMP_GNUC_DETECTION) && defined(__GNUC_PATCHLEVEL__) # define MSGPACK_COMP_GNUC_DETECTION \ MSGPACK_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,__GNUC_PATCHLEVEL__) # endif # if !defined(MSGPACK_COMP_GNUC_DETECTION) # define MSGPACK_COMP_GNUC_DETECTION \ MSGPACK_VERSION_NUMBER(__GNUC__,__GNUC_MINOR__,0) # endif #endif #ifdef MSGPACK_COMP_GNUC_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_GNUC_EMULATED MSGPACK_COMP_GNUC_DETECTION # else # undef MSGPACK_COMP_GNUC # define MSGPACK_COMP_GNUC MSGPACK_COMP_GNUC_DETECTION # endif # define MSGPACK_COMP_GNUC_AVAILABLE # include #endif #define MSGPACK_COMP_GNUC_NAME "Gnu GCC C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GNUC,MSGPACK_COMP_GNUC_NAME) #ifdef MSGPACK_COMP_GNUC_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GNUC_EMULATED,MSGPACK_COMP_GNUC_NAME) #endif #endif gcc_xml.h100644001750001750 262314212656165 24461 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_GCC_XML_H #define MSGPACK_PREDEF_COMPILER_GCC_XML_H #include #include /*` [heading `MSGPACK_COMP_GCCXML`] [@http://www.gccxml.org/ GCC XML] compiler. [table [[__predef_symbol__] [__predef_version__]] [[`__GCCXML__`] [__predef_detection__]] ] */ #define MSGPACK_COMP_GCCXML MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__GCCXML__) # define MSGPACK_COMP_GCCXML_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE #endif #ifdef MSGPACK_COMP_GCCXML_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_GCCXML_EMULATED MSGPACK_COMP_GCCXML_DETECTION # else # undef MSGPACK_COMP_GCCXML # define MSGPACK_COMP_GCCXML MSGPACK_COMP_GCCXML_DETECTION # endif # define MSGPACK_COMP_GCCXML_AVAILABLE # include #endif #define MSGPACK_COMP_GCCXML_NAME "GCC XML" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GCCXML,MSGPACK_COMP_GCCXML_NAME) #ifdef MSGPACK_COMP_GCCXML_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GCCXML_EMULATED,MSGPACK_COMP_GCCXML_NAME) #endif #endif greenhills.h100644001750001750 370714212656165 25205 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_GREENHILLS_H #define MSGPACK_PREDEF_COMPILER_GREENHILLS_H #include #include /*` [heading `MSGPACK_COMP_GHS`] [@http://en.wikipedia.org/wiki/Green_Hills_Software Green Hills C/C++] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__ghs`] [__predef_detection__]] [[`__ghs__`] [__predef_detection__]] [[`__GHS_VERSION_NUMBER__`] [V.R.P]] [[`__ghs`] [V.R.P]] ] */ #define MSGPACK_COMP_GHS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__ghs) || defined(__ghs__) # if !defined(MSGPACK_COMP_GHS_DETECTION) && defined(__GHS_VERSION_NUMBER__) # define MSGPACK_COMP_GHS_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__GHS_VERSION_NUMBER__) # endif # if !defined(MSGPACK_COMP_GHS_DETECTION) && defined(__ghs) # define MSGPACK_COMP_GHS_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__ghs) # endif # if !defined(MSGPACK_COMP_GHS_DETECTION) # define MSGPACK_COMP_GHS_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_GHS_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_GHS_EMULATED MSGPACK_COMP_GHS_DETECTION # else # undef MSGPACK_COMP_GHS # define MSGPACK_COMP_GHS MSGPACK_COMP_GHS_DETECTION # endif # define MSGPACK_COMP_GHS_AVAILABLE # include #endif #define MSGPACK_COMP_GHS_NAME "Green Hills C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GHS,MSGPACK_COMP_GHS_NAME) #ifdef MSGPACK_COMP_GHS_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_GHS_EMULATED,MSGPACK_COMP_GHS_NAME) #endif #endif hp_acc.h100644001750001750 321714212656165 24262 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_HP_ACC_H #define MSGPACK_PREDEF_COMPILER_HP_ACC_H #include #include /*` [heading `MSGPACK_COMP_HPACC`] HP aC++ compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__HP_aCC`] [__predef_detection__]] [[`__HP_aCC`] [V.R.P]] ] */ #define MSGPACK_COMP_HPACC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__HP_aCC) # if !defined(MSGPACK_COMP_HPACC_DETECTION) && (__HP_aCC > 1) # define MSGPACK_COMP_HPACC_DETECTION MSGPACK_PREDEF_MAKE_10_VVRRPP(__HP_aCC) # endif # if !defined(MSGPACK_COMP_HPACC_DETECTION) # define MSGPACK_COMP_HPACC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_HPACC_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_HPACC_EMULATED MSGPACK_COMP_HPACC_DETECTION # else # undef MSGPACK_COMP_HPACC # define MSGPACK_COMP_HPACC MSGPACK_COMP_HPACC_DETECTION # endif # define MSGPACK_COMP_HPACC_AVAILABLE # include #endif #define MSGPACK_COMP_HPACC_NAME "HP aC++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HPACC,MSGPACK_COMP_HPACC_NAME) #ifdef MSGPACK_COMP_HPACC_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HPACC_EMULATED,MSGPACK_COMP_HPACC_NAME) #endif #endif iar.h100644001750001750 265414212656165 23624 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_IAR_H #define MSGPACK_PREDEF_COMPILER_IAR_H #include #include /*` [heading `MSGPACK_COMP_IAR`] IAR C/C++ compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__IAR_SYSTEMS_ICC__`] [__predef_detection__]] [[`__VER__`] [V.R.P]] ] */ #define MSGPACK_COMP_IAR MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__IAR_SYSTEMS_ICC__) # define MSGPACK_COMP_IAR_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR(__VER__) #endif #ifdef MSGPACK_COMP_IAR_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_IAR_EMULATED MSGPACK_COMP_IAR_DETECTION # else # undef MSGPACK_COMP_IAR # define MSGPACK_COMP_IAR MSGPACK_COMP_IAR_DETECTION # endif # define MSGPACK_COMP_IAR_AVAILABLE # include #endif #define MSGPACK_COMP_IAR_NAME "IAR C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IAR,MSGPACK_COMP_IAR_NAME) #ifdef MSGPACK_COMP_IAR_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IAR_EMULATED,MSGPACK_COMP_IAR_NAME) #endif #endif ibm.h100644001750001750 427214212656165 23616 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_IBM_H #define MSGPACK_PREDEF_COMPILER_IBM_H #include #include /*` [heading `MSGPACK_COMP_IBM`] [@http://en.wikipedia.org/wiki/VisualAge IBM XL C/C++] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__IBMCPP__`] [__predef_detection__]] [[`__xlC__`] [__predef_detection__]] [[`__xlc__`] [__predef_detection__]] [[`__COMPILER_VER__`] [V.R.P]] [[`__xlC__`] [V.R.P]] [[`__xlc__`] [V.R.P]] [[`__IBMCPP__`] [V.R.P]] ] */ #define MSGPACK_COMP_IBM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__IBMCPP__) || defined(__xlC__) || defined(__xlc__) # if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__COMPILER_VER__) # define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__COMPILER_VER__) # endif # if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__xlC__) # define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__xlC__) # endif # if !defined(MSGPACK_COMP_IBM_DETECTION) && defined(__xlc__) # define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__xlc__) # endif # if !defined(MSGPACK_COMP_IBM_DETECTION) # define MSGPACK_COMP_IBM_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__IBMCPP__) # endif #endif #ifdef MSGPACK_COMP_IBM_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_IBM_EMULATED MSGPACK_COMP_IBM_DETECTION # else # undef MSGPACK_COMP_IBM # define MSGPACK_COMP_IBM MSGPACK_COMP_IBM_DETECTION # endif # define MSGPACK_COMP_IBM_AVAILABLE # include #endif #define MSGPACK_COMP_IBM_NAME "IBM XL C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IBM,MSGPACK_COMP_IBM_NAME) #ifdef MSGPACK_COMP_IBM_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_IBM_EMULATED,MSGPACK_COMP_IBM_NAME) #endif #endif intel.h100644001750001750 363414212656165 24163 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_INTEL_H #define MSGPACK_PREDEF_COMPILER_INTEL_H #include #include /*` [heading `MSGPACK_COMP_INTEL`] [@http://en.wikipedia.org/wiki/Intel_C%2B%2B Intel C/C++] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__INTEL_COMPILER`] [__predef_detection__]] [[`__ICL`] [__predef_detection__]] [[`__ICC`] [__predef_detection__]] [[`__ECC`] [__predef_detection__]] [[`__INTEL_COMPILER`] [V.R.P]] ] */ #define MSGPACK_COMP_INTEL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || \ defined(__ECC) # if !defined(MSGPACK_COMP_INTEL_DETECTION) && defined(__INTEL_COMPILER) # define MSGPACK_COMP_INTEL_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(__INTEL_COMPILER) # endif # if !defined(MSGPACK_COMP_INTEL_DETECTION) # define MSGPACK_COMP_INTEL_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_INTEL_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_INTEL_EMULATED MSGPACK_COMP_INTEL_DETECTION # else # undef MSGPACK_COMP_INTEL # define MSGPACK_COMP_INTEL MSGPACK_COMP_INTEL_DETECTION # endif # define MSGPACK_COMP_INTEL_AVAILABLE # include #endif #define MSGPACK_COMP_INTEL_NAME "Intel C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_INTEL,MSGPACK_COMP_INTEL_NAME) #ifdef MSGPACK_COMP_INTEL_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_INTEL_EMULATED,MSGPACK_COMP_INTEL_NAME) #endif #endif kai.h100644001750001750 263014212656165 23607 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_KAI_H #define MSGPACK_PREDEF_COMPILER_KAI_H #include #include /*` [heading `MSGPACK_COMP_KCC`] Kai C++ compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__KCC`] [__predef_detection__]] [[`__KCC_VERSION`] [V.R.P]] ] */ #define MSGPACK_COMP_KCC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__KCC) # define MSGPACK_COMP_KCC_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__KCC_VERSION) #endif #ifdef MSGPACK_COMP_KCC_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_KCC_EMULATED MSGPACK_COMP_KCC_DETECTION # else # undef MSGPACK_COMP_KCC # define MSGPACK_COMP_KCC MSGPACK_COMP_KCC_DETECTION # endif # define MSGPACK_COMP_KCC_AVAILABLE # include #endif #define MSGPACK_COMP_KCC_NAME "Kai C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_KCC,MSGPACK_COMP_KCC_NAME) #ifdef MSGPACK_COMP_KCC_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_KCC_EMULATED,MSGPACK_COMP_KCC_NAME) #endif #endif llvm.h100644001750001750 274314212656165 24022 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_LLVM_H #define MSGPACK_PREDEF_COMPILER_LLVM_H /* Other compilers that emulate this one need to be detected first. */ #include #include #include /*` [heading `MSGPACK_COMP_LLVM`] [@http://en.wikipedia.org/wiki/LLVM LLVM] compiler. [table [[__predef_symbol__] [__predef_version__]] [[`__llvm__`] [__predef_detection__]] ] */ #define MSGPACK_COMP_LLVM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__llvm__) # define MSGPACK_COMP_LLVM_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE #endif #ifdef MSGPACK_COMP_LLVM_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_LLVM_EMULATED MSGPACK_COMP_LLVM_DETECTION # else # undef MSGPACK_COMP_LLVM # define MSGPACK_COMP_LLVM MSGPACK_COMP_LLVM_DETECTION # endif # define MSGPACK_COMP_LLVM_AVAILABLE # include #endif #define MSGPACK_COMP_LLVM_NAME "LLVM" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM,MSGPACK_COMP_LLVM_NAME) #ifdef MSGPACK_COMP_LLVM_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_LLVM_EMULATED,MSGPACK_COMP_LLVM_NAME) #endif #endif metaware.h100644001750001750 260214212656165 24647 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_METAWARE_H #define MSGPACK_PREDEF_COMPILER_METAWARE_H #include #include /*` [heading `MSGPACK_COMP_HIGHC`] MetaWare High C/C++ compiler. [table [[__predef_symbol__] [__predef_version__]] [[`__HIGHC__`] [__predef_detection__]] ] */ #define MSGPACK_COMP_HIGHC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__HIGHC__) # define MSGPACK_COMP_HIGHC_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE #endif #ifdef MSGPACK_COMP_HIGHC_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_HIGHC_EMULATED MSGPACK_COMP_HIGHC_DETECTION # else # undef MSGPACK_COMP_HIGHC # define MSGPACK_COMP_HIGHC MSGPACK_COMP_HIGHC_DETECTION # endif # define MSGPACK_COMP_HIGHC_AVAILABLE # include #endif #define MSGPACK_COMP_HIGHC_NAME "MetaWare High C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HIGHC,MSGPACK_COMP_HIGHC_NAME) #ifdef MSGPACK_COMP_HIGHC_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_HIGHC_EMULATED,MSGPACK_COMP_HIGHC_NAME) #endif #endif metrowerks.h100644001750001750 514514212656165 25251 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_METROWERKS_H #define MSGPACK_PREDEF_COMPILER_METROWERKS_H #include #include /*` [heading `MSGPACK_COMP_MWERKS`] [@http://en.wikipedia.org/wiki/CodeWarrior Metrowerks CodeWarrior] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__MWERKS__`] [__predef_detection__]] [[`__CWCC__`] [__predef_detection__]] [[`__CWCC__`] [V.R.P]] [[`__MWERKS__`] [V.R.P >= 4.2.0]] [[`__MWERKS__`] [9.R.0]] [[`__MWERKS__`] [8.R.0]] ] */ #define MSGPACK_COMP_MWERKS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__MWERKS__) || defined(__CWCC__) # if !defined(MSGPACK_COMP_MWERKS_DETECTION) && defined(__CWCC__) # define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__CWCC__) # endif # if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x4200) # define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_PREDEF_MAKE_0X_VRPP(__MWERKS__) # endif # if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3204) // note the "skip": 04->9.3 # define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(9,(__MWERKS__)%100-1,0) # endif # if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3200) # define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(9,(__MWERKS__)%100,0) # endif # if !defined(MSGPACK_COMP_MWERKS_DETECTION) && (__MWERKS__ >= 0x3000) # define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER(8,(__MWERKS__)%100,0) # endif # if !defined(MSGPACK_COMP_MWERKS_DETECTION) # define MSGPACK_COMP_MWERKS_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_MWERKS_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_MWERKS_EMULATED MSGPACK_COMP_MWERKS_DETECTION # else # undef MSGPACK_COMP_MWERKS # define MSGPACK_COMP_MWERKS MSGPACK_COMP_MWERKS_DETECTION # endif # define MSGPACK_COMP_MWERKS_AVAILABLE # include #endif #define MSGPACK_COMP_MWERKS_NAME "Metrowerks CodeWarrior" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MWERKS,MSGPACK_COMP_MWERKS_NAME) #ifdef MSGPACK_COMP_MWERKS_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MWERKS_EMULATED,MSGPACK_COMP_MWERKS_NAME) #endif #endif microtec.h100644001750001750 256114212656165 24653 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_MICROTEC_H #define MSGPACK_PREDEF_COMPILER_MICROTEC_H #include #include /*` [heading `MSGPACK_COMP_MRI`] [@http://www.mentor.com/microtec/ Microtec C/C++] compiler. [table [[__predef_symbol__] [__predef_version__]] [[`_MRI`] [__predef_detection__]] ] */ #define MSGPACK_COMP_MRI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(_MRI) # define MSGPACK_COMP_MRI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE #endif #ifdef MSGPACK_COMP_MRI_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_MRI_EMULATED MSGPACK_COMP_MRI_DETECTION # else # undef MSGPACK_COMP_MRI # define MSGPACK_COMP_MRI MSGPACK_COMP_MRI_DETECTION # endif # define MSGPACK_COMP_MRI_AVAILABLE # include #endif #define MSGPACK_COMP_MRI_NAME "Microtec C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MRI,MSGPACK_COMP_MRI_NAME) #ifdef MSGPACK_COMP_MRI_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MRI_EMULATED,MSGPACK_COMP_MRI_NAME) #endif #endif mpw.h100644001750001750 342414212656165 23650 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_MPW_H #define MSGPACK_PREDEF_COMPILER_MPW_H #include #include /*` [heading `MSGPACK_COMP_MPW`] [@http://en.wikipedia.org/wiki/Macintosh_Programmer%27s_Workshop MPW C++] compiler. Version number available as major, and minor. [table [[__predef_symbol__] [__predef_version__]] [[`__MRC__`] [__predef_detection__]] [[`MPW_C`] [__predef_detection__]] [[`MPW_CPLUS`] [__predef_detection__]] [[`__MRC__`] [V.R.0]] ] */ #define MSGPACK_COMP_MPW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__MRC__) || defined(MPW_C) || defined(MPW_CPLUS) # if !defined(MSGPACK_COMP_MPW_DETECTION) && defined(__MRC__) # define MSGPACK_COMP_MPW_DETECTION MSGPACK_PREDEF_MAKE_0X_VVRR(__MRC__) # endif # if !defined(MSGPACK_COMP_MPW_DETECTION) # define MSGPACK_COMP_MPW_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_MPW_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_MPW_EMULATED MSGPACK_COMP_MPW_DETECTION # else # undef MSGPACK_COMP_MPW # define MSGPACK_COMP_MPW MSGPACK_COMP_MPW_DETECTION # endif # define MSGPACK_COMP_MPW_AVAILABLE # include #endif #define MSGPACK_COMP_MPW_NAME "MPW C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MPW,MSGPACK_COMP_MPW_NAME) #ifdef MSGPACK_COMP_MPW_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MPW_EMULATED,MSGPACK_COMP_MPW_NAME) #endif #endif palm.h100644001750001750 266414212656165 24003 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_PALM_H #define MSGPACK_PREDEF_COMPILER_PALM_H #include #include /*` [heading `MSGPACK_COMP_PALM`] Palm C/C++ compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`_PACC_VER`] [__predef_detection__]] [[`_PACC_VER`] [V.R.P]] ] */ #define MSGPACK_COMP_PALM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(_PACC_VER) # define MSGPACK_COMP_PALM_DETECTION MSGPACK_PREDEF_MAKE_0X_VRRPP000(_PACC_VER) #endif #ifdef MSGPACK_COMP_PALM_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_PALM_EMULATED MSGPACK_COMP_PALM_DETECTION # else # undef MSGPACK_COMP_PALM # define MSGPACK_COMP_PALM MSGPACK_COMP_PALM_DETECTION # endif # define MSGPACK_COMP_PALM_AVAILABLE # include #endif #define MSGPACK_COMP_PALM_NAME "Palm C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PALM,MSGPACK_COMP_PALM_NAME) #ifdef MSGPACK_COMP_PALM_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PALM_EMULATED,MSGPACK_COMP_PALM_NAME) #endif #endif pgi.h100644001750001750 337214212656165 23626 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_PGI_H #define MSGPACK_PREDEF_COMPILER_PGI_H #include #include /*` [heading `MSGPACK_COMP_PGI`] [@http://en.wikipedia.org/wiki/The_Portland_Group Portland Group C/C++] compiler. [table [[__predef_symbol__] [__predef_version__]] [[`__PGI`] [__predef_detection__]] [[`__PGIC__`, `__PGIC_MINOR__`, `__PGIC_PATCHLEVEL__`] [V.R.P]] ] */ #define MSGPACK_COMP_PGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__PGI) # if !defined(MSGPACK_COMP_PGI_DETECTION) && (defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__)) # define MSGPACK_COMP_PGI_DETECTION MSGPACK_VERSION_NUMBER(__PGIC__,__PGIC_MINOR__,__PGIC_PATCHLEVEL__) # endif # if !defined(MSGPACK_COMP_PGI_DETECTION) # define MSGPACK_COMP_PGI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_PGI_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_PGI_EMULATED MSGPACK_COMP_PGI_DETECTION # else # undef MSGPACK_COMP_PGI # define MSGPACK_COMP_PGI MSGPACK_COMP_PGI_DETECTION # endif # define MSGPACK_COMP_PGI_AVAILABLE # include #endif #define MSGPACK_COMP_PGI_NAME "Portland Group C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PGI,MSGPACK_COMP_PGI_NAME) #ifdef MSGPACK_COMP_PGI_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_PGI_EMULATED,MSGPACK_COMP_PGI_NAME) #endif #endif sgi_mipspro.h100644001750001750 371114212656165 25377 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_SGI_MIPSPRO_H #define MSGPACK_PREDEF_COMPILER_SGI_MIPSPRO_H #include #include /*` [heading `MSGPACK_COMP_SGI`] [@http://en.wikipedia.org/wiki/MIPSpro SGI MIPSpro] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__sgi`] [__predef_detection__]] [[`sgi`] [__predef_detection__]] [[`_SGI_COMPILER_VERSION`] [V.R.P]] [[`_COMPILER_VERSION`] [V.R.P]] ] */ #define MSGPACK_COMP_SGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__sgi) || defined(sgi) # if !defined(MSGPACK_COMP_SGI_DETECTION) && defined(_SGI_COMPILER_VERSION) # define MSGPACK_COMP_SGI_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(_SGI_COMPILER_VERSION) # endif # if !defined(MSGPACK_COMP_SGI_DETECTION) && defined(_COMPILER_VERSION) # define MSGPACK_COMP_SGI_DETECTION MSGPACK_PREDEF_MAKE_10_VRP(_COMPILER_VERSION) # endif # if !defined(MSGPACK_COMP_SGI_DETECTION) # define MSGPACK_COMP_SGI_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_SGI_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_SGI_EMULATED MSGPACK_COMP_SGI_DETECTION # else # undef MSGPACK_COMP_SGI # define MSGPACK_COMP_SGI MSGPACK_COMP_SGI_DETECTION # endif # define MSGPACK_COMP_SGI_AVAILABLE # include #endif #define MSGPACK_COMP_SGI_NAME "SGI MIPSpro" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SGI,MSGPACK_COMP_SGI_NAME) #ifdef MSGPACK_COMP_SGI_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SGI_EMULATED,MSGPACK_COMP_SGI_NAME) #endif #endif sunpro.h100644001750001750 376514212656165 24403 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_SUNPRO_H #define MSGPACK_PREDEF_COMPILER_SUNPRO_H #include #include /*` [heading `MSGPACK_COMP_SUNPRO`] [@http://en.wikipedia.org/wiki/Sun_Studio_%28software%29 Sun Studio] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__SUNPRO_CC`] [__predef_detection__]] [[`__SUNPRO_C`] [__predef_detection__]] [[`__SUNPRO_CC`] [V.R.P]] [[`__SUNPRO_C`] [V.R.P]] ] */ #define MSGPACK_COMP_SUNPRO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__SUNPRO_CC) || defined(__SUNPRO_C) # if !defined(MSGPACK_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_CC) # define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__SUNPRO_CC) # endif # if !defined(MSGPACK_COMP_SUNPRO_DETECTION) && defined(__SUNPRO_C) # define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_PREDEF_MAKE_0X_VRP(__SUNPRO_C) # endif # if !defined(MSGPACK_COMP_SUNPRO_DETECTION) # define MSGPACK_COMP_SUNPRO_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_COMP_SUNPRO_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_SUNPRO_EMULATED MSGPACK_COMP_SUNPRO_DETECTION # else # undef MSGPACK_COMP_SUNPRO # define MSGPACK_COMP_SUNPRO MSGPACK_COMP_SUNPRO_DETECTION # endif # define MSGPACK_COMP_SUNPRO_AVAILABLE # include #endif #define MSGPACK_COMP_SUNPRO_NAME "Sun Studio" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SUNPRO,MSGPACK_COMP_SUNPRO_NAME) #ifdef MSGPACK_COMP_SUNPRO_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_SUNPRO_EMULATED,MSGPACK_COMP_SUNPRO_NAME) #endif #endif tendra.h100644001750001750 266214212656165 24325 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_TENDRA_H #define MSGPACK_PREDEF_COMPILER_TENDRA_H #include #include /*` [heading `MSGPACK_COMP_TENDRA`] [@http://en.wikipedia.org/wiki/TenDRA_Compiler TenDRA C/C++] compiler. [table [[__predef_symbol__] [__predef_version__]] [[`__TenDRA__`] [__predef_detection__]] ] */ #define MSGPACK_COMP_TENDRA MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__TenDRA__) # define MSGPACK_COMP_TENDRA_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE #endif #ifdef MSGPACK_COMP_TENDRA_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_TENDRA_EMULATED MSGPACK_COMP_TENDRA_DETECTION # else # undef MSGPACK_COMP_TENDRA # define MSGPACK_COMP_TENDRA MSGPACK_COMP_TENDRA_DETECTION # endif # define MSGPACK_COMP_TENDRA_AVAILABLE # include #endif #define MSGPACK_COMP_TENDRA_NAME "TenDRA C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_TENDRA,MSGPACK_COMP_TENDRA_NAME) #ifdef MSGPACK_COMP_TENDRA_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_TENDRA_EMULATED,MSGPACK_COMP_TENDRA_NAME) #endif #endif visualc.h100644001750001750 527614212656165 24522 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_VISUALC_H #define MSGPACK_PREDEF_COMPILER_VISUALC_H /* Other compilers that emulate this one need to be detected first. */ #include #include #include /*` [heading `MSGPACK_COMP_MSVC`] [@http://en.wikipedia.org/wiki/Visual_studio Microsoft Visual C/C++] compiler. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`_MSC_VER`] [__predef_detection__]] [[`_MSC_FULL_VER`] [V.R.P]] [[`_MSC_VER`] [V.R.0]] ] */ #define MSGPACK_COMP_MSVC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(_MSC_VER) # if !defined (_MSC_FULL_VER) # define MSGPACK_COMP_MSVC_BUILD 0 # else /* how many digits does the build number have? */ # if _MSC_FULL_VER / 10000 == _MSC_VER /* four digits */ # define MSGPACK_COMP_MSVC_BUILD (_MSC_FULL_VER % 10000) # elif _MSC_FULL_VER / 100000 == _MSC_VER /* five digits */ # define MSGPACK_COMP_MSVC_BUILD (_MSC_FULL_VER % 100000) # else # error "Cannot determine build number from _MSC_FULL_VER" # endif # endif /* VS2014 was skipped in the release sequence for MS. Which means that the compiler and VS product versions are no longer in sync. Hence we need to use different formulas for mapping from MSC version to VS product version. */ # if (_MSC_VER >= 1900) # define MSGPACK_COMP_MSVC_DETECTION MSGPACK_VERSION_NUMBER(\ _MSC_VER/100-5,\ _MSC_VER%100,\ MSGPACK_COMP_MSVC_BUILD) # else # define MSGPACK_COMP_MSVC_DETECTION MSGPACK_VERSION_NUMBER(\ _MSC_VER/100-6,\ _MSC_VER%100,\ MSGPACK_COMP_MSVC_BUILD) # endif #endif #ifdef MSGPACK_COMP_MSVC_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_MSVC_EMULATED MSGPACK_COMP_MSVC_DETECTION # else # undef MSGPACK_COMP_MSVC # define MSGPACK_COMP_MSVC MSGPACK_COMP_MSVC_DETECTION # endif # define MSGPACK_COMP_MSVC_AVAILABLE # include #endif #define MSGPACK_COMP_MSVC_NAME "Microsoft Visual C/C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MSVC,MSGPACK_COMP_MSVC_NAME) #ifdef MSGPACK_COMP_MSVC_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_MSVC_EMULATED,MSGPACK_COMP_MSVC_NAME) #endif #endif watcom.h100644001750001750 277414212656165 24346 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/compiler/* Copyright Rene Rivera 2008-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_WATCOM_H #define MSGPACK_PREDEF_COMPILER_WATCOM_H #include #include /*` [heading `MSGPACK_COMP_WATCOM`] [@http://en.wikipedia.org/wiki/Watcom Watcom C++] compiler. Version number available as major, and minor. [table [[__predef_symbol__] [__predef_version__]] [[`__WATCOMC__`] [__predef_detection__]] [[`__WATCOMC__`] [V.R.P]] ] */ #define MSGPACK_COMP_WATCOM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__WATCOMC__) # define MSGPACK_COMP_WATCOM_DETECTION MSGPACK_PREDEF_MAKE_10_VVRR(__WATCOMC__) #endif #ifdef MSGPACK_COMP_WATCOM_DETECTION # if defined(MSGPACK_PREDEF_DETAIL_COMP_DETECTED) # define MSGPACK_COMP_WATCOM_EMULATED MSGPACK_COMP_WATCOM_DETECTION # else # undef MSGPACK_COMP_WATCOM # define MSGPACK_COMP_WATCOM MSGPACK_COMP_WATCOM_DETECTION # endif # define MSGPACK_COMP_WATCOM_AVAILABLE # include #endif #define MSGPACK_COMP_WATCOM_NAME "Watcom C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_WATCOM,MSGPACK_COMP_WATCOM_NAME) #ifdef MSGPACK_COMP_WATCOM_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_COMP_WATCOM_EMULATED,MSGPACK_COMP_WATCOM_NAME) #endif #endif _cassert.h100644001750001750 54114212656165 24255 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/detail/* Copyright Rene Rivera 2011-2012 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_DETAIL__CASSERT_H #define MSGPACK_PREDEF_DETAIL__CASSERT_H #if defined(__cpluplus) #include #else #include #endif #endif _exception.h100644001750001750 51514212656165 24610 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/detail/* Copyright Rene Rivera 2011-2012 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_DETAIL__EXCEPTION_H #define MSGPACK_PREDEF_DETAIL__EXCEPTION_H #if defined(__cpluplus) #include #endif #endif comp_detected.h100644001750001750 42614212656165 25253 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/detail/* Copyright Rene Rivera 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_DETAIL_COMP_DETECTED #define MSGPACK_PREDEF_DETAIL_COMP_DETECTED 1 #endif endian_compat.h100644001750001750 117114212656165 25273 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/detail/* Copyright Rene Rivera 2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_DETAIL_ENDIAN_COMPAT_H #define MSGPACK_PREDEF_DETAIL_ENDIAN_COMPAT_H #include #if MSGPACK_ENDIAN_BIG_BYTE # define MSGPACK_BIG_ENDIAN # define MSGPACK_BYTE_ORDER 4321 #endif #if MSGPACK_ENDIAN_LITTLE_BYTE # define MSGPACK_LITTLE_ENDIAN # define MSGPACK_BYTE_ORDER 1234 #endif #if MSGPACK_ENDIAN_LITTLE_WORD # define MSGPACK_PDP_ENDIAN # define MSGPACK_BYTE_ORDER 2134 #endif #endif os_detected.h100644001750001750 42214212656165 24732 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/detail/* Copyright Rene Rivera 2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_DETAIL_OS_DETECTED #define MSGPACK_PREDEF_DETAIL_OS_DETECTED 1 #endif platform_detected.h100644001750001750 42614212656165 26141 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/detail/* Copyright Rene Rivera 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_DETAIL_PLAT_DETECTED #define MSGPACK_PREDEF_DETAIL_PLAT_DETECTED 1 #endif test.h100644001750001750 56414212656165 23436 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/detail/* Copyright Rene Rivera 2011-2012 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_DETAIL_TEST_H #define MSGPACK_PREDEF_DETAIL_TEST_H #if !defined(MSGPACK_PREDEF_INTERNAL_GENERATE_TESTS) #define MSGPACK_PREDEF_DECLARE_TEST(x,s) #endif #endif language.h100644001750001750 60714212656165 22776 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2011-2012 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LANGUAGE_H #define MSGPACK_PREDEF_LANGUAGE_H #include #include #include #endif objc.h100644001750001750 171214212656165 23731 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/language/* Copyright Rene Rivera 2011-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LANGUAGE_OBJC_H #define MSGPACK_PREDEF_LANGUAGE_OBJC_H #include #include /*` [heading `MSGPACK_LANG_OBJC`] [@http://en.wikipedia.org/wiki/Objective-C Objective-C] language. [table [[__predef_symbol__] [__predef_version__]] [[`__OBJC__`] [__predef_detection__]] ] */ #define MSGPACK_LANG_OBJC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__OBJC__) # undef MSGPACK_LANG_OBJC # define MSGPACK_LANG_OBJC MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_LANG_OBJC # define MSGPACK_LANG_OBJC_AVAILABLE #endif #define MSGPACK_LANG_OBJC_NAME "Objective-C" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_OBJC,MSGPACK_LANG_OBJC_NAME) #endif stdc.h100644001750001750 253414212656165 23754 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/language/* Copyright Rene Rivera 2011-2012 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LANGUAGE_STDC_H #define MSGPACK_PREDEF_LANGUAGE_STDC_H #include #include /*` [heading `MSGPACK_LANG_STDC`] [@http://en.wikipedia.org/wiki/C_(programming_language) Standard C] language. If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. [table [[__predef_symbol__] [__predef_version__]] [[`__STDC__`] [__predef_detection__]] [[`__STDC_VERSION__`] [V.R.P]] ] */ #define MSGPACK_LANG_STDC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__STDC__) # undef MSGPACK_LANG_STDC # if defined(__STDC_VERSION__) # if (__STDC_VERSION__ > 100) # define MSGPACK_LANG_STDC MSGPACK_PREDEF_MAKE_YYYYMM(__STDC_VERSION__) # else # define MSGPACK_LANG_STDC MSGPACK_VERSION_NUMBER_AVAILABLE # endif # else # define MSGPACK_LANG_STDC MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_LANG_STDC # define MSGPACK_LANG_STDC_AVAILABLE #endif #define MSGPACK_LANG_STDC_NAME "Standard C" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDC,MSGPACK_LANG_STDC_NAME) #endif stdcpp.h100644001750001750 627514212656165 24322 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/language/* Copyright Rene Rivera 2011-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LANGUAGE_STDCPP_H #define MSGPACK_PREDEF_LANGUAGE_STDCPP_H #include #include /*` [heading `MSGPACK_LANG_STDCPP`] [@http://en.wikipedia.org/wiki/C%2B%2B Standard C++] language. If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. Because of the way the C++ standardization process works the defined version year will not be the commonly known year of the standard. Specifically the defined versions are: [table Detected Version Number vs. C++ Standard Year [[Detected Version Number] [Standard Year] [C++ Standard]] [[27.11.1] [1998] [ISO/IEC 14882:1998]] [[41.12.1] [2011] [ISO/IEC 14882:2011]] ] [table [[__predef_symbol__] [__predef_version__]] [[`__cplusplus`] [__predef_detection__]] [[`__cplusplus`] [YYYY.MM.1]] ] */ #define MSGPACK_LANG_STDCPP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__cplusplus) # undef MSGPACK_LANG_STDCPP # if (__cplusplus > 100) # define MSGPACK_LANG_STDCPP MSGPACK_PREDEF_MAKE_YYYYMM(__cplusplus) # else # define MSGPACK_LANG_STDCPP MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_LANG_STDCPP # define MSGPACK_LANG_STDCPP_AVAILABLE #endif #define MSGPACK_LANG_STDCPP_NAME "Standard C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDCPP,MSGPACK_LANG_STDCPP_NAME) /*` [heading `MSGPACK_LANG_STDCPPCLI`] [@http://en.wikipedia.org/wiki/C%2B%2B/CLI Standard C++/CLI] language. If available, the year of the standard is detected as YYYY.MM.1 from the Epoc date. [table [[__predef_symbol__] [__predef_version__]] [[`__cplusplus_cli`] [__predef_detection__]] [[`__cplusplus_cli`] [YYYY.MM.1]] ] */ #define MSGPACK_LANG_STDCPPCLI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__cplusplus_cli) # undef MSGPACK_LANG_STDCPPCLI # if (__cplusplus_cli > 100) # define MSGPACK_LANG_STDCPPCLI MSGPACK_PREDEF_MAKE_YYYYMM(__cplusplus_cli) # else # define MSGPACK_LANG_STDCPPCLI MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_LANG_STDCPPCLI # define MSGPACK_LANG_STDCPPCLI_AVAILABLE #endif #define MSGPACK_LANG_STDCPPCLI_NAME "Standard C++/CLI" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDCPPCLI,MSGPACK_LANG_STDCPPCLI_NAME) /*` [heading `MSGPACK_LANG_STDECPP`] [@http://en.wikipedia.org/wiki/Embedded_C%2B%2B Standard Embedded C++] language. [table [[__predef_symbol__] [__predef_version__]] [[`__embedded_cplusplus`] [__predef_detection__]] ] */ #define MSGPACK_LANG_STDECPP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__embedded_cplusplus) # undef MSGPACK_LANG_STDECPP # define MSGPACK_LANG_STDECPP MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_LANG_STDECPP # define MSGPACK_LANG_STDECPP_AVAILABLE #endif #define MSGPACK_LANG_STDECPP_NAME "Standard Embedded C++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LANG_STDECPP,MSGPACK_LANG_STDECPP_NAME) #endif library.h100644001750001750 52314212656165 22654 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2008-2012 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_H #define MSGPACK_PREDEF_LIBRARY_H #include #include #endif c.h100644001750001750 73714212656165 23105 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/* Copyright Rene Rivera 2008-2012 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_C_H #define MSGPACK_PREDEF_LIBRARY_C_H #include #include #include #include #include #endif _prefix.h100644001750001750 50514212656165 24532 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/c/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_C__PREFIX_H #define MSGPACK_PREDEF_LIBRARY_C__PREFIX_H #include #endif gnu.h100644001750001750 277414212656165 23721 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/c/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_C_GNU_H #define MSGPACK_PREDEF_LIBRARY_C_GNU_H #include #include #include #if defined(__STDC__) #include #elif defined(__cplusplus) #include #endif /*` [heading `MSGPACK_LIB_C_GNU`] [@http://en.wikipedia.org/wiki/Glibc GNU glibc] Standard C library. Version number available as major, and minor. [table [[__predef_symbol__] [__predef_version__]] [[`__GLIBC__`] [__predef_detection__]] [[`__GNU_LIBRARY__`] [__predef_detection__]] [[`__GLIBC__`, `__GLIBC_MINOR__`] [V.R.0]] [[`__GNU_LIBRARY__`, `__GNU_LIBRARY_MINOR__`] [V.R.0]] ] */ #define MSGPACK_LIB_C_GNU MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__GLIBC__) || defined(__GNU_LIBRARY__) # undef MSGPACK_LIB_C_GNU # if defined(__GLIBC__) # define MSGPACK_LIB_C_GNU \ MSGPACK_VERSION_NUMBER(__GLIBC__,__GLIBC_MINOR__,0) # else # define MSGPACK_LIB_C_GNU \ MSGPACK_VERSION_NUMBER(__GNU_LIBRARY__,__GNU_LIBRARY_MINOR__,0) # endif #endif #if MSGPACK_LIB_C_GNU # define MSGPACK_LIB_C_GNU_AVAILABLE #endif #define MSGPACK_LIB_C_GNU_NAME "GNU" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_GNU,MSGPACK_LIB_C_GNU_NAME) #endif uc.h100644001750001750 216314212656165 23527 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/c/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_C_UC_H #define MSGPACK_PREDEF_LIBRARY_C_UC_H #include #include #include /*` [heading `MSGPACK_LIB_C_UC`] [@http://en.wikipedia.org/wiki/Uclibc uClibc] Standard C library. [table [[__predef_symbol__] [__predef_version__]] [[`__UCLIBC__`] [__predef_detection__]] [[`__UCLIBC_MAJOR__`, `__UCLIBC_MINOR__`, `__UCLIBC_SUBLEVEL__`] [V.R.P]] ] */ #define MSGPACK_LIB_C_UC MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__UCLIBC__) # undef MSGPACK_LIB_C_UC # define MSGPACK_LIB_C_UC MSGPACK_VERSION_NUMBER(\ __UCLIBC_MAJOR__,__UCLIBC_MINOR__,__UCLIBC_SUBLEVEL__) #endif #if MSGPACK_LIB_C_UC # define MSGPACK_LIB_C_UC_AVAILABLE #endif #define MSGPACK_LIB_C_UC_NAME "uClibc" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_UC,MSGPACK_LIB_C_UC_NAME) #endif vms.h100644001750001750 205714212656165 23727 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/c/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_C_VMS_H #define MSGPACK_PREDEF_LIBRARY_C_VMS_H #include #include #include /*` [heading `MSGPACK_LIB_C_VMS`] VMS libc Standard C library. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__CRTL_VER`] [__predef_detection__]] [[`__CRTL_VER`] [V.R.P]] ] */ #define MSGPACK_LIB_C_VMS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__CRTL_VER) # undef MSGPACK_LIB_C_VMS # define MSGPACK_LIB_C_VMS MSGPACK_PREDEF_MAKE_10_VVRR0PP00(__CRTL_VER) #endif #if MSGPACK_LIB_C_VMS # define MSGPACK_LIB_C_VMS_AVAILABLE #endif #define MSGPACK_LIB_C_VMS_NAME "VMS" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_VMS,MSGPACK_LIB_C_VMS_NAME) #endif zos.h100644001750001750 263714212656165 23741 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/c/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_C_ZOS_H #define MSGPACK_PREDEF_LIBRARY_C_ZOS_H #include #include #include /*` [heading `MSGPACK_LIB_C_ZOS`] z/OS libc Standard C library. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__LIBREL__`] [__predef_detection__]] [[`__LIBREL__`] [V.R.P]] [[`__TARGET_LIB__`] [V.R.P]] ] */ #define MSGPACK_LIB_C_ZOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__LIBREL__) # undef MSGPACK_LIB_C_ZOS # if !defined(MSGPACK_LIB_C_ZOS) && defined(__LIBREL__) # define MSGPACK_LIB_C_ZOS MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__LIBREL__) # endif # if !defined(MSGPACK_LIB_C_ZOS) && defined(__TARGET_LIB__) # define MSGPACK_LIB_C_ZOS MSGPACK_PREDEF_MAKE_0X_VRRPPPP(__TARGET_LIB__) # endif # if !defined(MSGPACK_LIB_C_ZOS) # define MSGPACK_LIB_C_ZOS MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_LIB_C_ZOS # define MSGPACK_LIB_C_ZOS_AVAILABLE #endif #define MSGPACK_LIB_C_ZOS_NAME "z/OS" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_C_ZOS,MSGPACK_LIB_C_ZOS_NAME) #endif std.h100644001750001750 142314212656165 23466 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_H #define MSGPACK_PREDEF_LIBRARY_STD_H #include #include #include #include #include #include #include #include #include #include #include #endif _prefix.h100644001750001750 147714212656165 25133 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD__PREFIX_H #define MSGPACK_PREDEF_LIBRARY_STD__PREFIX_H /* We need to include an STD header to gives us the context of which library we are using. The "smallest" code-wise header seems to be . Boost uses but as far as I can tell (RR) it's not a stand-alone header in most implementations. Using also has the benefit of being available in EC++, so we get a chance to make this work for embedded users. And since it's not a header impacted by TR1 there's no magic needed for inclusion in the face of the Boost.TR1 library. */ #include #endif cxx.h100644001750001750 207714212656165 24276 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2011-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_CXX_H #define MSGPACK_PREDEF_LIBRARY_STD_CXX_H #include #include #include /*` [heading `MSGPACK_LIB_STD_CXX`] [@http://libcxx.llvm.org/ libc++] C++ Standard Library. [table [[__predef_symbol__] [__predef_version__]] [[`_LIBCPP_VERSION`] [__predef_detection__]] [[`_LIBCPP_VERSION`] [V.0.P]] ] */ #define MSGPACK_LIB_STD_CXX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(_LIBCPP_VERSION) # undef MSGPACK_LIB_STD_CXX # define MSGPACK_LIB_STD_CXX MSGPACK_PREDEF_MAKE_10_VPPP(_LIBCPP_VERSION) #endif #if MSGPACK_LIB_STD_CXX # define MSGPACK_LIB_STD_CXX_AVAILABLE #endif #define MSGPACK_LIB_STD_CXX_NAME "libc++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_CXX,MSGPACK_LIB_STD_CXX_NAME) #endif dinkumware.h100644001750001750 265514212656165 25644 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_DINKUMWARE_H #define MSGPACK_PREDEF_LIBRARY_STD_DINKUMWARE_H #include #include #include /*` [heading `MSGPACK_LIB_STD_DINKUMWARE`] [@http://en.wikipedia.org/wiki/Dinkumware Dinkumware] Standard C++ Library. If available version number as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`_YVALS`, `__IBMCPP__`] [__predef_detection__]] [[`_CPPLIB_VER`] [__predef_detection__]] [[`_CPPLIB_VER`] [V.R.0]] ] */ #define MSGPACK_LIB_STD_DINKUMWARE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if (defined(_YVALS) && !defined(__IBMCPP__)) || defined(_CPPLIB_VER) # undef MSGPACK_LIB_STD_DINKUMWARE # if defined(_CPPLIB_VER) # define MSGPACK_LIB_STD_DINKUMWARE MSGPACK_PREDEF_MAKE_10_VVRR(_CPPLIB_VER) # else # define MSGPACK_LIB_STD_DINKUMWARE MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_LIB_STD_DINKUMWARE # define MSGPACK_LIB_STD_DINKUMWARE_AVAILABLE #endif #define MSGPACK_LIB_STD_DINKUMWARE_NAME "Dinkumware" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_DINKUMWARE,MSGPACK_LIB_STD_DINKUMWARE_NAME) #endif libcomo.h100644001750001750 222614212656165 25114 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_LIBCOMO_H #define MSGPACK_PREDEF_LIBRARY_STD_LIBCOMO_H #include #include #include /*` [heading `MSGPACK_LIB_STD_COMO`] [@http://www.comeaucomputing.com/libcomo/ Comeau Computing] Standard C++ Library. Version number available as major. [table [[__predef_symbol__] [__predef_version__]] [[`__LIBCOMO__`] [__predef_detection__]] [[`__LIBCOMO_VERSION__`] [V.0.0]] ] */ #define MSGPACK_LIB_STD_COMO MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__LIBCOMO__) # undef MSGPACK_LIB_STD_COMO # define MSGPACK_LIB_STD_COMO MSGPACK_VERSION_NUMBER(__LIBCOMO_VERSION__,0,0) #endif #if MSGPACK_LIB_STD_COMO # define MSGPACK_LIB_STD_COMO_AVAILABLE #endif #define MSGPACK_LIB_STD_COMO_NAME "Comeau Computing" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_COMO,MSGPACK_LIB_STD_COMO_NAME) #endif modena.h100644001750001750 222114212656165 24726 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_MODENA_H #define MSGPACK_PREDEF_LIBRARY_STD_MODENA_H #include #include #include /*` [heading `MSGPACK_LIB_STD_MSIPL`] [@http://modena.us/ Modena Software Lib++] Standard C++ Library. [table [[__predef_symbol__] [__predef_version__]] [[`MSIPL_COMPILE_H`] [__predef_detection__]] [[`__MSIPL_COMPILE_H`] [__predef_detection__]] ] */ #define MSGPACK_LIB_STD_MSIPL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(MSIPL_COMPILE_H) || defined(__MSIPL_COMPILE_H) # undef MSGPACK_LIB_STD_MSIPL # define MSGPACK_LIB_STD_MSIPL MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_LIB_STD_MSIPL # define MSGPACK_LIB_STD_MSIPL_AVAILABLE #endif #define MSGPACK_LIB_STD_MSIPL_NAME "Modena Software Lib++" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_MSIPL,MSGPACK_LIB_STD_MSIPL_NAME) #endif msl.h100644001750001750 250014212656165 24256 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_MSL_H #define MSGPACK_PREDEF_LIBRARY_STD_MSL_H #include #include #include /*` [heading `MSGPACK_LIB_STD_MSL`] [@http://www.freescale.com/ Metrowerks] Standard C++ Library. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__MSL_CPP__`] [__predef_detection__]] [[`__MSL__`] [__predef_detection__]] [[`__MSL_CPP__`] [V.R.P]] [[`__MSL__`] [V.R.P]] ] */ #define MSGPACK_LIB_STD_MSL MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__MSL_CPP__) || defined(__MSL__) # undef MSGPACK_LIB_STD_MSL # if defined(__MSL_CPP__) # define MSGPACK_LIB_STD_MSL MSGPACK_PREDEF_MAKE_0X_VRPP(__MSL_CPP__) # else # define MSGPACK_LIB_STD_MSL MSGPACK_PREDEF_MAKE_0X_VRPP(__MSL__) # endif #endif #if MSGPACK_LIB_STD_MSL # define MSGPACK_LIB_STD_MSL_AVAILABLE #endif #define MSGPACK_LIB_STD_MSL_NAME "Metrowerks" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_MSL,MSGPACK_LIB_STD_MSL_NAME) #endif roguewave.h100644001750001750 271314212656165 25475 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_ROGUEWAVE_H #define MSGPACK_PREDEF_LIBRARY_STD_ROGUEWAVE_H #include #include #include /*` [heading `MSGPACK_LIB_STD_RW`] [@http://stdcxx.apache.org/ Roguewave] Standard C++ library. If available version number as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__STD_RWCOMPILER_H__`] [__predef_detection__]] [[`_RWSTD_VER`] [__predef_detection__]] [[`_RWSTD_VER`] [V.R.P]] ] */ #define MSGPACK_LIB_STD_RW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER) # undef MSGPACK_LIB_STD_RW # if defined(_RWSTD_VER) # if _RWSTD_VER < 0x010000 # define MSGPACK_LIB_STD_RW MSGPACK_PREDEF_MAKE_0X_VVRRP(_RWSTD_VER) # else # define MSGPACK_LIB_STD_RW MSGPACK_PREDEF_MAKE_0X_VVRRPP(_RWSTD_VER) # endif # else # define MSGPACK_LIB_STD_RW MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_LIB_STD_RW # define MSGPACK_LIB_STD_RW_AVAILABLE #endif #define MSGPACK_LIB_STD_RW_NAME "Roguewave" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_RW,MSGPACK_LIB_STD_RW_NAME) #endif sgi.h100644001750001750 233414212656165 24252 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_SGI_H #define MSGPACK_PREDEF_LIBRARY_STD_SGI_H #include #include #include /*` [heading `MSGPACK_LIB_STD_SGI`] [@http://www.sgi.com/tech/stl/ SGI] Standard C++ library. If available version number as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__STL_CONFIG_H`] [__predef_detection__]] [[`__SGI_STL`] [V.R.P]] ] */ #define MSGPACK_LIB_STD_SGI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__STL_CONFIG_H) # undef MSGPACK_LIB_STD_SGI # if defined(__SGI_STL) # define MSGPACK_LIB_STD_SGI MSGPACK_PREDEF_MAKE_0X_VRP(__SGI_STL) # else # define MSGPACK_LIB_STD_SGI MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_LIB_STD_SGI # define MSGPACK_LIB_STD_SGI_AVAILABLE #endif #define MSGPACK_LIB_STD_SGI_NAME "SGI" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_SGI,MSGPACK_LIB_STD_SGI_NAME) #endif stdcpp3.h100644001750001750 254314212656165 25052 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_STDCPP3_H #define MSGPACK_PREDEF_LIBRARY_STD_STDCPP3_H #include #include #include /*` [heading `MSGPACK_LIB_STD_GNU`] [@http://gcc.gnu.org/libstdc++/ GNU libstdc++] Standard C++ library. Version number available as year (from 1970), month, and day. [table [[__predef_symbol__] [__predef_version__]] [[`__GLIBCXX__`] [__predef_detection__]] [[`__GLIBCPP__`] [__predef_detection__]] [[`__GLIBCXX__`] [V.R.P]] [[`__GLIBCPP__`] [V.R.P]] ] */ #define MSGPACK_LIB_STD_GNU MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__GLIBCPP__) || defined(__GLIBCXX__) # undef MSGPACK_LIB_STD_GNU # if defined(__GLIBCXX__) # define MSGPACK_LIB_STD_GNU MSGPACK_PREDEF_MAKE_YYYYMMDD(__GLIBCXX__) # else # define MSGPACK_LIB_STD_GNU MSGPACK_PREDEF_MAKE_YYYYMMDD(__GLIBCPP__) # endif #endif #if MSGPACK_LIB_STD_GNU # define MSGPACK_LIB_STD_GNU_AVAILABLE #endif #define MSGPACK_LIB_STD_GNU_NAME "GNU" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_GNU,MSGPACK_LIB_STD_GNU_NAME) #endif stlport.h100644001750001750 342214212656165 25176 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_STLPORT_H #define MSGPACK_PREDEF_LIBRARY_STD_STLPORT_H #include #include #include /*` [heading `MSGPACK_LIB_STD_STLPORT`] [@http://sourceforge.net/projects/stlport/ STLport Standard C++] library. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__SGI_STL_PORT`] [__predef_detection__]] [[`_STLPORT_VERSION`] [__predef_detection__]] [[`_STLPORT_MAJOR`, `_STLPORT_MINOR`, `_STLPORT_PATCHLEVEL`] [V.R.P]] [[`_STLPORT_VERSION`] [V.R.P]] [[`__SGI_STL_PORT`] [V.R.P]] ] */ #define MSGPACK_LIB_STD_STLPORT MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) # undef MSGPACK_LIB_STD_STLPORT # if !defined(MSGPACK_LIB_STD_STLPORT) && defined(_STLPORT_MAJOR) # define MSGPACK_LIB_STD_STLPORT \ MSGPACK_VERSION_NUMBER(_STLPORT_MAJOR,_STLPORT_MINOR,_STLPORT_PATCHLEVEL) # endif # if !defined(MSGPACK_LIB_STD_STLPORT) && defined(_STLPORT_VERSION) # define MSGPACK_LIB_STD_STLPORT MSGPACK_PREDEF_MAKE_0X_VRP(_STLPORT_VERSION) # endif # if !defined(MSGPACK_LIB_STD_STLPORT) # define MSGPACK_LIB_STD_STLPORT MSGPACK_PREDEF_MAKE_0X_VRP(__SGI_STL_PORT) # endif #endif #if MSGPACK_LIB_STD_STLPORT # define MSGPACK_LIB_STD_STLPORT_AVAILABLE #endif #define MSGPACK_LIB_STD_STLPORT_NAME "STLport" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_STLPORT,MSGPACK_LIB_STD_STLPORT_NAME) #endif vacpp.h100644001750001750 204414212656165 24577 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/library/std/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_LIBRARY_STD_VACPP_H #define MSGPACK_PREDEF_LIBRARY_STD_VACPP_H #include #include #include /*` [heading `MSGPACK_LIB_STD_IBM`] [@http://www.ibm.com/software/awdtools/xlcpp/ IBM VACPP Standard C++] library. [table [[__predef_symbol__] [__predef_version__]] [[`__IBMCPP__`] [__predef_detection__]] ] */ #define MSGPACK_LIB_STD_IBM MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__IBMCPP__) # undef MSGPACK_LIB_STD_IBM # define MSGPACK_LIB_STD_IBM MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_LIB_STD_IBM # define MSGPACK_LIB_STD_IBM_AVAILABLE #endif #define MSGPACK_LIB_STD_IBM_NAME "IBM VACPP" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_LIB_STD_IBM,MSGPACK_LIB_STD_IBM_NAME) #endif make.h100644001750001750 1116314212656165 22167 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #include #ifndef MSGPACK_PREDEF_MAKE_H #define MSGPACK_PREDEF_MAKE_H /* Shorthands for the common version number formats used by vendors... */ /*` [heading `MSGPACK_PREDEF_MAKE_..` macros] These set of macros decompose common vendor version number macros which are composed version, revision, and patch digits. The naming convention indicates: * The base of the specified version number. "`MSGPACK_PREDEF_MAKE_0X`" for hexadecimal digits, and "`MSGPACK_PREDEF_MAKE_10`" for decimal digits. * The format of the vendor version number. Where "`V`" indicates the version digits, "`R`" indicates the revision digits, "`P`" indicates the patch digits, and "`0`" indicates an ignored digit. Macros are: */ /*` `MSGPACK_PREDEF_MAKE_0X_VRP(V)` */ #define MSGPACK_PREDEF_MAKE_0X_VRP(V) MSGPACK_VERSION_NUMBER((V&0xF00)>>8,(V&0xF0)>>4,(V&0xF)) /*` `MSGPACK_PREDEF_MAKE_0X_VVRP(V)` */ #define MSGPACK_PREDEF_MAKE_0X_VVRP(V) MSGPACK_VERSION_NUMBER((V&0xFF00)>>8,(V&0xF0)>>4,(V&0xF)) /*` `MSGPACK_PREDEF_MAKE_0X_VRPP(V)` */ #define MSGPACK_PREDEF_MAKE_0X_VRPP(V) MSGPACK_VERSION_NUMBER((V&0xF000)>>12,(V&0xF00)>>8,(V&0xFF)) /*` `MSGPACK_PREDEF_MAKE_0X_VVRR(V)` */ #define MSGPACK_PREDEF_MAKE_0X_VVRR(V) MSGPACK_VERSION_NUMBER((V&0xFF00)>>8,(V&0xFF),0) /*` `MSGPACK_PREDEF_MAKE_0X_VRRPPPP(V)` */ #define MSGPACK_PREDEF_MAKE_0X_VRRPPPP(V) MSGPACK_VERSION_NUMBER((V&0xF000000)>>24,(V&0xFF0000)>>16,(V&0xFFFF)) /*` `MSGPACK_PREDEF_MAKE_0X_VVRRP(V)` */ #define MSGPACK_PREDEF_MAKE_0X_VVRRP(V) MSGPACK_VERSION_NUMBER((V&0xFF000)>>12,(V&0xFF0)>>4,(V&0xF)) /*` `MSGPACK_PREDEF_MAKE_0X_VRRPP000(V)` */ #define MSGPACK_PREDEF_MAKE_0X_VRRPP000(V) MSGPACK_VERSION_NUMBER((V&0xF0000000)>>28,(V&0xFF00000)>>20,(V&0xFF000)>>12) /*` `MSGPACK_PREDEF_MAKE_0X_VVRRPP(V)` */ #define MSGPACK_PREDEF_MAKE_0X_VVRRPP(V) MSGPACK_VERSION_NUMBER((V&0xFF0000)>>16,(V&0xFF00)>>8,(V&0xFF)) /*` `MSGPACK_PREDEF_MAKE_10_VPPP(V)` */ #define MSGPACK_PREDEF_MAKE_10_VPPP(V) MSGPACK_VERSION_NUMBER(((V)/1000)%10,0,(V)%1000) /*` `MSGPACK_PREDEF_MAKE_10_VRP(V)` */ #define MSGPACK_PREDEF_MAKE_10_VRP(V) MSGPACK_VERSION_NUMBER(((V)/100)%10,((V)/10)%10,(V)%10) /*` `MSGPACK_PREDEF_MAKE_10_VRP000(V)` */ #define MSGPACK_PREDEF_MAKE_10_VRP000(V) MSGPACK_VERSION_NUMBER(((V)/100000)%10,((V)/10000)%10,((V)/1000)%10) /*` `MSGPACK_PREDEF_MAKE_10_VRPP(V)` */ #define MSGPACK_PREDEF_MAKE_10_VRPP(V) MSGPACK_VERSION_NUMBER(((V)/1000)%10,((V)/100)%10,(V)%100) /*` `MSGPACK_PREDEF_MAKE_10_VRR(V)` */ #define MSGPACK_PREDEF_MAKE_10_VRR(V) MSGPACK_VERSION_NUMBER(((V)/100)%10,(V)%100,0) /*` `MSGPACK_PREDEF_MAKE_10_VRRPP(V)` */ #define MSGPACK_PREDEF_MAKE_10_VRRPP(V) MSGPACK_VERSION_NUMBER(((V)/10000)%10,((V)/100)%100,(V)%100) /*` `MSGPACK_PREDEF_MAKE_10_VRR000(V)` */ #define MSGPACK_PREDEF_MAKE_10_VRR000(V) MSGPACK_VERSION_NUMBER(((V)/100000)%10,((V)/1000)%100,0) /*` `MSGPACK_PREDEF_MAKE_10_VV00(V)` */ #define MSGPACK_PREDEF_MAKE_10_VV00(V) MSGPACK_VERSION_NUMBER(((V)/100)%100,0,0) /*` `MSGPACK_PREDEF_MAKE_10_VVRR(V)` */ #define MSGPACK_PREDEF_MAKE_10_VVRR(V) MSGPACK_VERSION_NUMBER(((V)/100)%100,(V)%100,0) /*` `MSGPACK_PREDEF_MAKE_10_VVRRPP(V)` */ #define MSGPACK_PREDEF_MAKE_10_VVRRPP(V) MSGPACK_VERSION_NUMBER(((V)/10000)%100,((V)/100)%100,(V)%100) /*` `MSGPACK_PREDEF_MAKE_10_VVRR0PP00(V)` */ #define MSGPACK_PREDEF_MAKE_10_VVRR0PP00(V) MSGPACK_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,((V)/100)%100) /*` `MSGPACK_PREDEF_MAKE_10_VVRR0PPPP(V)` */ #define MSGPACK_PREDEF_MAKE_10_VVRR0PPPP(V) MSGPACK_VERSION_NUMBER(((V)/10000000)%100,((V)/100000)%100,(V)%10000) /*` `MSGPACK_PREDEF_MAKE_10_VVRR00PP00(V)` */ #define MSGPACK_PREDEF_MAKE_10_VVRR00PP00(V) MSGPACK_VERSION_NUMBER(((V)/100000000)%100,((V)/1000000)%100,((V)/100)%100) /*` [heading `MSGPACK_PREDEF_MAKE_*..` date macros] Date decomposition macros return a date in the relative to the 1970 Epoch date. If the month is not available, January 1st is used as the month and day. If the day is not available, but the month is, the 1st of the month is used as the day. */ /*` `MSGPACK_PREDEF_MAKE_DATE(Y,M,D)` */ #define MSGPACK_PREDEF_MAKE_DATE(Y,M,D) MSGPACK_VERSION_NUMBER((Y)%10000-1970,(M)%100,(D)%100) /*` `MSGPACK_PREDEF_MAKE_YYYYMMDD(V)` */ #define MSGPACK_PREDEF_MAKE_YYYYMMDD(V) MSGPACK_PREDEF_MAKE_DATE(((V)/10000)%10000,((V)/100)%100,(V)%100) /*` `MSGPACK_PREDEF_MAKE_YYYY(V)` */ #define MSGPACK_PREDEF_MAKE_YYYY(V) MSGPACK_PREDEF_MAKE_DATE(V,1,1) /*` `MSGPACK_PREDEF_MAKE_YYYYMM(V)` */ #define MSGPACK_PREDEF_MAKE_YYYYMM(V) MSGPACK_PREDEF_MAKE_DATE((V)/100,(V),1) #endif os.h100644001750001750 165614212656165 21661 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2008-2012 Copyright Franz Detro 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_H #define MSGPACK_PREDEF_OS_H #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #endif aix.h100644001750001750 340214212656165 22431 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_AIX_H #define MSGPACK_PREDEF_OS_AIX_H #include #include /*` [heading `MSGPACK_OS_AIX`] [@http://en.wikipedia.org/wiki/AIX_operating_system IBM AIX] operating system. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`_AIX`] [__predef_detection__]] [[`__TOS_AIX__`] [__predef_detection__]] [[`_AIX43`] [4.3.0]] [[`_AIX41`] [4.1.0]] [[`_AIX32`] [3.2.0]] [[`_AIX3`] [3.0.0]] ] */ #define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(_AIX) || defined(__TOS_AIX__) \ ) # undef MSGPACK_OS_AIX # if !defined(MSGPACK_OS_AIX) && defined(_AIX43) # define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(4,3,0) # endif # if !defined(MSGPACK_OS_AIX) && defined(_AIX41) # define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(4,1,0) # endif # if !defined(MSGPACK_OS_AIX) && defined(_AIX32) # define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(3,2,0) # endif # if !defined(MSGPACK_OS_AIX) && defined(_AIX3) # define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER(3,0,0) # endif # if !defined(MSGPACK_OS_AIX) # define MSGPACK_OS_AIX MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_OS_AIX # define MSGPACK_OS_AIX_AVAILABLE # include #endif #define MSGPACK_OS_AIX_NAME "IBM AIX" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_AIX,MSGPACK_OS_AIX_NAME) #endif amigaos.h100644001750001750 217114212656165 23272 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_AMIGAOS_H #define MSGPACK_PREDEF_OS_AMIGAOS_H #include #include /*` [heading `MSGPACK_OS_AMIGAOS`] [@http://en.wikipedia.org/wiki/AmigaOS AmigaOS] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`AMIGA`] [__predef_detection__]] [[`__amigaos__`] [__predef_detection__]] ] */ #define MSGPACK_OS_AMIGAOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(AMIGA) || defined(__amigaos__) \ ) # undef MSGPACK_OS_AMIGAOS # define MSGPACK_OS_AMIGAOS MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_AMIGAOS # define MSGPACK_OS_AMIGAOS_AVAILABLE # include #endif #define MSGPACK_OS_AMIGAOS_NAME "AmigaOS" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_AMIGAOS,MSGPACK_OS_AMIGAOS_NAME) #endif android.h100644001750001750 212014212656165 23264 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_ADROID_H #define MSGPACK_PREDEF_OS_ADROID_H #include #include /*` [heading `MSGPACK_OS_ANDROID`] [@http://en.wikipedia.org/wiki/Android_%28operating_system%29 Android] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__ANDROID__`] [__predef_detection__]] ] */ #define MSGPACK_OS_ANDROID MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__ANDROID__) \ ) # undef MSGPACK_OS_ANDROID # define MSGPACK_OS_ANDROID MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_ANDROID # define MSGPACK_OS_ANDROID_AVAILABLE # include #endif #define MSGPACK_OS_ANDROID_NAME "Android" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_ANDROID,MSGPACK_OS_ANDROID_NAME) #endif beos.h100644001750001750 202014212656165 22573 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_BEOS_H #define MSGPACK_PREDEF_OS_BEOS_H #include #include /*` [heading `MSGPACK_OS_BEOS`] [@http://en.wikipedia.org/wiki/BeOS BeOS] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__BEOS__`] [__predef_detection__]] ] */ #define MSGPACK_OS_BEOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__BEOS__) \ ) # undef MSGPACK_OS_BEOS # define MSGPACK_OS_BEOS MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_BEOS # define MSGPACK_OS_BEOS_AVAILABLE # include #endif #define MSGPACK_OS_BEOS_NAME "BeOS" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BEOS,MSGPACK_OS_BEOS_NAME) #endif bsd.h100644001750001750 565114212656165 22430 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_BSD_H #define MSGPACK_PREDEF_OS_BSD_H /* Special case: OSX will define BSD predefs if the sys/param.h * header is included. We can guard against that, but only if we * detect OSX first. Hence we will force include OSX detection * before doing any BSD detection. */ #include #include #include /*` [heading `MSGPACK_OS_BSD`] [@http://en.wikipedia.org/wiki/Berkeley_Software_Distribution BSD] operating system. BSD has various branch operating systems possible and each detected individually. This detects the following variations and sets a specific version number macro to match: * `MSGPACK_OS_BSD_DRAGONFLY` [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] * `MSGPACK_OS_BSD_FREE` [@http://en.wikipedia.org/wiki/Freebsd FreeBSD] * `MSGPACK_OS_BSD_BSDI` [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] * `MSGPACK_OS_BSD_NET` [@http://en.wikipedia.org/wiki/Netbsd NetBSD] * `MSGPACK_OS_BSD_OPEN` [@http://en.wikipedia.org/wiki/Openbsd OpenBSD] [note The general `MSGPACK_OS_BSD` is set in all cases to indicate some form of BSD. If the above variants is detected the corresponding macro is also set.] [table [[__predef_symbol__] [__predef_version__]] [[`BSD`] [__predef_detection__]] [[`_SYSTYPE_BSD`] [__predef_detection__]] [[`BSD4_2`] [4.2.0]] [[`BSD4_3`] [4.3.0]] [[`BSD4_4`] [4.4.0]] [[`BSD`] [V.R.0]] ] */ #include #include #include #include #include #ifndef MSGPACK_OS_BSD #define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #endif #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(BSD) || \ defined(_SYSTYPE_BSD) \ ) # undef MSGPACK_OS_BSD # include # if !defined(MSGPACK_OS_BSD) && defined(BSD4_4) # define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER(4,4,0) # endif # if !defined(MSGPACK_OS_BSD) && defined(BSD4_3) # define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER(4,3,0) # endif # if !defined(MSGPACK_OS_BSD) && defined(BSD4_2) # define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER(4,2,0) # endif # if !defined(MSGPACK_OS_BSD) && defined(BSD) # define MSGPACK_OS_BSD MSGPACK_PREDEF_MAKE_10_VVRR(BSD) # endif # if !defined(MSGPACK_OS_BSD) # define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_OS_BSD # define MSGPACK_OS_BSD_AVAILABLE # include #endif #define MSGPACK_OS_BSD_NAME "BSD" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD,MSGPACK_OS_BSD_NAME) #endif bsdi.h100644001750001750 226714212656165 23351 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/bsd/* Copyright Rene Rivera 2012-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_BSD_BSDI_H #define MSGPACK_PREDEF_OS_BSD_BSDI_H #include /*` [heading `MSGPACK_OS_BSD_BSDI`] [@http://en.wikipedia.org/wiki/BSD/OS BSDi BSD/OS] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__bsdi__`] [__predef_detection__]] ] */ #define MSGPACK_OS_BSD_BSDI MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__bsdi__) \ ) # ifndef MSGPACK_OS_BSD_AVAILABLE # define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE # define MSGPACK_OS_BSD_AVAILABLE # endif # undef MSGPACK_OS_BSD_BSDI # define MSGPACK_OS_BSD_BSDI MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_BSD_BSDI # define MSGPACK_OS_BSD_BSDI_AVAILABLE # include #endif #define MSGPACK_OS_BSD_BSDI_NAME "BSDi BSD/OS" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_BSDI,MSGPACK_OS_BSD_BSDI_NAME) #endif dragonfly.h100644001750001750 245714212656165 24416 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/bsd/* Copyright Rene Rivera 2012-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_BSD_DRAGONFLY_H #define MSGPACK_PREDEF_OS_BSD_DRAGONFLY_H #include /*` [heading `MSGPACK_OS_BSD_DRAGONFLY`] [@http://en.wikipedia.org/wiki/DragonFly_BSD DragonFly BSD] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__DragonFly__`] [__predef_detection__]] ] */ #define MSGPACK_OS_BSD_DRAGONFLY MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__DragonFly__) \ ) # ifndef MSGPACK_OS_BSD_AVAILABLE # define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE # define MSGPACK_OS_BSD_AVAILABLE # endif # undef MSGPACK_OS_BSD_DRAGONFLY # if defined(__DragonFly__) # define MSGPACK_OS_DRAGONFLY_BSD MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_OS_BSD_DRAGONFLY # define MSGPACK_OS_BSD_DRAGONFLY_AVAILABLE # include #endif #define MSGPACK_OS_BSD_DRAGONFLY_NAME "DragonFly BSD" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_DRAGONFLY,MSGPACK_OS_BSD_DRAGONFLY_NAME) #endif free.h100644001750001750 305214212656165 23342 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/bsd/* Copyright Rene Rivera 2012-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_BSD_FREE_H #define MSGPACK_PREDEF_OS_BSD_FREE_H #include /*` [heading `MSGPACK_OS_BSD_FREE`] [@http://en.wikipedia.org/wiki/Freebsd FreeBSD] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__FreeBSD__`] [__predef_detection__]] [[`__FreeBSD_version`] [V.R.P]] ] */ #define MSGPACK_OS_BSD_FREE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__FreeBSD__) \ ) # ifndef MSGPACK_OS_BSD_AVAILABLE # define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE # define MSGPACK_OS_BSD_AVAILABLE # endif # undef MSGPACK_OS_BSD_FREE # if defined(__FreeBSD_version) # if __FreeBSD_version < 500000 # define MSGPACK_OS_BSD_FREE \ MSGPACK_PREDEF_MAKE_10_VRP000(__FreeBSD_version) # else # define MSGPACK_OS_BSD_FREE \ MSGPACK_PREDEF_MAKE_10_VRR000(__FreeBSD_version) # endif # else # define MSGPACK_OS_BSD_FREE MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_OS_BSD_FREE # define MSGPACK_OS_BSD_FREE_AVAILABLE # include #endif #define MSGPACK_OS_BSD_FREE_NAME "Free BSD" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_FREE,MSGPACK_OS_BSD_FREE_NAME) #endif net.h100644001750001750 505514212656165 23214 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/bsd/* Copyright Rene Rivera 2012-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_BSD_NET_H #define MSGPACK_PREDEF_OS_BSD_NET_H #include /*` [heading `MSGPACK_OS_BSD_NET`] [@http://en.wikipedia.org/wiki/Netbsd NetBSD] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__NETBSD__`] [__predef_detection__]] [[`__NetBSD__`] [__predef_detection__]] [[`__NETBSD_version`] [V.R.P]] [[`NetBSD0_8`] [0.8.0]] [[`NetBSD0_9`] [0.9.0]] [[`NetBSD1_0`] [1.0.0]] [[`__NetBSD_Version`] [V.R.P]] ] */ #define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__NETBSD__) || defined(__NetBSD__) \ ) # ifndef MSGPACK_OS_BSD_AVAILABLE # define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE # define MSGPACK_OS_BSD_AVAILABLE # endif # undef MSGPACK_OS_BSD_NET # if defined(__NETBSD__) # if defined(__NETBSD_version) # if __NETBSD_version < 500000 # define MSGPACK_OS_BSD_NET \ MSGPACK_PREDEF_MAKE_10_VRP000(__NETBSD_version) # else # define MSGPACK_OS_BSD_NET \ MSGPACK_PREDEF_MAKE_10_VRR000(__NETBSD_version) # endif # else # define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER_AVAILABLE # endif # elif defined(__NetBSD__) # if !defined(MSGPACK_OS_BSD_NET) && defined(NetBSD0_8) # define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER(0,8,0) # endif # if !defined(MSGPACK_OS_BSD_NET) && defined(NetBSD0_9) # define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER(0,9,0) # endif # if !defined(MSGPACK_OS_BSD_NET) && defined(NetBSD1_0) # define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER(1,0,0) # endif # if !defined(MSGPACK_OS_BSD_NET) && defined(__NetBSD_Version) # define MSGPACK_OS_BSD_NET \ MSGPACK_PREDEF_MAKE_10_VVRR00PP00(__NetBSD_Version) # endif # if !defined(MSGPACK_OS_BSD_NET) # define MSGPACK_OS_BSD_NET MSGPACK_VERSION_NUMBER_AVAILABLE # endif # endif #endif #if MSGPACK_OS_BSD_NET # define MSGPACK_OS_BSD_NET_AVAILABLE # include #endif #define MSGPACK_OS_BSD_NET_NAME "DragonFly BSD" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_NET,MSGPACK_OS_BSD_NET_NAME) #endif open.h100644001750001750 1404214212656165 23403 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/bsd/* Copyright Rene Rivera 2012-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_BSD_OPEN_H #define MSGPACK_PREDEF_OS_BSD_OPEN_H #include /*` [heading `MSGPACK_OS_BSD_OPEN`] [@http://en.wikipedia.org/wiki/Openbsd OpenBSD] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__OpenBSD__`] [__predef_detection__]] [[`OpenBSD2_0`] [2.0.0]] [[`OpenBSD2_1`] [2.1.0]] [[`OpenBSD2_2`] [2.2.0]] [[`OpenBSD2_3`] [2.3.0]] [[`OpenBSD2_4`] [2.4.0]] [[`OpenBSD2_5`] [2.5.0]] [[`OpenBSD2_6`] [2.6.0]] [[`OpenBSD2_7`] [2.7.0]] [[`OpenBSD2_8`] [2.8.0]] [[`OpenBSD2_9`] [2.9.0]] [[`OpenBSD3_0`] [3.0.0]] [[`OpenBSD3_1`] [3.1.0]] [[`OpenBSD3_2`] [3.2.0]] [[`OpenBSD3_3`] [3.3.0]] [[`OpenBSD3_4`] [3.4.0]] [[`OpenBSD3_5`] [3.5.0]] [[`OpenBSD3_6`] [3.6.0]] [[`OpenBSD3_7`] [3.7.0]] [[`OpenBSD3_8`] [3.8.0]] [[`OpenBSD3_9`] [3.9.0]] [[`OpenBSD4_0`] [4.0.0]] [[`OpenBSD4_1`] [4.1.0]] [[`OpenBSD4_2`] [4.2.0]] [[`OpenBSD4_3`] [4.3.0]] [[`OpenBSD4_4`] [4.4.0]] [[`OpenBSD4_5`] [4.5.0]] [[`OpenBSD4_6`] [4.6.0]] [[`OpenBSD4_7`] [4.7.0]] [[`OpenBSD4_8`] [4.8.0]] [[`OpenBSD4_9`] [4.9.0]] ] */ #define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__OpenBSD__) \ ) # ifndef MSGPACK_OS_BSD_AVAILABLE # define MSGPACK_OS_BSD MSGPACK_VERSION_NUMBER_AVAILABLE # define MSGPACK_OS_BSD_AVAILABLE # endif # undef MSGPACK_OS_BSD_OPEN # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_0) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,0,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_1) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,1,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_2) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,2,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_3) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,3,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_4) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,4,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_5) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,5,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_6) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,6,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_7) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,7,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_8) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,8,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD2_9) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(2,9,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_0) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,0,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_1) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,1,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_2) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,2,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_3) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,3,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_4) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,4,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_5) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,5,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_6) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,6,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_7) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,7,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_8) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,8,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD3_9) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(3,9,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_0) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,0,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_1) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,1,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_2) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,2,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_3) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,3,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_4) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,4,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_5) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,5,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_6) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,6,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_7) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,7,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_8) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,8,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) && defined(OpenBSD4_9) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER(4,9,0) # endif # if !defined(MSGPACK_OS_BSD_OPEN) # define MSGPACK_OS_BSD_OPEN MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_OS_BSD_OPEN # define MSGPACK_OS_BSD_OPEN_AVAILABLE # include #endif #define MSGPACK_OS_BSD_OPEN_NAME "OpenBSD" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_BSD_OPEN,MSGPACK_OS_BSD_OPEN_NAME) #endif cygwin.h100644001750001750 205214212656165 23150 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_CYGWIN_H #define MSGPACK_PREDEF_OS_CYGWIN_H #include #include /*` [heading `MSGPACK_OS_CYGWIN`] [@http://en.wikipedia.org/wiki/Cygwin Cygwin] evironment. [table [[__predef_symbol__] [__predef_version__]] [[`__CYGWIN__`] [__predef_detection__]] ] */ #define MSGPACK_OS_CYGWIN MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__CYGWIN__) \ ) # undef MSGPACK_OS_CYGWIN # define MSGPACK_OS_CGYWIN MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_CYGWIN # define MSGPACK_OS_CYGWIN_AVAILABLE # include #endif #define MSGPACK_OS_CYGWIN_NAME "Cygwin" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_CYGWIN,MSGPACK_OS_CYGWIN_NAME) #endif haiku.h100644001750001750 211614212656165 22752 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Jessica Hamilton 2014 Copyright Rene Rivera 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_HAIKU_H #define MSGPACK_PREDEF_OS_HAIKU_H #include #include /*` [heading `MSGPACK_OS_HAIKU`] [@http://en.wikipedia.org/wiki/Haiku_(operating_system) Haiku] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__HAIKU__`] [__predef_detection__]] ] */ #define MSGPACK_OS_HAIKU MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__HAIKU__) \ ) # undef MSGPACK_OS_HAIKU # define MSGPACK_OS_HAIKU MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_HAIKU # define MSGPACK_OS_HAIKU_AVAILABLE # include #endif #define MSGPACK_OS_HAIKU_NAME "Haiku" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_HAIKU,MSGPACK_OS_HAIKU_NAME) #endif hpux.h100644001750001750 217714212656165 22644 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_HPUX_H #define MSGPACK_PREDEF_OS_HPUX_H #include #include /*` [heading `MSGPACK_OS_HPUX`] [@http://en.wikipedia.org/wiki/HP-UX HP-UX] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`hpux`] [__predef_detection__]] [[`_hpux`] [__predef_detection__]] [[`__hpux`] [__predef_detection__]] ] */ #define MSGPACK_OS_HPUX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(hpux) || defined(_hpux) || defined(__hpux) \ ) # undef MSGPACK_OS_HPUX # define MSGPACK_OS_HPUX MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_HPUX # define MSGPACK_OS_HPUX_AVAILABLE # include #endif #define MSGPACK_OS_HPUX_NAME "HP-UX" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_HPUX,MSGPACK_OS_HPUX_NAME) #endif ios.h100644001750001750 252414212656165 22446 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Franz Detro 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_IOS_H #define MSGPACK_PREDEF_OS_IOS_H #include #include /*` [heading `MSGPACK_OS_IOS`] [@http://en.wikipedia.org/wiki/iOS iOS] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__APPLE__`] [__predef_detection__]] [[`__MACH__`] [__predef_detection__]] [[`__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__`] [__predef_detection__]] [[`__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__`] [__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__*1000]] ] */ #define MSGPACK_OS_IOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__APPLE__) && defined(__MACH__) && \ defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) \ ) # undef MSGPACK_OS_IOS # define MSGPACK_OS_IOS (__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__*1000) #endif #if MSGPACK_OS_IOS # define MSGPACK_OS_IOS_AVAILABLE # include #endif #define MSGPACK_OS_IOS_NAME "iOS" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_IOS,MSGPACK_OS_IOS_NAME) #endif irix.h100644001750001750 207714212656165 22632 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_IRIX_H #define MSGPACK_PREDEF_OS_IRIX_H #include #include /*` [heading `MSGPACK_OS_IRIX`] [@http://en.wikipedia.org/wiki/Irix IRIX] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`sgi`] [__predef_detection__]] [[`__sgi`] [__predef_detection__]] ] */ #define MSGPACK_OS_IRIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(sgi) || defined(__sgi) \ ) # undef MSGPACK_OS_IRIX # define MSGPACK_OS_IRIX MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_IRIX # define MSGPACK_OS_IRIX_AVAILABLE # include #endif #define MSGPACK_OS_IRIX_NAME "IRIX" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_IRIX,MSGPACK_OS_IRIX_NAME) #endif linux.h100644001750001750 212514212656165 23010 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_LINUX_H #define MSGPACK_PREDEF_OS_LINUX_H #include #include /*` [heading `MSGPACK_OS_LINUX`] [@http://en.wikipedia.org/wiki/Linux Linux] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`linux`] [__predef_detection__]] [[`__linux`] [__predef_detection__]] ] */ #define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(linux) || defined(__linux) \ ) # undef MSGPACK_OS_LINUX # define MSGPACK_OS_LINUX MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_LINUX # define MSGPACK_OS_LINUX_AVAILABLE # include #endif #define MSGPACK_OS_LINUX_NAME "Linux" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_LINUX,MSGPACK_OS_LINUX_NAME) #endif macos.h100644001750001750 350614212656165 22757 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Copyright Franz Detro 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_MACOS_H #define MSGPACK_PREDEF_OS_MACOS_H /* Special case: iOS will define the same predefs as MacOS, and additionally '__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__'. We can guard against that, but only if we detect iOS first. Hence we will force include iOS detection * before doing any MacOS detection. */ #include #include #include /*` [heading `MSGPACK_OS_MACOS`] [@http://en.wikipedia.org/wiki/Mac_OS Mac OS] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`macintosh`] [__predef_detection__]] [[`Macintosh`] [__predef_detection__]] [[`__APPLE__`] [__predef_detection__]] [[`__MACH__`] [__predef_detection__]] [[`__APPLE__`, `__MACH__`] [10.0.0]] [[ /otherwise/ ] [9.0.0]] ] */ #define MSGPACK_OS_MACOS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(macintosh) || defined(Macintosh) || \ (defined(__APPLE__) && defined(__MACH__)) \ ) # undef MSGPACK_OS_MACOS # if !defined(MSGPACK_OS_MACOS) && defined(__APPLE__) && defined(__MACH__) # define MSGPACK_OS_MACOS MSGPACK_VERSION_NUMBER(10,0,0) # endif # if !defined(MSGPACK_OS_MACOS) # define MSGPACK_OS_MACOS MSGPACK_VERSION_NUMBER(9,0,0) # endif #endif #if MSGPACK_OS_MACOS # define MSGPACK_OS_MACOS_AVAILABLE # include #endif #define MSGPACK_OS_MACOS_NAME "Mac OS" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_MACOS,MSGPACK_OS_MACOS_NAME) #endif os400.h100644001750001750 205214212656165 22515 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2011-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_OS400_H #define MSGPACK_PREDEF_OS_OS400_H #include #include /*` [heading `MSGPACK_OS_OS400`] [@http://en.wikipedia.org/wiki/IBM_i IBM OS/400] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__OS400__`] [__predef_detection__]] ] */ #define MSGPACK_OS_OS400 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__OS400__) \ ) # undef MSGPACK_OS_OS400 # define MSGPACK_OS_OS400 MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_OS400 # define MSGPACK_OS_OS400_AVAILABLE # include #endif #define MSGPACK_OS_OS400_NAME "IBM OS/400" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_OS400,MSGPACK_OS_OS400_NAME) #endif qnxnto.h100644001750001750 303014212656165 23174 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_QNXNTO_H #define MSGPACK_PREDEF_OS_QNXNTO_H #include #include /*` [heading `MSGPACK_OS_QNX`] [@http://en.wikipedia.org/wiki/QNX QNX] operating system. Version number available as major, and minor if possible. And version 4 is specifically detected. [table [[__predef_symbol__] [__predef_version__]] [[`__QNX__`] [__predef_detection__]] [[`__QNXNTO__`] [__predef_detection__]] [[`_NTO_VERSION`] [V.R.0]] [[`__QNX__`] [4.0.0]] ] */ #define MSGPACK_OS_QNX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(__QNX__) || defined(__QNXNTO__) \ ) # undef MSGPACK_OS_QNX # if !defined(MSGPACK_OS_QNX) && defined(_NTO_VERSION) # define MSGPACK_OS_QNX MSGPACK_PREDEF_MAKE_10_VVRR(_NTO_VERSION) # endif # if !defined(MSGPACK_OS_QNX) && defined(__QNX__) # define MSGPACK_OS_QNX MSGPACK_VERSION_NUMBER(4,0,0) # endif # if !defined(MSGPACK_OS_QNX) # define MSGPACK_OS_QNX MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_OS_QNX # define MSGPACK_OS_QNX_AVAILABLE # include #endif #define MSGPACK_OS_QNX_NAME "QNX" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_QNX,MSGPACK_OS_QNX_NAME) #endif solaris.h100644001750001750 217714212656165 23334 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_SOLARIS_H #define MSGPACK_PREDEF_OS_SOLARIS_H #include #include /*` [heading `MSGPACK_OS_SOLARIS`] [@http://en.wikipedia.org/wiki/Solaris_Operating_Environment Solaris] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`sun`] [__predef_detection__]] [[`__sun`] [__predef_detection__]] ] */ #define MSGPACK_OS_SOLARIS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(sun) || defined(__sun) \ ) # undef MSGPACK_OS_SOLARIS # define MSGPACK_OS_SOLARIS MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_SOLARIS # define MSGPACK_OS_SOLARIS_AVAILABLE # include #endif #define MSGPACK_OS_SOLARIS_NAME "Solaris" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_SOLARIS,MSGPACK_OS_SOLARIS_NAME) #endif unix.h100644001750001750 361714212656165 22643 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_UNIX_H #define MSGPACK_PREDEF_OS_UNIX_H #include #include /*` [heading `MSGPACK_OS_UNIX`] [@http://en.wikipedia.org/wiki/Unix Unix Environment] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`unix`] [__predef_detection__]] [[`__unix`] [__predef_detection__]] [[`_XOPEN_SOURCE`] [__predef_detection__]] [[`_POSIX_SOURCE`] [__predef_detection__]] ] */ #define MSGPACK_OS_UNIX MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(unix) || defined(__unix) || \ defined(_XOPEN_SOURCE) || defined(_POSIX_SOURCE) # undef MSGPACK_OS_UNIX # define MSGPACK_OS_UNIX MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_UNIX # define MSGPACK_OS_UNIX_AVAILABLE #endif #define MSGPACK_OS_UNIX_NAME "Unix Environment" /*` [heading `MSGPACK_OS_SVR4`] [@http://en.wikipedia.org/wiki/UNIX_System_V SVR4 Environment] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`__sysv__`] [__predef_detection__]] [[`__SVR4`] [__predef_detection__]] [[`__svr4__`] [__predef_detection__]] [[`_SYSTYPE_SVR4`] [__predef_detection__]] ] */ #define MSGPACK_OS_SVR4 MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__sysv__) || defined(__SVR4) || \ defined(__svr4__) || defined(_SYSTYPE_SVR4) # undef MSGPACK_OS_SVR4 # define MSGPACK_OS_SVR4 MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_SVR4 # define MSGPACK_OS_SVR4_AVAILABLE #endif #define MSGPACK_OS_SVR4_NAME "SVR4 Environment" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_UNIX,MSGPACK_OS_UNIX_NAME) MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_SVR4,MSGPACK_OS_SVR4_NAME) #endif vms.h100644001750001750 231214212656165 22454 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2011-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_VMS_H #define MSGPACK_PREDEF_OS_VMS_H #include #include /*` [heading `MSGPACK_OS_VMS`] [@http://en.wikipedia.org/wiki/Vms VMS] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`VMS`] [__predef_detection__]] [[`__VMS`] [__predef_detection__]] [[`__VMS_VER`] [V.R.P]] ] */ #define MSGPACK_OS_VMS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(VMS) || defined(__VMS) \ ) # undef MSGPACK_OS_VMS # if defined(__VMS_VER) # define MSGPACK_OS_VMS MSGPACK_PREDEF_MAKE_10_VVRR00PP00(__VMS_VER) # else # define MSGPACK_OS_VMS MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #if MSGPACK_OS_VMS # define MSGPACK_OS_VMS_AVAILABLE # include #endif #define MSGPACK_OS_VMS_NAME "VMS" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_VMS,MSGPACK_OS_VMS_NAME) #endif windows.h100644001750001750 255614212656165 23353 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/os/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OS_WINDOWS_H #define MSGPACK_PREDEF_OS_WINDOWS_H #include #include /*` [heading `MSGPACK_OS_WINDOWS`] [@http://en.wikipedia.org/wiki/Category:Microsoft_Windows Microsoft Windows] operating system. [table [[__predef_symbol__] [__predef_version__]] [[`_WIN32`] [__predef_detection__]] [[`_WIN64`] [__predef_detection__]] [[`__WIN32__`] [__predef_detection__]] [[`__TOS_WIN__`] [__predef_detection__]] [[`__WINDOWS__`] [__predef_detection__]] ] */ #define MSGPACK_OS_WINDOWS MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if !defined(MSGPACK_PREDEF_DETAIL_OS_DETECTED) && ( \ defined(_WIN32) || defined(_WIN64) || \ defined(__WIN32__) || defined(__TOS_WIN__) || \ defined(__WINDOWS__) \ ) # undef MSGPACK_OS_WINDOWS # define MSGPACK_OS_WINDOWS MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_OS_WINDOWS # define MSGPACK_OS_WINDOWS_AVAILABLE # include #endif #define MSGPACK_OS_WINDOWS_NAME "Microsoft Windows" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_OS_WINDOWS,MSGPACK_OS_WINDOWS_NAME) #endif other.h100644001750001750 51414212656165 22331 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_OTHER_H #define MSGPACK_PREDEF_OTHER_H #include /*#include */ #endif endian.h100644001750001750 1672214212656165 23637 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/other/* Copyright Rene Rivera 2013-2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_ENDIAN_H #define MSGPACK_PREDEF_ENDIAN_H #include #include #include #include #include #include /*` [heading `MSGPACK_ENDIAN_*`] Detection of endian memory ordering. There are four defined macros in this header that define the various generally possible endian memory orderings: * `MSGPACK_ENDIAN_BIG_BYTE`, byte-swapped big-endian. * `MSGPACK_ENDIAN_BIG_WORD`, word-swapped big-endian. * `MSGPACK_ENDIAN_LITTLE_BYTE`, byte-swapped little-endian. * `MSGPACK_ENDIAN_LITTLE_WORD`, word-swapped little-endian. The detection is conservative in that it only identifies endianness that it knows for certain. In particular bi-endianness is not indicated as is it not practically possible to determine the endianness from anything but an operating system provided header. And the currently known headers do not define that programatic bi-endianness is available. This implementation is a compilation of various publicly available information and acquired knowledge: # The indispensable documentation of "Pre-defined Compiler Macros" [@http://sourceforge.net/p/predef/wiki/Endianness Endianness]. # The various endian specifications available in the [@http://wikipedia.org/ Wikipedia] computer architecture pages. # Generally available searches for headers that define endianness. */ #define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #define MSGPACK_ENDIAN_BIG_WORD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #define MSGPACK_ENDIAN_LITTLE_WORD MSGPACK_VERSION_NUMBER_NOT_AVAILABLE /* GNU libc provides a header defining __BYTE_ORDER, or _BYTE_ORDER. * And some OSs provide some for of endian header also. */ #if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD # if MSGPACK_LIB_C_GNU || MSGPACK_OS_ANDROID # include # else # if MSGPACK_OS_MACOS # include # else # if MSGPACK_OS_BSD # if MSGPACK_OS_BSD_OPEN # include # else # include # endif # endif # endif # endif # if defined(__BYTE_ORDER) # if defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN) # undef MSGPACK_ENDIAN_BIG_BYTE # define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif # if defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN) # undef MSGPACK_ENDIAN_LITTLE_BYTE # define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif # if defined(__PDP_ENDIAN) && (__BYTE_ORDER == __PDP_ENDIAN) # undef MSGPACK_ENDIAN_LITTLE_WORD # define MSGPACK_ENDIAN_LITTLE_WORD MSGPACK_VERSION_NUMBER_AVAILABLE # endif # endif # if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER) # if defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN) # undef MSGPACK_ENDIAN_BIG_BYTE # define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif # if defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN) # undef MSGPACK_ENDIAN_LITTLE_BYTE # define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif # if defined(_PDP_ENDIAN) && (_BYTE_ORDER == _PDP_ENDIAN) # undef MSGPACK_ENDIAN_LITTLE_WORD # define MSGPACK_ENDIAN_LITTLE_WORD MSGPACK_VERSION_NUMBER_AVAILABLE # endif # endif #endif /* Built-in byte-swpped big-endian macros. */ #if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD # if (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__)) || \ (defined(_BIG_ENDIAN) && !defined(_LITTLE_ENDIAN)) || \ defined(__ARMEB__) || \ defined(__THUMBEB__) || \ defined(__AARCH64EB__) || \ defined(_MIPSEB) || \ defined(__MIPSEB) || \ defined(__MIPSEB__) # undef MSGPACK_ENDIAN_BIG_BYTE # define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif /* Built-in byte-swpped little-endian macros. */ #if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD # if (defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)) || \ (defined(_LITTLE_ENDIAN) && !defined(_BIG_ENDIAN)) || \ defined(__ARMEL__) || \ defined(__THUMBEL__) || \ defined(__AARCH64EL__) || \ defined(_MIPSEL) || \ defined(__MIPSEL) || \ defined(__MIPSEL__) # undef MSGPACK_ENDIAN_LITTLE_BYTE # define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif /* Some architectures are strictly one endianess (as opposed * the current common bi-endianess). */ #if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD # include # if MSGPACK_ARCH_M68K || \ MSGPACK_ARCH_PARISK || \ MSGPACK_ARCH_SPARC || \ MSGPACK_ARCH_SYS370 || \ MSGPACK_ARCH_SYS390 || \ MSGPACK_ARCH_Z # undef MSGPACK_ENDIAN_BIG_BYTE # define MSGPACK_ENDIAN_BIG_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif # if MSGPACK_ARCH_AMD64 || \ MSGPACK_ARCH_IA64 || \ MSGPACK_ARCH_X86 || \ MSGPACK_ARCH_BLACKFIN # undef MSGPACK_ENDIAN_LITTLE_BYTE # define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif /* Windows on ARM, if not otherwise detected/specified, is always * byte-swaped little-endian. */ #if !MSGPACK_ENDIAN_BIG_BYTE && !MSGPACK_ENDIAN_BIG_WORD && \ !MSGPACK_ENDIAN_LITTLE_BYTE && !MSGPACK_ENDIAN_LITTLE_WORD # if MSGPACK_ARCH_ARM # include # if MSGPACK_OS_WINDOWS # undef MSGPACK_ENDIAN_LITTLE_BYTE # define MSGPACK_ENDIAN_LITTLE_BYTE MSGPACK_VERSION_NUMBER_AVAILABLE # endif # endif #endif #if MSGPACK_ENDIAN_BIG_BYTE # define MSGPACK_ENDIAN_BIG_BYTE_AVAILABLE #endif #if MSGPACK_ENDIAN_BIG_WORD # define MSGPACK_ENDIAN_BIG_WORD_BYTE_AVAILABLE #endif #if MSGPACK_ENDIAN_LITTLE_BYTE # define MSGPACK_ENDIAN_LITTLE_BYTE_AVAILABLE #endif #if MSGPACK_ENDIAN_LITTLE_WORD # define MSGPACK_ENDIAN_LITTLE_WORD_BYTE_AVAILABLE #endif #define MSGPACK_ENDIAN_BIG_BYTE_NAME "Byte-Swapped Big-Endian" #define MSGPACK_ENDIAN_BIG_WORD_NAME "Word-Swapped Big-Endian" #define MSGPACK_ENDIAN_LITTLE_BYTE_NAME "Byte-Swapped Little-Endian" #define MSGPACK_ENDIAN_LITTLE_WORD_NAME "Word-Swapped Little-Endian" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_BIG_BYTE,MSGPACK_ENDIAN_BIG_BYTE_NAME) #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_BIG_WORD,MSGPACK_ENDIAN_BIG_WORD_NAME) #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_LITTLE_BYTE,MSGPACK_ENDIAN_LITTLE_BYTE_NAME) #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_ENDIAN_LITTLE_WORD,MSGPACK_ENDIAN_LITTLE_WORD_NAME) #endif platform.h100644001750001750 112014212656165 23046 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2013 Copyright (c) Microsoft Corporation 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_PLATFORM_H #define MSGPACK_PREDEF_PLATFORM_H #include #include #include #include #include /*#include */ #endif mingw.h100644001750001750 436214212656165 24202 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/platform/* Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_COMPILER_MINGW_H #define MSGPACK_PREDEF_COMPILER_MINGW_H #include #include /*` [heading `MSGPACK_PLAT_MINGW`] [@http://en.wikipedia.org/wiki/MinGW MinGW] platform. Version number available as major, minor, and patch. [table [[__predef_symbol__] [__predef_version__]] [[`__MINGW32__`] [__predef_detection__]] [[`__MINGW64__`] [__predef_detection__]] [[`__MINGW64_VERSION_MAJOR`, `__MINGW64_VERSION_MINOR`] [V.R.0]] [[`__MINGW32_VERSION_MAJOR`, `__MINGW32_VERSION_MINOR`] [V.R.0]] ] */ #define MSGPACK_PLAT_MINGW MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if defined(__MINGW32__) || defined(__MINGW64__) # include <_mingw.h> # if !defined(MSGPACK_PLAT_MINGW_DETECTION) && (defined(__MINGW64_VERSION_MAJOR) && defined(__MINGW64_VERSION_MINOR)) # define MSGPACK_PLAT_MINGW_DETECTION \ MSGPACK_VERSION_NUMBER(__MINGW64_VERSION_MAJOR,__MINGW64_VERSION_MINOR,0) # endif # if !defined(MSGPACK_PLAT_MINGW_DETECTION) && (defined(__MINGW32_VERSION_MAJOR) && defined(__MINGW32_VERSION_MINOR)) # define MSGPACK_PLAT_MINGW_DETECTION \ MSGPACK_VERSION_NUMBER(__MINGW32_MAJOR_VERSION,__MINGW32_MINOR_VERSION,0) # endif # if !defined(MSGPACK_PLAT_MINGW_DETECTION) # define MSGPACK_PLAT_MINGW_DETECTION MSGPACK_VERSION_NUMBER_AVAILABLE # endif #endif #ifdef MSGPACK_PLAT_MINGW_DETECTION # define MSGPACK_PLAT_MINGW_AVAILABLE # if defined(MSGPACK_PREDEF_DETAIL_PLAT_DETECTED) # define MSGPACK_PLAT_MINGW_EMULATED MSGPACK_PLAT_MINGW_DETECTION # else # undef MSGPACK_PLAT_MINGW # define MSGPACK_PLAT_MINGW MSGPACK_PLAT_MINGW_DETECTION # endif # include #endif #define MSGPACK_PLAT_MINGW_NAME "MinGW" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW,MSGPACK_PLAT_MINGW_NAME) #ifdef MSGPACK_PLAT_MINGW_EMULATED #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_MINGW_EMULATED,MSGPACK_PLAT_MINGW_NAME) #endif #endif windows_desktop.h100644001750001750 241414212656165 26300 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/platform/* Copyright (c) Microsoft Corporation 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_PLAT_WINDOWS_DESKTOP_H #define MSGPACK_PREDEF_PLAT_WINDOWS_DESKTOP_H #include #include #include /*` [heading `MSGPACK_PLAT_WINDOWS_DESKTOP`] [table [[__predef_symbol__] [__predef_version__]] [[`!WINAPI_FAMILY`] [__predef_detection__]] [[`WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP`] [__predef_detection__]] ] */ #define MSGPACK_PLAT_WINDOWS_DESKTOP MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if MSGPACK_OS_WINDOWS && \ ( !defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP) ) # undef MSGPACK_PLAT_WINDOWS_DESKTOP # define MSGPACK_PLAT_WINDOWS_DESKTOP MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_PLAT_WINDOWS_DESKTOP # define MSGPACK_PLAT_WINDOWS_DESKTOP_AVALIABLE # include #endif #define MSGPACK_PLAT_WINDOWS_DESKTOP_NAME "Windows Desktop" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_DESKTOP,MSGPACK_PLAT_WINDOWS_DESKTOP_NAME) #endif windows_phone.h100644001750001750 226314212656165 25742 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/platform/* Copyright (c) Microsoft Corporation 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_PLAT_WINDOWS_PHONE_H #define MSGPACK_PREDEF_PLAT_WINDOWS_PHONE_H #include #include #include /*` [heading `MSGPACK_PLAT_WINDOWS_PHONE`] [table [[__predef_symbol__] [__predef_version__]] [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]] ] */ #define MSGPACK_PLAT_WINDOWS_PHONE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP # undef MSGPACK_PLAT_WINDOWS_PHONE # define MSGPACK_PLAT_WINDOWS_PHONE MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_PLAT_WINDOWS_PHONE # define MSGPACK_PLAT_WINDOWS_PHONE_AVALIABLE # include #endif #define MSGPACK_PLAT_WINDOWS_PHONE_NAME "Windows Phone" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_PHONE,MSGPACK_PLAT_WINDOWS_PHONE_NAME) #endif windows_runtime.h100644001750001750 247714212656165 26323 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/platform/* Copyright (c) Microsoft Corporation 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_PLAT_WINDOWS_RUNTIME_H #define MSGPACK_PREDEF_PLAT_WINDOWS_RUNTIME_H #include #include #include /*` [heading `MSGPACK_PLAT_WINDOWS_RUNTIME`] [table [[__predef_symbol__] [__predef_version__]] [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]] [[`WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP`] [__predef_detection__]] ] */ #define MSGPACK_PLAT_WINDOWS_RUNTIME MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && \ ( WINAPI_FAMILY == WINAPI_FAMILY_APP || WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP ) # undef MSGPACK_PLAT_WINDOWS_RUNTIME # define MSGPACK_PLAT_WINDOWS_RUNTIME MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_PLAT_WINDOWS_RUNTIME # define MSGPACK_PLAT_WINDOWS_RUNTIME_AVALIABLE # include #endif #define MSGPACK_PLAT_WINDOWS_RUNTIME_NAME "Windows Runtime" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_RUNTIME,MSGPACK_PLAT_WINDOWS_RUNTIME_NAME) #endif windows_store.h100644001750001750 224714212656165 25767 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/platform/* Copyright (c) Microsoft Corporation 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_PLAT_WINDOWS_STORE_H #define MSGPACK_PREDEF_PLAT_WINDOWS_STORE_H #include #include #include /*` [heading `MSGPACK_PLAT_WINDOWS_STORE`] [table [[__predef_symbol__] [__predef_version__]] [[`WINAPI_FAMILY == WINAPI_FAMILY_APP`] [__predef_detection__]] ] */ #define MSGPACK_PLAT_WINDOWS_STORE MSGPACK_VERSION_NUMBER_NOT_AVAILABLE #if MSGPACK_OS_WINDOWS && defined(WINAPI_FAMILY) && WINAPI_FAMILY == WINAPI_FAMILY_APP # undef MSGPACK_PLAT_WINDOWS_STORE # define MSGPACK_PLAT_WINDOWS_STORE MSGPACK_VERSION_NUMBER_AVAILABLE #endif #if MSGPACK_PLAT_WINDOWS_STORE # define MSGPACK_PLAT_WINDOWS_STORE_AVALIABLE # include #endif #define MSGPACK_PLAT_WINDOWS_STORE_NAME "Windows Store" #include MSGPACK_PREDEF_DECLARE_TEST(MSGPACK_PLAT_WINDOWS_STORE,MSGPACK_PLAT_WINDOWS_STORE_NAME) #endif version.h100644001750001750 55114212656165 22676 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2014 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_VERSION_H #define MSGPACK_PREDEF_VERSION_H #include #define MSGPACK_PREDEF_VERSION MSGPACK_VERSION_NUMBER(1,2,0) #endif version_number.h100644001750001750 314614212656165 24271 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/predef/* Copyright Rene Rivera 2005 Copyright Rene Rivera 2008-2013 Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_PREDEF_VERSION_NUMBER_H #define MSGPACK_PREDEF_VERSION_NUMBER_H /*` [heading `MSGPACK_VERSION_NUMBER`] `` MSGPACK_VERSION_NUMBER(major,minor,patch) `` Defines standard version numbers, with these properties: * Decimal base whole numbers in the range \[0,1000000000). The number range is designed to allow for a (2,2,5) triplet. Which fits within a 32 bit value. * The `major` number can be in the \[0,99\] range. * The `minor` number can be in the \[0,99\] range. * The `patch` number can be in the \[0,99999\] range. * Values can be specified in any base. As the defined value is an constant expression. * Value can be directly used in both preprocessor and compiler expressions for comparison to other similarly defined values. * The implementation enforces the individual ranges for the major, minor, and patch numbers. And values over the ranges are truncated (modulo). */ #define MSGPACK_VERSION_NUMBER(major,minor,patch) \ ( (((major)%100)*10000000) + (((minor)%100)*100000) + ((patch)%100000) ) #define MSGPACK_VERSION_NUMBER_MAX \ MSGPACK_VERSION_NUMBER(99,99,99999) #define MSGPACK_VERSION_NUMBER_ZERO \ MSGPACK_VERSION_NUMBER(0,0,0) #define MSGPACK_VERSION_NUMBER_MIN \ MSGPACK_VERSION_NUMBER(0,0,1) #define MSGPACK_VERSION_NUMBER_AVAILABLE \ MSGPACK_VERSION_NUMBER_MIN #define MSGPACK_VERSION_NUMBER_NOT_AVAILABLE \ MSGPACK_VERSION_NUMBER_ZERO #endif sbuffer.h100644001750001750 434514212656165 21425 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C simple buffer implementation * * Copyright (C) 2008-2009 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_SBUFFER_H #define MSGPACK_SBUFFER_H #include #include #ifdef __cplusplus extern "C" { #endif /** * @defgroup msgpack_sbuffer Simple buffer * @ingroup msgpack_buffer * @{ */ typedef struct msgpack_sbuffer { size_t size; char* data; size_t alloc; } msgpack_sbuffer; static inline void msgpack_sbuffer_init(msgpack_sbuffer* sbuf) { memset(sbuf, 0, sizeof(msgpack_sbuffer)); } static inline void msgpack_sbuffer_destroy(msgpack_sbuffer* sbuf) { free(sbuf->data); } static inline msgpack_sbuffer* msgpack_sbuffer_new(void) { return (msgpack_sbuffer*)calloc(1, sizeof(msgpack_sbuffer)); } static inline void msgpack_sbuffer_free(msgpack_sbuffer* sbuf) { if(sbuf == NULL) { return; } msgpack_sbuffer_destroy(sbuf); free(sbuf); } #ifndef MSGPACK_SBUFFER_INIT_SIZE #define MSGPACK_SBUFFER_INIT_SIZE 8192 #endif static inline int msgpack_sbuffer_write(void* data, const char* buf, size_t len) { msgpack_sbuffer* sbuf = (msgpack_sbuffer*)data; if(sbuf->alloc - sbuf->size < len) { void* tmp; size_t nsize = (sbuf->alloc) ? sbuf->alloc * 2 : MSGPACK_SBUFFER_INIT_SIZE; while(nsize < sbuf->size + len) { size_t tmp_nsize = nsize * 2; if (tmp_nsize <= nsize) { nsize = sbuf->size + len; break; } nsize = tmp_nsize; } tmp = realloc(sbuf->data, nsize); if(!tmp) { return -1; } sbuf->data = (char*)tmp; sbuf->alloc = nsize; } memcpy(sbuf->data + sbuf->size, buf, len); sbuf->size += len; return 0; } static inline char* msgpack_sbuffer_release(msgpack_sbuffer* sbuf) { char* tmp = sbuf->data; sbuf->size = 0; sbuf->data = NULL; sbuf->alloc = 0; return tmp; } static inline void msgpack_sbuffer_clear(msgpack_sbuffer* sbuf) { sbuf->size = 0; } /** @} */ #ifdef __cplusplus } #endif #endif /* msgpack/sbuffer.h */ sysdep.h100644001750001750 1333614212656165 21320 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack system dependencies * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_SYSDEP_H #define MSGPACK_SYSDEP_H #include #include #include #if defined(_MSC_VER) && _MSC_VER < 1600 typedef __int8 int8_t; typedef unsigned __int8 uint8_t; typedef __int16 int16_t; typedef unsigned __int16 uint16_t; typedef __int32 int32_t; typedef unsigned __int32 uint32_t; typedef __int64 int64_t; typedef unsigned __int64 uint64_t; #elif defined(_MSC_VER) // && _MSC_VER >= 1600 # include #else # include # include #endif #if !defined(MSGPACK_DLLEXPORT) #if defined(_MSC_VER) # define MSGPACK_DLLEXPORT __declspec(dllexport) #else /* _MSC_VER */ # define MSGPACK_DLLEXPORT #endif /* _MSC_VER */ #endif #ifdef _WIN32 # define _msgpack_atomic_counter_header typedef long _msgpack_atomic_counter_t; # define _msgpack_sync_decr_and_fetch(ptr) InterlockedDecrement(ptr) # define _msgpack_sync_incr_and_fetch(ptr) InterlockedIncrement(ptr) #elif defined(__GNUC__) && ((__GNUC__*10 + __GNUC_MINOR__) < 41) # if defined(__cplusplus) # define _msgpack_atomic_counter_header "gcc_atomic.hpp" # else # define _msgpack_atomic_counter_header "gcc_atomic.h" # endif #else typedef unsigned int _msgpack_atomic_counter_t; # define _msgpack_sync_decr_and_fetch(ptr) __sync_sub_and_fetch(ptr, 1) # define _msgpack_sync_incr_and_fetch(ptr) __sync_add_and_fetch(ptr, 1) #endif #ifdef _WIN32 # ifdef __cplusplus /* numeric_limits::min,max */ # ifdef max # undef max # endif # ifdef min # undef min # endif # endif #else /* _*/ #include /* __BYTE_ORDER */ # if defined(linux) # include # endif #endif #if MSGPACK_ENDIAN_LITTLE_BYTE # ifdef _WIN32 # if defined(ntohs) # define _msgpack_be16(x) ntohs(x) # elif defined(_byteswap_ushort) || (defined(_MSC_VER) && _MSC_VER >= 1400) # define _msgpack_be16(x) ((uint16_t)_byteswap_ushort((unsigned short)x)) # else # define _msgpack_be16(x) ( \ ((((uint16_t)x) << 8) ) | \ ((((uint16_t)x) >> 8) ) ) # endif # else # define _msgpack_be16(x) ntohs(x) # endif # ifdef _WIN32 # if defined(ntohl) # define _msgpack_be32(x) ntohl(x) # elif defined(_byteswap_ulong) || (defined(_MSC_VER) && _MSC_VER >= 1400) # define _msgpack_be32(x) ((uint32_t)_byteswap_ulong((unsigned long)x)) # else # define _msgpack_be32(x) \ ( ((((uint32_t)x) << 24) ) | \ ((((uint32_t)x) << 8) & 0x00ff0000U ) | \ ((((uint32_t)x) >> 8) & 0x0000ff00U ) | \ ((((uint32_t)x) >> 24) ) ) # endif # else # define _msgpack_be32(x) ntohl(x) # endif # if defined(_byteswap_uint64) || (defined(_MSC_VER) && _MSC_VER >= 1400) # define _msgpack_be64(x) (_byteswap_uint64(x)) # elif defined(bswap_64) # define _msgpack_be64(x) bswap_64(x) # elif defined(__DARWIN_OSSwapInt64) # define _msgpack_be64(x) __DARWIN_OSSwapInt64(x) # else # define _msgpack_be64(x) \ ( ((((uint64_t)x) << 56) ) | \ ((((uint64_t)x) << 40) & 0x00ff000000000000ULL ) | \ ((((uint64_t)x) << 24) & 0x0000ff0000000000ULL ) | \ ((((uint64_t)x) << 8) & 0x000000ff00000000ULL ) | \ ((((uint64_t)x) >> 8) & 0x00000000ff000000ULL ) | \ ((((uint64_t)x) >> 24) & 0x0000000000ff0000ULL ) | \ ((((uint64_t)x) >> 40) & 0x000000000000ff00ULL ) | \ ((((uint64_t)x) >> 56) ) ) # endif #elif MSGPACK_ENDIAN_BIG_BYTE # define _msgpack_be16(x) (x) # define _msgpack_be32(x) (x) # define _msgpack_be64(x) (x) #else # error msgpack-c supports only big endian and little endian #endif /* MSGPACK_ENDIAN_LITTLE_BYTE */ #define _msgpack_load16(cast, from, to) do { \ memcpy((cast*)(to), (from), sizeof(cast)); \ *(to) = _msgpack_be16(*(to)); \ } while (0); #define _msgpack_load32(cast, from, to) do { \ memcpy((cast*)(to), (from), sizeof(cast)); \ *(to) = _msgpack_be32(*(to)); \ } while (0); #define _msgpack_load64(cast, from, to) do { \ memcpy((cast*)(to), (from), sizeof(cast)); \ *(to) = _msgpack_be64(*(to)); \ } while (0); #define _msgpack_store16(to, num) \ do { uint16_t val = _msgpack_be16(num); memcpy(to, &val, 2); } while(0) #define _msgpack_store32(to, num) \ do { uint32_t val = _msgpack_be32(num); memcpy(to, &val, 4); } while(0) #define _msgpack_store64(to, num) \ do { uint64_t val = _msgpack_be64(num); memcpy(to, &val, 8); } while(0) /* #define _msgpack_load16(cast, from) \ ({ cast val; memcpy(&val, (char*)from, 2); _msgpack_be16(val); }) #define _msgpack_load32(cast, from) \ ({ cast val; memcpy(&val, (char*)from, 4); _msgpack_be32(val); }) #define _msgpack_load64(cast, from) \ ({ cast val; memcpy(&val, (char*)from, 8); _msgpack_be64(val); }) */ #if !defined(__cplusplus) && defined(_MSC_VER) # if !defined(FALSE) # define FALSE (0) # endif # if !defined(TRUE) # define TRUE (!FALSE) # endif # if _MSC_VER >= 1800 # include # else # define bool int # define true TRUE # define false FALSE # endif # define inline __inline #endif #endif /* msgpack/sysdep.h */ unpack.h100644001750001750 1607614212656165 21276 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C unpacking routine * * Copyright (C) 2008-2009 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_UNPACKER_H #define MSGPACK_UNPACKER_H #include "zone.h" #include "object.h" #include #ifdef __cplusplus extern "C" { #endif /** * @defgroup msgpack_unpack Deserializer * @ingroup msgpack * @{ */ typedef struct msgpack_unpacked { msgpack_zone* zone; msgpack_object data; } msgpack_unpacked; typedef enum { MSGPACK_UNPACK_SUCCESS = 2, MSGPACK_UNPACK_EXTRA_BYTES = 1, MSGPACK_UNPACK_CONTINUE = 0, MSGPACK_UNPACK_PARSE_ERROR = -1, MSGPACK_UNPACK_NOMEM_ERROR = -2 } msgpack_unpack_return; MSGPACK_DLLEXPORT msgpack_unpack_return msgpack_unpack_next(msgpack_unpacked* result, const char* data, size_t len, size_t* off); /** @} */ /** * @defgroup msgpack_unpacker Streaming deserializer * @ingroup msgpack * @{ */ typedef struct msgpack_unpacker { char* buffer; size_t used; size_t free; size_t off; size_t parsed; msgpack_zone* z; size_t initial_buffer_size; void* ctx; } msgpack_unpacker; #ifndef MSGPACK_UNPACKER_INIT_BUFFER_SIZE #define MSGPACK_UNPACKER_INIT_BUFFER_SIZE (64*1024) #endif /** * Initializes a streaming deserializer. * The initialized deserializer must be destroyed by msgpack_unpacker_destroy(msgpack_unpacker*). */ MSGPACK_DLLEXPORT bool msgpack_unpacker_init(msgpack_unpacker* mpac, size_t initial_buffer_size); /** * Destroys a streaming deserializer initialized by msgpack_unpacker_init(msgpack_unpacker*, size_t). */ MSGPACK_DLLEXPORT void msgpack_unpacker_destroy(msgpack_unpacker* mpac); /** * Creates a streaming deserializer. * The created deserializer must be destroyed by msgpack_unpacker_free(msgpack_unpacker*). */ MSGPACK_DLLEXPORT msgpack_unpacker* msgpack_unpacker_new(size_t initial_buffer_size); /** * Frees a streaming deserializer created by msgpack_unpacker_new(size_t). */ MSGPACK_DLLEXPORT void msgpack_unpacker_free(msgpack_unpacker* mpac); #ifndef MSGPACK_UNPACKER_RESERVE_SIZE #define MSGPACK_UNPACKER_RESERVE_SIZE (32*1024) #endif /** * Reserves free space of the internal buffer. * Use this function to fill the internal buffer with * msgpack_unpacker_buffer(msgpack_unpacker*), * msgpack_unpacker_buffer_capacity(const msgpack_unpacker*) and * msgpack_unpacker_buffer_consumed(msgpack_unpacker*). */ static inline bool msgpack_unpacker_reserve_buffer(msgpack_unpacker* mpac, size_t size); /** * Gets pointer to the free space of the internal buffer. * Use this function to fill the internal buffer with * msgpack_unpacker_reserve_buffer(msgpack_unpacker*, size_t), * msgpack_unpacker_buffer_capacity(const msgpack_unpacker*) and * msgpack_unpacker_buffer_consumed(msgpack_unpacker*). */ static inline char* msgpack_unpacker_buffer(msgpack_unpacker* mpac); /** * Gets size of the free space of the internal buffer. * Use this function to fill the internal buffer with * msgpack_unpacker_reserve_buffer(msgpack_unpacker*, size_t), * msgpack_unpacker_buffer(const msgpack_unpacker*) and * msgpack_unpacker_buffer_consumed(msgpack_unpacker*). */ static inline size_t msgpack_unpacker_buffer_capacity(const msgpack_unpacker* mpac); /** * Notifies the deserializer that the internal buffer filled. * Use this function to fill the internal buffer with * msgpack_unpacker_reserve_buffer(msgpack_unpacker*, size_t), * msgpack_unpacker_buffer(msgpack_unpacker*) and * msgpack_unpacker_buffer_capacity(const msgpack_unpacker*). */ static inline void msgpack_unpacker_buffer_consumed(msgpack_unpacker* mpac, size_t size); /** * Deserializes one object. * Returns true if it successes. Otherwise false is returned. * @param pac pointer to an initialized msgpack_unpacked object. */ MSGPACK_DLLEXPORT msgpack_unpack_return msgpack_unpacker_next(msgpack_unpacker* mpac, msgpack_unpacked* pac); /** * Initializes a msgpack_unpacked object. * The initialized object must be destroyed by msgpack_unpacked_destroy(msgpack_unpacker*). * Use the object with msgpack_unpacker_next(msgpack_unpacker*, msgpack_unpacked*) or * msgpack_unpack_next(msgpack_unpacked*, const char*, size_t, size_t*). */ static inline void msgpack_unpacked_init(msgpack_unpacked* result); /** * Destroys a streaming deserializer initialized by msgpack_unpacked(). */ static inline void msgpack_unpacked_destroy(msgpack_unpacked* result); /** * Releases the memory zone from msgpack_unpacked object. * The released zone must be freed by msgpack_zone_free(msgpack_zone*). */ static inline msgpack_zone* msgpack_unpacked_release_zone(msgpack_unpacked* result); MSGPACK_DLLEXPORT int msgpack_unpacker_execute(msgpack_unpacker* mpac); MSGPACK_DLLEXPORT msgpack_object msgpack_unpacker_data(msgpack_unpacker* mpac); MSGPACK_DLLEXPORT msgpack_zone* msgpack_unpacker_release_zone(msgpack_unpacker* mpac); MSGPACK_DLLEXPORT void msgpack_unpacker_reset_zone(msgpack_unpacker* mpac); MSGPACK_DLLEXPORT void msgpack_unpacker_reset(msgpack_unpacker* mpac); static inline size_t msgpack_unpacker_message_size(const msgpack_unpacker* mpac); /** @} */ // obsolete MSGPACK_DLLEXPORT msgpack_unpack_return msgpack_unpack(const char* data, size_t len, size_t* off, msgpack_zone* result_zone, msgpack_object* result); static inline size_t msgpack_unpacker_parsed_size(const msgpack_unpacker* mpac); MSGPACK_DLLEXPORT bool msgpack_unpacker_flush_zone(msgpack_unpacker* mpac); MSGPACK_DLLEXPORT bool msgpack_unpacker_expand_buffer(msgpack_unpacker* mpac, size_t size); static inline bool msgpack_unpacker_reserve_buffer(msgpack_unpacker* mpac, size_t size) { if(mpac->free >= size) { return true; } return msgpack_unpacker_expand_buffer(mpac, size); } static inline char* msgpack_unpacker_buffer(msgpack_unpacker* mpac) { return mpac->buffer + mpac->used; } static inline size_t msgpack_unpacker_buffer_capacity(const msgpack_unpacker* mpac) { return mpac->free; } static inline void msgpack_unpacker_buffer_consumed(msgpack_unpacker* mpac, size_t size) { mpac->used += size; mpac->free -= size; } static inline size_t msgpack_unpacker_message_size(const msgpack_unpacker* mpac) { return mpac->parsed - mpac->off + mpac->used; } static inline size_t msgpack_unpacker_parsed_size(const msgpack_unpacker* mpac) { return mpac->parsed; } static inline void msgpack_unpacked_init(msgpack_unpacked* result) { memset(result, 0, sizeof(msgpack_unpacked)); } static inline void msgpack_unpacked_destroy(msgpack_unpacked* result) { if(result->zone != NULL) { msgpack_zone_free(result->zone); result->zone = NULL; memset(&result->data, 0, sizeof(msgpack_object)); } } static inline msgpack_zone* msgpack_unpacked_release_zone(msgpack_unpacked* result) { if(result->zone != NULL) { msgpack_zone* z = result->zone; result->zone = NULL; return z; } return NULL; } #ifdef __cplusplus } #endif #endif /* msgpack/unpack.h */ unpack_define.h100644001750001750 440114212656165 22555 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack unpacking routine template * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_UNPACK_DEFINE_H #define MSGPACK_UNPACK_DEFINE_H #include "msgpack/sysdep.h" #include #include #include #include #ifdef __cplusplus extern "C" { #endif #ifndef MSGPACK_EMBED_STACK_SIZE #define MSGPACK_EMBED_STACK_SIZE 32 #endif typedef enum { MSGPACK_CS_HEADER = 0x00, // nil //MSGPACK_CS_ = 0x01, //MSGPACK_CS_ = 0x02, // false //MSGPACK_CS_ = 0x03, // true MSGPACK_CS_BIN_8 = 0x04, MSGPACK_CS_BIN_16 = 0x05, MSGPACK_CS_BIN_32 = 0x06, MSGPACK_CS_EXT_8 = 0x07, MSGPACK_CS_EXT_16 = 0x08, MSGPACK_CS_EXT_32 = 0x09, MSGPACK_CS_FLOAT = 0x0a, MSGPACK_CS_DOUBLE = 0x0b, MSGPACK_CS_UINT_8 = 0x0c, MSGPACK_CS_UINT_16 = 0x0d, MSGPACK_CS_UINT_32 = 0x0e, MSGPACK_CS_UINT_64 = 0x0f, MSGPACK_CS_INT_8 = 0x10, MSGPACK_CS_INT_16 = 0x11, MSGPACK_CS_INT_32 = 0x12, MSGPACK_CS_INT_64 = 0x13, MSGPACK_CS_FIXEXT_1 = 0x14, MSGPACK_CS_FIXEXT_2 = 0x15, MSGPACK_CS_FIXEXT_4 = 0x16, MSGPACK_CS_FIXEXT_8 = 0x17, MSGPACK_CS_FIXEXT_16 = 0x18, MSGPACK_CS_STR_8 = 0x19, // str8 MSGPACK_CS_STR_16 = 0x1a, // str16 MSGPACK_CS_STR_32 = 0x1b, // str32 MSGPACK_CS_ARRAY_16 = 0x1c, MSGPACK_CS_ARRAY_32 = 0x1d, MSGPACK_CS_MAP_16 = 0x1e, MSGPACK_CS_MAP_32 = 0x1f, //MSGPACK_ACS_BIG_INT_VALUE, //MSGPACK_ACS_BIG_FLOAT_VALUE, MSGPACK_ACS_STR_VALUE, MSGPACK_ACS_BIN_VALUE, MSGPACK_ACS_EXT_VALUE } msgpack_unpack_state; typedef enum { MSGPACK_CT_ARRAY_ITEM, MSGPACK_CT_MAP_KEY, MSGPACK_CT_MAP_VALUE } msgpack_container_type; #ifdef __cplusplus } #endif #endif /* msgpack/unpack_define.h */ unpack_template.h100644001750001750 4161114212656165 23162 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack unpacking routine template * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef msgpack_unpack_func #error msgpack_unpack_func template is not defined #endif #ifndef msgpack_unpack_callback #error msgpack_unpack_callback template is not defined #endif #ifndef msgpack_unpack_struct #error msgpack_unpack_struct template is not defined #endif #ifndef msgpack_unpack_struct_decl #define msgpack_unpack_struct_decl(name) msgpack_unpack_struct(name) #endif #ifndef msgpack_unpack_object #error msgpack_unpack_object type is not defined #endif #ifndef msgpack_unpack_user #error msgpack_unpack_user type is not defined #endif #ifndef USE_CASE_RANGE #if !defined(_MSC_VER) #define USE_CASE_RANGE #endif #endif msgpack_unpack_struct_decl(_stack) { msgpack_unpack_object obj; size_t count; unsigned int ct; msgpack_unpack_object map_key; }; msgpack_unpack_struct_decl(_context) { msgpack_unpack_user user; unsigned int cs; unsigned int trail; unsigned int top; /* msgpack_unpack_struct(_stack)* stack; unsigned int stack_size; msgpack_unpack_struct(_stack) embed_stack[MSGPACK_EMBED_STACK_SIZE]; */ msgpack_unpack_struct(_stack) stack[MSGPACK_EMBED_STACK_SIZE]; }; msgpack_unpack_func(void, _init)(msgpack_unpack_struct(_context)* ctx) { ctx->cs = MSGPACK_CS_HEADER; ctx->trail = 0; ctx->top = 0; /* ctx->stack = ctx->embed_stack; ctx->stack_size = MSGPACK_EMBED_STACK_SIZE; */ ctx->stack[0].obj = msgpack_unpack_callback(_root)(&ctx->user); } /* msgpack_unpack_func(void, _destroy)(msgpack_unpack_struct(_context)* ctx) { if(ctx->stack_size != MSGPACK_EMBED_STACK_SIZE) { free(ctx->stack); } } */ msgpack_unpack_func(msgpack_unpack_object, _data)(msgpack_unpack_struct(_context)* ctx) { return (ctx)->stack[0].obj; } msgpack_unpack_func(int, _execute)(msgpack_unpack_struct(_context)* ctx, const char* data, size_t len, size_t* off) { assert(len >= *off); { const unsigned char* p = (unsigned char*)data + *off; const unsigned char* const pe = (unsigned char*)data + len; const void* n = NULL; unsigned int trail = ctx->trail; unsigned int cs = ctx->cs; unsigned int top = ctx->top; msgpack_unpack_struct(_stack)* stack = ctx->stack; /* unsigned int stack_size = ctx->stack_size; */ msgpack_unpack_user* user = &ctx->user; msgpack_unpack_object obj; msgpack_unpack_struct(_stack)* c = NULL; int ret; #define push_simple_value(func) \ if(msgpack_unpack_callback(func)(user, &obj) < 0) { goto _failed; } \ goto _push #define push_fixed_value(func, arg) \ if(msgpack_unpack_callback(func)(user, arg, &obj) < 0) { goto _failed; } \ goto _push #define push_variable_value(func, base, pos, len) \ if(msgpack_unpack_callback(func)(user, \ (const char*)base, (const char*)pos, len, &obj) < 0) { goto _failed; } \ goto _push #define again_fixed_trail(_cs, trail_len) \ trail = trail_len; \ cs = _cs; \ goto _fixed_trail_again #define again_fixed_trail_if_zero(_cs, trail_len, ifzero) \ trail = trail_len; \ if(trail == 0) { goto ifzero; } \ cs = _cs; \ goto _fixed_trail_again #define start_container(func, count_, ct_) \ if(top >= MSGPACK_EMBED_STACK_SIZE) { goto _failed; } /* FIXME */ \ if(msgpack_unpack_callback(func)(user, count_, &stack[top].obj) < 0) { goto _failed; } \ if((count_) == 0) { obj = stack[top].obj; goto _push; } \ stack[top].ct = ct_; \ stack[top].count = count_; \ ++top; \ /*printf("container %d count %d stack %d\n",stack[top].obj,count_,top);*/ \ /*printf("stack push %d\n", top);*/ \ /* FIXME \ if(top >= stack_size) { \ if(stack_size == MSGPACK_EMBED_STACK_SIZE) { \ size_t csize = sizeof(msgpack_unpack_struct(_stack)) * MSGPACK_EMBED_STACK_SIZE; \ size_t nsize = csize * 2; \ msgpack_unpack_struct(_stack)* tmp = (msgpack_unpack_struct(_stack)*)malloc(nsize); \ if(tmp == NULL) { goto _failed; } \ memcpy(tmp, ctx->stack, csize); \ ctx->stack = stack = tmp; \ ctx->stack_size = stack_size = MSGPACK_EMBED_STACK_SIZE * 2; \ } else { \ size_t nsize = sizeof(msgpack_unpack_struct(_stack)) * ctx->stack_size * 2; \ msgpack_unpack_struct(_stack)* tmp = (msgpack_unpack_struct(_stack)*)realloc(ctx->stack, nsize); \ if(tmp == NULL) { goto _failed; } \ ctx->stack = stack = tmp; \ ctx->stack_size = stack_size = stack_size * 2; \ } \ } \ */ \ goto _header_again #define NEXT_CS(p) \ ((unsigned int)*p & 0x1f) #ifdef USE_CASE_RANGE #define SWITCH_RANGE_BEGIN switch(*p) { #define SWITCH_RANGE(FROM, TO) case FROM ... TO: #define SWITCH_RANGE_DEFAULT default: #define SWITCH_RANGE_END } #else #define SWITCH_RANGE_BEGIN { if(0) { #define SWITCH_RANGE(FROM, TO) } else if(FROM <= *p && *p <= TO) { #define SWITCH_RANGE_DEFAULT } else { #define SWITCH_RANGE_END } } #endif if(p == pe) { goto _out; } do { switch(cs) { case MSGPACK_CS_HEADER: SWITCH_RANGE_BEGIN SWITCH_RANGE(0x00, 0x7f) // Positive Fixnum push_fixed_value(_uint8, *(uint8_t*)p); SWITCH_RANGE(0xe0, 0xff) // Negative Fixnum push_fixed_value(_int8, *(int8_t*)p); SWITCH_RANGE(0xc0, 0xdf) // Variable switch(*p) { case 0xc0: // nil push_simple_value(_nil); //case 0xc1: // string // again_terminal_trail(NEXT_CS(p), p+1); case 0xc2: // false push_simple_value(_false); case 0xc3: // true push_simple_value(_true); case 0xc4: // bin 8 case 0xc5: // bin 16 case 0xc6: // bin 32 again_fixed_trail(NEXT_CS(p), 1 << (((unsigned int)*p) & 0x03)); case 0xc7: // ext 8 case 0xc8: // ext 16 case 0xc9: // ext 32 again_fixed_trail(NEXT_CS(p), 1 << ((((unsigned int)*p) + 1) & 0x03)); case 0xca: // float case 0xcb: // double case 0xcc: // unsigned int 8 case 0xcd: // unsigned int 16 case 0xce: // unsigned int 32 case 0xcf: // unsigned int 64 case 0xd0: // signed int 8 case 0xd1: // signed int 16 case 0xd2: // signed int 32 case 0xd3: // signed int 64 again_fixed_trail(NEXT_CS(p), 1 << (((unsigned int)*p) & 0x03)); case 0xd4: // fixext 1 case 0xd5: // fixext 2 case 0xd6: // fixext 4 case 0xd7: // fixext 8 again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, (1 << (((unsigned int)*p) & 0x03)) + 1, _ext_zero); case 0xd8: // fixext 16 again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 16+1, _ext_zero); case 0xd9: // str 8 case 0xda: // str 16 case 0xdb: // str 32 again_fixed_trail(NEXT_CS(p), 1 << ((((unsigned int)*p) & 0x03) - 1)); case 0xdc: // array 16 case 0xdd: // array 32 case 0xde: // map 16 case 0xdf: // map 32 again_fixed_trail(NEXT_CS(p), 2u << (((unsigned int)*p) & 0x01)); default: goto _failed; } SWITCH_RANGE(0xa0, 0xbf) // FixStr again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, ((unsigned int)*p & 0x1f), _str_zero); SWITCH_RANGE(0x90, 0x9f) // FixArray start_container(_array, ((unsigned int)*p) & 0x0f, MSGPACK_CT_ARRAY_ITEM); SWITCH_RANGE(0x80, 0x8f) // FixMap start_container(_map, ((unsigned int)*p) & 0x0f, MSGPACK_CT_MAP_KEY); SWITCH_RANGE_DEFAULT goto _failed; SWITCH_RANGE_END // end MSGPACK_CS_HEADER _fixed_trail_again: ++p; default: if((size_t)(pe - p) < trail) { goto _out; } n = p; p += trail - 1; switch(cs) { //case MSGPACK_CS_ //case MSGPACK_CS_ case MSGPACK_CS_FLOAT: { union { uint32_t i; float f; } mem; _msgpack_load32(uint32_t, n, &mem.i); push_fixed_value(_float, mem.f); } case MSGPACK_CS_DOUBLE: { union { uint64_t i; double f; } mem; _msgpack_load64(uint64_t, n, &mem.i); #if defined(TARGET_OS_IPHONE) // ok #elif defined(__arm__) && !(__ARM_EABI__) // arm-oabi // https://github.com/msgpack/msgpack-perl/pull/1 mem.i = (mem.i & 0xFFFFFFFFUL) << 32UL | (mem.i >> 32UL); #endif push_fixed_value(_double, mem.f); } case MSGPACK_CS_UINT_8: push_fixed_value(_uint8, *(uint8_t*)n); case MSGPACK_CS_UINT_16:{ uint16_t tmp; _msgpack_load16(uint16_t,n,&tmp); push_fixed_value(_uint16, tmp); } case MSGPACK_CS_UINT_32:{ uint32_t tmp; _msgpack_load32(uint32_t,n,&tmp); push_fixed_value(_uint32, tmp); } case MSGPACK_CS_UINT_64:{ uint64_t tmp; _msgpack_load64(uint64_t,n,&tmp); push_fixed_value(_uint64, tmp); } case MSGPACK_CS_INT_8: push_fixed_value(_int8, *(int8_t*)n); case MSGPACK_CS_INT_16:{ int16_t tmp; _msgpack_load16(int16_t,n,&tmp); push_fixed_value(_int16, tmp); } case MSGPACK_CS_INT_32:{ int32_t tmp; _msgpack_load32(int32_t,n,&tmp); push_fixed_value(_int32, tmp); } case MSGPACK_CS_INT_64:{ int64_t tmp; _msgpack_load64(int64_t,n,&tmp); push_fixed_value(_int64, tmp); } case MSGPACK_CS_FIXEXT_1: again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 1+1, _ext_zero); case MSGPACK_CS_FIXEXT_2: again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 2+1, _ext_zero); case MSGPACK_CS_FIXEXT_4: again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 4+1, _ext_zero); case MSGPACK_CS_FIXEXT_8: again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 8+1, _ext_zero); case MSGPACK_CS_FIXEXT_16: again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, 16+1, _ext_zero); case MSGPACK_CS_STR_8: again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, *(uint8_t*)n, _str_zero); case MSGPACK_CS_BIN_8: again_fixed_trail_if_zero(MSGPACK_ACS_BIN_VALUE, *(uint8_t*)n, _bin_zero); case MSGPACK_CS_EXT_8: again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, (*(uint8_t*)n) + 1, _ext_zero); case MSGPACK_CS_STR_16:{ uint16_t tmp; _msgpack_load16(uint16_t,n,&tmp); again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, tmp, _str_zero); } case MSGPACK_CS_BIN_16:{ uint16_t tmp; _msgpack_load16(uint16_t,n,&tmp); again_fixed_trail_if_zero(MSGPACK_ACS_BIN_VALUE, tmp, _bin_zero); } case MSGPACK_CS_EXT_16:{ uint16_t tmp; _msgpack_load16(uint16_t,n,&tmp); again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, tmp + 1, _ext_zero); } case MSGPACK_CS_STR_32:{ uint32_t tmp; _msgpack_load32(uint32_t,n,&tmp); again_fixed_trail_if_zero(MSGPACK_ACS_STR_VALUE, tmp, _str_zero); } case MSGPACK_CS_BIN_32:{ uint32_t tmp; _msgpack_load32(uint32_t,n,&tmp); again_fixed_trail_if_zero(MSGPACK_ACS_BIN_VALUE, tmp, _bin_zero); } case MSGPACK_CS_EXT_32:{ uint32_t tmp; _msgpack_load32(uint32_t,n,&tmp); again_fixed_trail_if_zero(MSGPACK_ACS_EXT_VALUE, tmp + 1, _ext_zero); } case MSGPACK_ACS_STR_VALUE: _str_zero: push_variable_value(_str, data, n, trail); case MSGPACK_ACS_BIN_VALUE: _bin_zero: push_variable_value(_bin, data, n, trail); case MSGPACK_ACS_EXT_VALUE: _ext_zero: push_variable_value(_ext, data, n, trail); case MSGPACK_CS_ARRAY_16:{ uint16_t tmp; _msgpack_load16(uint16_t,n,&tmp); start_container(_array, tmp, MSGPACK_CT_ARRAY_ITEM); } case MSGPACK_CS_ARRAY_32:{ /* FIXME security guard */ uint32_t tmp; _msgpack_load32(uint32_t,n,&tmp); start_container(_array, tmp, MSGPACK_CT_ARRAY_ITEM); } case MSGPACK_CS_MAP_16:{ uint16_t tmp; _msgpack_load16(uint16_t,n,&tmp); start_container(_map, tmp, MSGPACK_CT_MAP_KEY); } case MSGPACK_CS_MAP_32:{ /* FIXME security guard */ uint32_t tmp; _msgpack_load32(uint32_t,n,&tmp); start_container(_map, tmp, MSGPACK_CT_MAP_KEY); } default: goto _failed; } } _push: if(top == 0) { goto _finish; } c = &stack[top-1]; switch(c->ct) { case MSGPACK_CT_ARRAY_ITEM: if(msgpack_unpack_callback(_array_item)(user, &c->obj, obj) < 0) { goto _failed; } if(--c->count == 0) { obj = c->obj; --top; /*printf("stack pop %d\n", top);*/ goto _push; } goto _header_again; case MSGPACK_CT_MAP_KEY: c->map_key = obj; c->ct = MSGPACK_CT_MAP_VALUE; goto _header_again; case MSGPACK_CT_MAP_VALUE: if(msgpack_unpack_callback(_map_item)(user, &c->obj, c->map_key, obj) < 0) { goto _failed; } if(--c->count == 0) { obj = c->obj; --top; /*printf("stack pop %d\n", top);*/ goto _push; } c->ct = MSGPACK_CT_MAP_KEY; goto _header_again; default: goto _failed; } _header_again: cs = MSGPACK_CS_HEADER; ++p; } while(p != pe); goto _out; _finish: stack[0].obj = obj; ++p; ret = 1; /*printf("-- finish --\n"); */ goto _end; _failed: /*printf("** FAILED **\n"); */ ret = -1; goto _end; _out: ret = 0; goto _end; _end: ctx->cs = cs; ctx->trail = trail; ctx->top = top; *off = (size_t)(p - (const unsigned char*)data); return ret; } } #undef msgpack_unpack_func #undef msgpack_unpack_callback #undef msgpack_unpack_struct #undef msgpack_unpack_object #undef msgpack_unpack_user #undef push_simple_value #undef push_fixed_value #undef push_variable_value #undef again_fixed_trail #undef again_fixed_trail_if_zero #undef start_container #undef NEXT_CS #undef SWITCH_RANGE_BEGIN #undef SWITCH_RANGE #undef SWITCH_RANGE_DEFAULT #undef SWITCH_RANGE_END util.h100644001750001750 55214212656165 20722 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C utilities * * Copyright (C) 2014 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_UTIL_H #define MSGPACK_UTIL_H #define MSGPACK_UNUSED(a) (void)(a) #endif /* MSGPACK_UTIL_H */ version.h100644001750001750 160414212656165 21451 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C version information * * Copyright (C) 2008-2009 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_VERSION_H #define MSGPACK_VERSION_H #ifdef __cplusplus extern "C" { #endif MSGPACK_DLLEXPORT const char* msgpack_version(void); MSGPACK_DLLEXPORT int msgpack_version_major(void); MSGPACK_DLLEXPORT int msgpack_version_minor(void); MSGPACK_DLLEXPORT int msgpack_version_revision(void); #include "version_master.h" #define MSGPACK_STR(v) #v #define MSGPACK_VERSION_I(maj, min, rev) MSGPACK_STR(maj) "." MSGPACK_STR(min) "." MSGPACK_STR(rev) #define MSGPACK_VERSION MSGPACK_VERSION_I(MSGPACK_VERSION_MAJOR, MSGPACK_VERSION_MINOR, MSGPACK_VERSION_REVISION) #ifdef __cplusplus } #endif #endif /* msgpack/version.h */ version_master.h100644001750001750 15114212656165 23000 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack#define MSGPACK_VERSION_MAJOR 1 #define MSGPACK_VERSION_MINOR 4 #define MSGPACK_VERSION_REVISION 0 vrefbuffer.h100644001750001750 661514212656165 22127 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C zero-copy buffer implementation * * Copyright (C) 2008-2009 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_VREFBUFFER_H #define MSGPACK_VREFBUFFER_H #include "zone.h" #include #ifndef _WIN32 #include #else struct iovec { void *iov_base; size_t iov_len; }; #endif #ifdef __cplusplus extern "C" { #endif /** * @defgroup msgpack_vrefbuffer Vectored Referencing buffer * @ingroup msgpack_buffer * @{ */ struct msgpack_vrefbuffer_chunk; typedef struct msgpack_vrefbuffer_chunk msgpack_vrefbuffer_chunk; typedef struct msgpack_vrefbuffer_inner_buffer { size_t free; char* ptr; msgpack_vrefbuffer_chunk* head; } msgpack_vrefbuffer_inner_buffer; typedef struct msgpack_vrefbuffer { struct iovec* tail; struct iovec* end; struct iovec* array; size_t chunk_size; size_t ref_size; msgpack_vrefbuffer_inner_buffer inner_buffer; } msgpack_vrefbuffer; #ifndef MSGPACK_VREFBUFFER_REF_SIZE #define MSGPACK_VREFBUFFER_REF_SIZE 32 #endif #ifndef MSGPACK_VREFBUFFER_CHUNK_SIZE #define MSGPACK_VREFBUFFER_CHUNK_SIZE 8192 #endif MSGPACK_DLLEXPORT bool msgpack_vrefbuffer_init(msgpack_vrefbuffer* vbuf, size_t ref_size, size_t chunk_size); MSGPACK_DLLEXPORT void msgpack_vrefbuffer_destroy(msgpack_vrefbuffer* vbuf); static inline msgpack_vrefbuffer* msgpack_vrefbuffer_new(size_t ref_size, size_t chunk_size); static inline void msgpack_vrefbuffer_free(msgpack_vrefbuffer* vbuf); static inline int msgpack_vrefbuffer_write(void* data, const char* buf, size_t len); static inline const struct iovec* msgpack_vrefbuffer_vec(const msgpack_vrefbuffer* vref); static inline size_t msgpack_vrefbuffer_veclen(const msgpack_vrefbuffer* vref); MSGPACK_DLLEXPORT int msgpack_vrefbuffer_append_copy(msgpack_vrefbuffer* vbuf, const char* buf, size_t len); MSGPACK_DLLEXPORT int msgpack_vrefbuffer_append_ref(msgpack_vrefbuffer* vbuf, const char* buf, size_t len); MSGPACK_DLLEXPORT int msgpack_vrefbuffer_migrate(msgpack_vrefbuffer* vbuf, msgpack_vrefbuffer* to); MSGPACK_DLLEXPORT void msgpack_vrefbuffer_clear(msgpack_vrefbuffer* vref); /** @} */ static inline msgpack_vrefbuffer* msgpack_vrefbuffer_new(size_t ref_size, size_t chunk_size) { msgpack_vrefbuffer* vbuf = (msgpack_vrefbuffer*)malloc(sizeof(msgpack_vrefbuffer)); if (vbuf == NULL) return NULL; if(!msgpack_vrefbuffer_init(vbuf, ref_size, chunk_size)) { free(vbuf); return NULL; } return vbuf; } static inline void msgpack_vrefbuffer_free(msgpack_vrefbuffer* vbuf) { if(vbuf == NULL) { return; } msgpack_vrefbuffer_destroy(vbuf); free(vbuf); } static inline int msgpack_vrefbuffer_write(void* data, const char* buf, size_t len) { msgpack_vrefbuffer* vbuf = (msgpack_vrefbuffer*)data; if(len < vbuf->ref_size) { return msgpack_vrefbuffer_append_copy(vbuf, buf, len); } else { return msgpack_vrefbuffer_append_ref(vbuf, buf, len); } } static inline const struct iovec* msgpack_vrefbuffer_vec(const msgpack_vrefbuffer* vref) { return vref->array; } static inline size_t msgpack_vrefbuffer_veclen(const msgpack_vrefbuffer* vref) { return (size_t)(vref->tail - vref->array); } #ifdef __cplusplus } #endif #endif /* msgpack/vrefbuffer.h */ zbuffer.h100644001750001750 1146714212656165 21457 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C deflate buffer implementation * * Copyright (C) 2010 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_ZBUFFER_H #define MSGPACK_ZBUFFER_H #include "sysdep.h" #include #include #include #ifdef __cplusplus extern "C" { #endif /** * @defgroup msgpack_zbuffer Compressed buffer * @ingroup msgpack_buffer * @{ */ typedef struct msgpack_zbuffer { z_stream stream; char* data; size_t init_size; } msgpack_zbuffer; #ifndef MSGPACK_ZBUFFER_INIT_SIZE #define MSGPACK_ZBUFFER_INIT_SIZE 8192 #endif static inline bool msgpack_zbuffer_init( msgpack_zbuffer* zbuf, int level, size_t init_size); static inline void msgpack_zbuffer_destroy(msgpack_zbuffer* zbuf); static inline msgpack_zbuffer* msgpack_zbuffer_new(int level, size_t init_size); static inline void msgpack_zbuffer_free(msgpack_zbuffer* zbuf); static inline char* msgpack_zbuffer_flush(msgpack_zbuffer* zbuf); static inline const char* msgpack_zbuffer_data(const msgpack_zbuffer* zbuf); static inline size_t msgpack_zbuffer_size(const msgpack_zbuffer* zbuf); static inline bool msgpack_zbuffer_reset(msgpack_zbuffer* zbuf); static inline void msgpack_zbuffer_reset_buffer(msgpack_zbuffer* zbuf); static inline char* msgpack_zbuffer_release_buffer(msgpack_zbuffer* zbuf); #ifndef MSGPACK_ZBUFFER_RESERVE_SIZE #define MSGPACK_ZBUFFER_RESERVE_SIZE 512 #endif static inline int msgpack_zbuffer_write(void* data, const char* buf, size_t len); static inline bool msgpack_zbuffer_expand(msgpack_zbuffer* zbuf); static inline bool msgpack_zbuffer_init(msgpack_zbuffer* zbuf, int level, size_t init_size) { memset(zbuf, 0, sizeof(msgpack_zbuffer)); zbuf->init_size = init_size; if(deflateInit(&zbuf->stream, level) != Z_OK) { free(zbuf->data); return false; } return true; } static inline void msgpack_zbuffer_destroy(msgpack_zbuffer* zbuf) { deflateEnd(&zbuf->stream); free(zbuf->data); } static inline msgpack_zbuffer* msgpack_zbuffer_new(int level, size_t init_size) { msgpack_zbuffer* zbuf = (msgpack_zbuffer*)malloc(sizeof(msgpack_zbuffer)); if (zbuf == NULL) return NULL; if(!msgpack_zbuffer_init(zbuf, level, init_size)) { free(zbuf); return NULL; } return zbuf; } static inline void msgpack_zbuffer_free(msgpack_zbuffer* zbuf) { if(zbuf == NULL) { return; } msgpack_zbuffer_destroy(zbuf); free(zbuf); } static inline bool msgpack_zbuffer_expand(msgpack_zbuffer* zbuf) { size_t used = (char*)zbuf->stream.next_out - zbuf->data; size_t csize = used + zbuf->stream.avail_out; size_t nsize = (csize == 0) ? zbuf->init_size : csize * 2; char* tmp = (char*)realloc(zbuf->data, nsize); if(tmp == NULL) { return false; } zbuf->data = tmp; zbuf->stream.next_out = (Bytef*)(tmp + used); zbuf->stream.avail_out = nsize - used; return true; } static inline int msgpack_zbuffer_write(void* data, const char* buf, size_t len) { msgpack_zbuffer* zbuf = (msgpack_zbuffer*)data; zbuf->stream.next_in = (Bytef*)buf; zbuf->stream.avail_in = len; while(zbuf->stream.avail_in > 0) { if(zbuf->stream.avail_out < MSGPACK_ZBUFFER_RESERVE_SIZE) { if(!msgpack_zbuffer_expand(zbuf)) { return -1; } } if(deflate(&zbuf->stream, Z_NO_FLUSH) != Z_OK) { return -1; } } return 0; } static inline char* msgpack_zbuffer_flush(msgpack_zbuffer* zbuf) { while(true) { switch(deflate(&zbuf->stream, Z_FINISH)) { case Z_STREAM_END: return zbuf->data; case Z_OK: if(!msgpack_zbuffer_expand(zbuf)) { return NULL; } break; default: return NULL; } } } static inline const char* msgpack_zbuffer_data(const msgpack_zbuffer* zbuf) { return zbuf->data; } static inline size_t msgpack_zbuffer_size(const msgpack_zbuffer* zbuf) { return (char*)zbuf->stream.next_out - zbuf->data; } static inline void msgpack_zbuffer_reset_buffer(msgpack_zbuffer* zbuf) { zbuf->stream.avail_out += (char*)zbuf->stream.next_out - zbuf->data; zbuf->stream.next_out = (Bytef*)zbuf->data; } static inline bool msgpack_zbuffer_reset(msgpack_zbuffer* zbuf) { if(deflateReset(&zbuf->stream) != Z_OK) { return false; } msgpack_zbuffer_reset_buffer(zbuf); return true; } static inline char* msgpack_zbuffer_release_buffer(msgpack_zbuffer* zbuf) { char* tmp = zbuf->data; zbuf->data = NULL; zbuf->stream.next_out = NULL; zbuf->stream.avail_out = 0; return tmp; } /** @} */ #ifdef __cplusplus } #endif #endif /* msgpack/zbuffer.h */ zone.h100644001750001750 751314212656165 20744 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/include/msgpack/* * MessagePack for C memory pool implementation * * Copyright (C) 2008-2010 FURUHASHI Sadayuki * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #ifndef MSGPACK_ZONE_H #define MSGPACK_ZONE_H #include "sysdep.h" #ifdef __cplusplus extern "C" { #endif /** * @defgroup msgpack_zone Memory zone * @ingroup msgpack * @{ */ typedef struct msgpack_zone_finalizer { void (*func)(void* data); void* data; } msgpack_zone_finalizer; typedef struct msgpack_zone_finalizer_array { msgpack_zone_finalizer* tail; msgpack_zone_finalizer* end; msgpack_zone_finalizer* array; } msgpack_zone_finalizer_array; struct msgpack_zone_chunk; typedef struct msgpack_zone_chunk msgpack_zone_chunk; typedef struct msgpack_zone_chunk_list { size_t free; char* ptr; msgpack_zone_chunk* head; } msgpack_zone_chunk_list; typedef struct msgpack_zone { msgpack_zone_chunk_list chunk_list; msgpack_zone_finalizer_array finalizer_array; size_t chunk_size; } msgpack_zone; #ifndef MSGPACK_ZONE_CHUNK_SIZE #define MSGPACK_ZONE_CHUNK_SIZE 8192 #endif MSGPACK_DLLEXPORT bool msgpack_zone_init(msgpack_zone* zone, size_t chunk_size); MSGPACK_DLLEXPORT void msgpack_zone_destroy(msgpack_zone* zone); MSGPACK_DLLEXPORT msgpack_zone* msgpack_zone_new(size_t chunk_size); MSGPACK_DLLEXPORT void msgpack_zone_free(msgpack_zone* zone); static inline void* msgpack_zone_malloc(msgpack_zone* zone, size_t size); static inline void* msgpack_zone_malloc_no_align(msgpack_zone* zone, size_t size); static inline bool msgpack_zone_push_finalizer(msgpack_zone* zone, void (*func)(void* data), void* data); static inline void msgpack_zone_swap(msgpack_zone* a, msgpack_zone* b); MSGPACK_DLLEXPORT bool msgpack_zone_is_empty(msgpack_zone* zone); MSGPACK_DLLEXPORT void msgpack_zone_clear(msgpack_zone* zone); /** @} */ #ifndef MSGPACK_ZONE_ALIGN #define MSGPACK_ZONE_ALIGN sizeof(void*) #endif MSGPACK_DLLEXPORT void* msgpack_zone_malloc_expand(msgpack_zone* zone, size_t size); static inline void* msgpack_zone_malloc_no_align(msgpack_zone* zone, size_t size) { char* ptr; msgpack_zone_chunk_list* cl = &zone->chunk_list; if(zone->chunk_list.free < size) { return msgpack_zone_malloc_expand(zone, size); } ptr = cl->ptr; cl->free -= size; cl->ptr += size; return ptr; } static inline void* msgpack_zone_malloc(msgpack_zone* zone, size_t size) { char* aligned = (char*)( (size_t)( zone->chunk_list.ptr + (MSGPACK_ZONE_ALIGN - 1) ) / MSGPACK_ZONE_ALIGN * MSGPACK_ZONE_ALIGN ); size_t adjusted_size = size + (aligned - zone->chunk_list.ptr); if(zone->chunk_list.free >= adjusted_size) { zone->chunk_list.free -= adjusted_size; zone->chunk_list.ptr += adjusted_size; return aligned; } { void* ptr = msgpack_zone_malloc_expand(zone, size + (MSGPACK_ZONE_ALIGN - 1)); if (ptr) { return (char*)((size_t)(ptr) / MSGPACK_ZONE_ALIGN * MSGPACK_ZONE_ALIGN); } } return NULL; } bool msgpack_zone_push_finalizer_expand(msgpack_zone* zone, void (*func)(void* data), void* data); static inline bool msgpack_zone_push_finalizer(msgpack_zone* zone, void (*func)(void* data), void* data) { msgpack_zone_finalizer_array* const fa = &zone->finalizer_array; msgpack_zone_finalizer* fin = fa->tail; if(fin == fa->end) { return msgpack_zone_push_finalizer_expand(zone, func, data); } fin->func = func; fin->data = data; ++fa->tail; return true; } static inline void msgpack_zone_swap(msgpack_zone* a, msgpack_zone* b) { msgpack_zone tmp = *a; *a = *b; *b = tmp; } #ifdef __cplusplus } #endif #endif /* msgpack/zone.h */ MessagePack.pm100644001750001750 1672014212656165 20730 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/lib/Datapackage Data::MessagePack; use strict; use warnings; use 5.008001; our $VERSION = '1.02'; sub true () { require Data::MessagePack::Boolean; no warnings 'once'; return $Data::MessagePack::Boolean::true; } sub false () { require Data::MessagePack::Boolean; no warnings 'once'; return $Data::MessagePack::Boolean::false; } if ( !__PACKAGE__->can('pack') ) { # this idea comes from Text::Xslate my $backend = $ENV{PERL_DATA_MESSAGEPACK} || ($ENV{PERL_ONLY} ? 'pp' : ''); if ( $backend !~ /\b pp \b/xms ) { eval { require XSLoader; XSLoader::load(__PACKAGE__, $VERSION); }; die $@ if $@ && $backend =~ /\b xs \b/xms; # force XS } if ( !__PACKAGE__->can('pack') ) { require 'Data/MessagePack/PP.pm'; } } sub new { my($class, %args) = @_; return bless \%args, $class; } foreach my $name(qw(canonical prefer_integer utf8)) { my $setter = sub { my($self, $value) = @_; $self->{$name} = defined($value) ? $value : 1; return $self; }; my $getter = sub { my($self) = @_; return $self->{$name}; }; no strict 'refs'; *{$name} = $setter; *{'get_' . $name} = $getter; } sub encode; *encode = __PACKAGE__->can('pack'); sub decode; *decode = __PACKAGE__->can('unpack'); 1; __END__ =head1 NAME Data::MessagePack - MessagePack serializing/deserializing =head1 SYNOPSIS use Data::MessagePack; my $mp = Data::MessagePack->new(); $mp->canonical->utf8->prefer_integer if $needed; my $packed = $mp->pack($dat); my $unpacked = $mp->unpack($dat); =head1 DESCRIPTION This module converts Perl data structures to MessagePack and vice versa. =head1 ABOUT MESSAGEPACK FORMAT MessagePack is a binary-based efficient object serialization format. It enables to exchange structured objects between many languages like JSON. But unlike JSON, it is very fast and small. =head2 ADVANTAGES =over 4 =item PORTABLE The MessagePack format does not depend on language nor byte order. =item SMALL IN SIZE say length(JSON::XS::encode_json({a=>1, b=>2})); # => 13 say length(Storable::nfreeze({a=>1, b=>2})); # => 21 say length(Data::MessagePack->pack({a=>1, b=>2})); # => 7 The MessagePack format saves memory than JSON and Storable format. =item STREAMING DESERIALIZER MessagePack supports streaming deserializer. It is useful for networking such as RPC. See L for details. =back If you want to get more information about the MessagePack format, please visit to L. =head1 METHODS =over =item C<< my $packed = Data::MessagePack->pack($data[, $max_depth]); >> Pack the $data to messagepack format string. This method throws an exception when the perl structure is nested more than $max_depth levels(default: 512) in order to detect circular references. Data::MessagePack->pack() throws an exception when encountering a blessed perl object, because MessagePack is a language-independent format. =item C<< my $unpacked = Data::MessagePack->unpack($msgpackstr); >> unpack the $msgpackstr to a MessagePack format string. =item C<< my $mp = Data::MesssagePack->new() >> Creates a new MessagePack instance. =item C<< $mp = $mp->prefer_integer([ $enable ]) >> =item C<< $enabled = $mp->get_prefer_integer() >> If I<$enable> is true (or missing), then the C method tries a string as an integer if the string looks like an integer. =item C<< $mp = $mp->canonical([ $enable ]) >> =item C<< $enabled = $mp->get_canonical() >> If I<$enable> is true (or missing), then the C method will output packed data by sorting their keys. This is adding a comparatively high overhead. =item C<< $mp = $mp->utf8([ $enable ]) >> =item C<< $enabled = $mp->get_utf8() >> If I<$enable> is true (or missing), then the C method will apply C to all the string values. In other words, this property tell C<$mp> to deal with B. See L for the meaning of B. =item C<< $packed = $mp->pack($data) >> =item C<< $packed = $mp->encode($data) >> Same as C<< Data::MessagePack->pack() >>, but properties are respected. =item C<< $data = $mp->unpack($data) >> =item C<< $data = $mp->decode($data) >> Same as C<< Data::MessagePack->unpack() >>, but properties are respected. =back =head1 Configuration Variables (DEPRECATED) =over 4 =item $Data::MessagePack::PreferInteger Packs a string as an integer, when it looks like an integer. This variable is B. Use C<< $msgpack->prefer_integer >> property instead. =back =head1 SPEED This is a result of F and F on my SC440(Linux 2.6.32-23-server #37-Ubuntu SMP). (You should benchmark them with B data if the speed matters, of course.) -- serialize JSON::XS: 2.3 Data::MessagePack: 0.24 Storable: 2.21 Benchmark: running json, mp, storable for at least 1 CPU seconds... json: 1 wallclock secs ( 1.00 usr + 0.01 sys = 1.01 CPU) @ 141939.60/s (n=143359) mp: 1 wallclock secs ( 1.06 usr + 0.00 sys = 1.06 CPU) @ 355500.94/s (n=376831) storable: 1 wallclock secs ( 1.12 usr + 0.00 sys = 1.12 CPU) @ 38399.11/s (n=43007) Rate storable json mp storable 38399/s -- -73% -89% json 141940/s 270% -- -60% mp 355501/s 826% 150% -- -- deserialize JSON::XS: 2.3 Data::MessagePack: 0.24 Storable: 2.21 Benchmark: running json, mp, storable for at least 1 CPU seconds... json: 0 wallclock secs ( 1.05 usr + 0.00 sys = 1.05 CPU) @ 179442.86/s (n=188415) mp: 0 wallclock secs ( 1.01 usr + 0.00 sys = 1.01 CPU) @ 212909.90/s (n=215039) storable: 2 wallclock secs ( 1.14 usr + 0.00 sys = 1.14 CPU) @ 114974.56/s (n=131071) Rate storable json mp storable 114975/s -- -36% -46% json 179443/s 56% -- -16% mp 212910/s 85% 19% -- =head1 CAVEAT =head2 Unpacking 64 bit integers This module can unpack 64 bit integers even if your perl does not support them (i.e. where C<< perl -V:ivsize >> is 4), but you cannot calculate these values unless you use C. =head1 TODO =over =item Error handling MessagePack cannot deal with complex scalars such as object references, filehandles, and code references. We should report the errors more kindly. =item Streaming deserializer The current implementation of the streaming deserializer does not have internal buffers while some other bindings (such as Ruby binding) does. This limitation will astonish those who try to unpack byte streams with an arbitrary buffer size (e.g. C<< while(read($socket, $buffer, $arbitrary_buffer_size)) { ... } >>). We should implement the internal buffer for the unpacker. =back =head1 FAQ =over 4 =item Why does Data::MessagePack have pure perl implementations? msgpack C library uses C99 feature, VC++6 does not support C99. So pure perl version is needed for VC++ users. =back =head1 AUTHORS Tokuhiro Matsuno Makamaka Hannyaharamitu gfx =head1 THANKS TO Jun Kuriyama Dan Kogai FURUHASHI Sadayuki hanekomu Kazuho Oku syohex =head1 LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L is the official web site for the MessagePack format. L L =cut Boolean.pm100644001750001750 46714212656165 22250 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/lib/Data/MessagePackpackage Data::MessagePack::Boolean; use strict; use warnings; use overload 'bool' => sub { ${ $_[0] } }, '0+' => sub { ${ $_[0] } }, '""' => sub { ${ $_[0] } ? 'true' : 'false' }, fallback => 1, ; our $true = do { bless \(my $dummy = 1) }; our $false = do { bless \(my $dummy = 0) }; 1; PP.pm100644001750001750 5142714212656165 21252 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/lib/Data/MessagePackpackage Data::MessagePack::PP; use 5.008001; use strict; use warnings; no warnings 'recursion'; use Carp (); use B (); use Config; # See also # http://redmine.msgpack.org/projects/msgpack/wiki/FormatSpec # http://cpansearch.perl.org/src/YAPPO/Data-Model-0.00006/lib/Data/Model/Driver/Memcached.pm # http://frox25.no-ip.org/~mtve/wiki/MessagePack.html : reference to using CORE::pack, CORE::unpack BEGIN { my $unpack_int64_slow; my $unpack_uint64_slow; if(!eval { pack 'Q', 1 }) { # don't have quad types # emulates quad types with Math::BigInt. # very slow but works well. $unpack_int64_slow = sub { require Math::BigInt; my $high = unpack_uint32( $_[0], $_[1] ); my $low = unpack_uint32( $_[0], $_[1] + 4); if($high < 0xF0000000) { # positive $high = Math::BigInt->new( $high ); $low = Math::BigInt->new( $low ); return +($high << 32 | $low)->bstr; } else { # negative $high = Math::BigInt->new( ~$high ); $low = Math::BigInt->new( ~$low ); return +( -($high << 32 | $low + 1) )->bstr; } }; $unpack_uint64_slow = sub { require Math::BigInt; my $high = Math::BigInt->new( unpack_uint32( $_[0], $_[1]) ); my $low = Math::BigInt->new( unpack_uint32( $_[0], $_[1] + 4) ); return +($high << 32 | $low)->bstr; }; } *unpack_uint16 = sub { return unpack 'n', substr( $_[0], $_[1], 2 ) }; *unpack_uint32 = sub { return unpack 'N', substr( $_[0], $_[1], 4 ) }; # For ARM OABI my $bo_is_me = unpack ( 'd', "\x00\x00\xf0\x3f\x00\x00\x00\x00") == 1; my $pack_double_oabi; my $unpack_double_oabi; # for pack and unpack compatibility if ( $] < 5.010 ) { my $bo_is_le = ( $Config{byteorder} =~ /^1234/ ); if ($bo_is_me) { $pack_double_oabi = sub { my @v = unpack( 'V2', pack( 'd', $_[0] ) ); return pack 'CN2', 0xcb, @v[0,1]; }; $unpack_double_oabi = sub { my @v = unpack( 'V2', substr( $_[0], $_[1], 8 ) ); return unpack( 'd', pack( 'N2', @v[0,1] ) ); }; } *unpack_int16 = sub { my $v = unpack 'n', substr( $_[0], $_[1], 2 ); return $v ? $v - 0x10000 : 0; }; *unpack_int32 = sub { no warnings; # avoid for warning about Hexadecimal number my $v = unpack 'N', substr( $_[0], $_[1], 4 ); return $v ? $v - 0x100000000 : 0; }; # In reality, since 5.9.2 '>' is introduced. but 'n!' and 'N!'? if($bo_is_le) { *pack_uint64 = sub { my @v = unpack( 'V2', pack( 'Q', $_[0] ) ); return pack 'CN2', 0xcf, @v[1,0]; }; *pack_int64 = sub { my @v = unpack( 'V2', pack( 'q', $_[0] ) ); return pack 'CN2', 0xd3, @v[1,0]; }; *pack_double = $pack_double_oabi || sub { my @v = unpack( 'V2', pack( 'd', $_[0] ) ); return pack 'CN2', 0xcb, @v[1,0]; }; *unpack_float = sub { my @v = unpack( 'v2', substr( $_[0], $_[1], 4 ) ); return unpack( 'f', pack( 'n2', @v[1,0] ) ); }; *unpack_double = $unpack_double_oabi || sub { my @v = unpack( 'V2', substr( $_[0], $_[1], 8 ) ); return unpack( 'd', pack( 'N2', @v[1,0] ) ); }; *unpack_int64 = $unpack_int64_slow || sub { my @v = unpack( 'V*', substr( $_[0], $_[1], 8 ) ); return unpack( 'q', pack( 'N2', @v[1,0] ) ); }; *unpack_uint64 = $unpack_uint64_slow || sub { my @v = unpack( 'V*', substr( $_[0], $_[1], 8 ) ); return unpack( 'Q', pack( 'N2', @v[1,0] ) ); }; } else { # big endian *pack_uint64 = sub { return pack 'CQ', 0xcf, $_[0]; }; *pack_int64 = sub { return pack 'Cq', 0xd3, $_[0]; }; *pack_double = $pack_double_oabi || sub { return pack 'Cd', 0xcb, $_[0]; }; *unpack_float = sub { return unpack( 'f', substr( $_[0], $_[1], 4 ) ); }; *unpack_double = $unpack_double_oabi || sub { return unpack( 'd', substr( $_[0], $_[1], 8 ) ); }; *unpack_int64 = $unpack_int64_slow || sub { unpack 'q', substr( $_[0], $_[1], 8 ); }; *unpack_uint64 = $unpack_uint64_slow || sub { unpack 'Q', substr( $_[0], $_[1], 8 ); }; } } else { # 5.10.0 or later if ($bo_is_me) { $pack_double_oabi = sub { my @v = unpack('V2' , pack('d', $_[0])); my $d = unpack('d', pack('V2', @v[1,0])); return pack 'Cd>', 0xcb, $d; }; $unpack_double_oabi = sub { my $first_word = substr($_[0], $_[1], 4); my $second_word = substr($_[0], $_[1] + 4, 4); my $d_bin = $second_word . $first_word; return unpack( 'd>', $d_bin ); }; } # pack_int64/uint64 are used only when the perl support quad types *pack_uint64 = sub { return pack 'CQ>', 0xcf, $_[0]; }; *pack_int64 = sub { return pack 'Cq>', 0xd3, $_[0]; }; *pack_double = $pack_double_oabi || sub { return pack 'Cd>', 0xcb, $_[0]; }; *unpack_float = sub { return unpack( 'f>', substr( $_[0], $_[1], 4 ) ); }; *unpack_double = $unpack_double_oabi || sub { return unpack( 'd>', substr( $_[0], $_[1], 8 ) ); }; *unpack_int16 = sub { return unpack( 'n!', substr( $_[0], $_[1], 2 ) ); }; *unpack_int32 = sub { return unpack( 'N!', substr( $_[0], $_[1], 4 ) ); }; *unpack_int64 = $unpack_int64_slow || sub { return unpack( 'q>', substr( $_[0], $_[1], 8 ) ); }; *unpack_uint64 = $unpack_uint64_slow || sub { return unpack( 'Q>', substr( $_[0], $_[1], 8 ) ); }; } # fixin package symbols no warnings 'once'; @Data::MessagePack::ISA = qw(Data::MessagePack::PP); @Data::MessagePack::Unpacker::ISA = qw(Data::MessagePack::PP::Unpacker); *true = \&Data::MessagePack::true; *false = \&Data::MessagePack::false; } sub _unexpected { Carp::confess("Unexpected " . sprintf(shift, @_) . " found"); } # # PACK # our $_max_depth; sub pack :method { my($self, $data, $max_depth) = @_; Carp::croak('Usage: Data::MessagePack->pack($dat [,$max_depth])') if @_ < 2; $_max_depth = defined $max_depth ? $max_depth : 512; # init if(not ref $self) { $self = $self->new( prefer_integer => $Data::MessagePack::PreferInteger || 0, canonical => $Data::MessagePack::Canonical || 0, ); } return $self->_pack( $data ); } sub _pack { my ( $self, $value ) = @_; local $_max_depth = $_max_depth - 1; if ( $_max_depth < 0 ) { Carp::croak("perl structure exceeds maximum nesting level (max_depth set too low?)"); } return CORE::pack( 'C', 0xc0 ) if ( not defined $value ); if ( ref($value) eq 'ARRAY' ) { my $num = @$value; my $header = $num < 16 ? CORE::pack( 'C', 0x90 + $num ) : $num < 2 ** 16 - 1 ? CORE::pack( 'Cn', 0xdc, $num ) : $num < 2 ** 32 - 1 ? CORE::pack( 'CN', 0xdd, $num ) : _unexpected("number %d", $num) ; return join( '', $header, map { $self->_pack( $_ ) } @$value ); } elsif ( ref($value) eq 'HASH' ) { my $num = keys %$value; my $header = $num < 16 ? CORE::pack( 'C', 0x80 + $num ) : $num < 2 ** 16 - 1 ? CORE::pack( 'Cn', 0xde, $num ) : $num < 2 ** 32 - 1 ? CORE::pack( 'CN', 0xdf, $num ) : _unexpected("number %d", $num) ; if ($self->{canonical}) { return join( '', $header, map { $self->_pack( $_ ), $self->_pack($value->{$_}) } sort { $a cmp $b } keys %$value ); } else { return join( '', $header, map { $self->_pack( $_ ) } %$value ); } } elsif ( ref( $value ) eq 'Data::MessagePack::Boolean' ) { return CORE::pack( 'C', ${$value} ? 0xc3 : 0xc2 ); } my $b_obj = B::svref_2object( \$value ); my $flags = $b_obj->FLAGS; if ( $flags & B::SVp_POK ) { # raw / check needs before double if ( $self->{prefer_integer} ) { if ( $value =~ /^-?[0-9]+$/ ) { # ok? # checks whether $value is in (u)int32 my $ivalue = 0 + $value; if (!( $ivalue > 0xFFFFFFFF or $ivalue < ('-' . 0x80000000) # for XS compat or $ivalue != B::svref_2object(\$ivalue)->int_value )) { return $self->_pack( $ivalue ); } # fallthrough } # fallthrough } utf8::encode( $value ) if utf8::is_utf8( $value ); my $num = length $value; my $header; if ($self->{utf8}) { # Str $header = $num < 32 ? CORE::pack( 'C', 0xa0 + $num ) : $num < 2 ** 8 - 1 ? CORE::pack( 'CC', 0xd9, $num) : $num < 2 ** 16 - 1 ? CORE::pack( 'Cn', 0xda, $num ) : $num < 2 ** 32 - 1 ? CORE::pack( 'CN', 0xdb, $num ) : _unexpected('number %d', $num); } else { # Bin $header = $num < 2 ** 8 - 1 ? CORE::pack( 'CC', 0xc4, $num) : $num < 2 ** 16 - 1 ? CORE::pack( 'Cn', 0xc5, $num ) : $num < 2 ** 32 - 1 ? CORE::pack( 'CN', 0xc6, $num ) : _unexpected('number %d', $num); } return $header . $value; } elsif( $flags & B::SVp_NOK ) { # double only return pack_double( $value ); } elsif ( $flags & B::SVp_IOK ) { if ($value >= 0) { # UV return $value <= 127 ? CORE::pack 'C', $value : $value < 2 ** 8 ? CORE::pack 'CC', 0xcc, $value : $value < 2 ** 16 ? CORE::pack 'Cn', 0xcd, $value : $value < 2 ** 32 ? CORE::pack 'CN', 0xce, $value : pack_uint64( $value ); } else { # IV return -$value <= 32 ? CORE::pack 'C', ($value & 255) : -$value <= 2 ** 7 ? CORE::pack 'Cc', 0xd0, $value : -$value <= 2 ** 15 ? CORE::pack 'Cn', 0xd1, $value : -$value <= 2 ** 31 ? CORE::pack 'CN', 0xd2, $value : pack_int64( $value ); } } else { _unexpected("data type %s", $b_obj); } } # # UNPACK # our $_utf8 = 0; my $p; # position variables for speed. sub _insufficient { Carp::confess("Insufficient bytes (pos=$p, type=@_)"); } sub unpack :method { $p = 0; # init $_utf8 = (ref($_[0]) && $_[0]->{utf8}) || $_utf8; my $data = _unpack( $_[1] ); if($p < length($_[1])) { Carp::croak("Data::MessagePack->unpack: extra bytes"); } return $data; } my $T_STR = 0x01; my $T_ARRAY = 0x02; my $T_MAP = 0x04; my $T_BIN = 0x08; my $T_DIRECT = 0x10; # direct mapping (e.g. 0xc0 <-> nil) my @typemap = ( (0x00) x 256 ); $typemap[$_] |= $T_ARRAY for 0x90 .. 0x9f, # fix array 0xdc, # array16 0xdd, # array32 ; $typemap[$_] |= $T_MAP for 0x80 .. 0x8f, # fix map 0xde, # map16 0xdf, # map32 ; $typemap[$_] |= $T_STR for 0xa0 .. 0xbf, # fix str 0xd9, # str8 0xda, # str16 0xdb, # str32 ; $typemap[$_] |= $T_BIN for 0xc4, # bin 8 0xc5, # bin 16 0xc6, # bin 32 ; my @byte2value; foreach my $pair( [0xc3, true], [0xc2, false], [0xc0, undef], (map { [ $_, $_ ] } 0x00 .. 0x7f), # positive fixnum (map { [ $_, $_ - 0x100 ] } 0xe0 .. 0xff), # negative fixnum ) { $typemap[ $pair->[0] ] |= $T_DIRECT; $byte2value[ $pair->[0] ] = $pair->[1]; } sub _fetch_size { my($value_ref, $byte, $x8, $x16, $x32, $x_fixbits) = @_; if ( defined($x8) && $byte == $x8 ) { $p += 1; $p <= length(${$value_ref}) or _insufficient('x/8'); return unpack 'C', substr( ${$value_ref}, $p - 1, 1); } elsif ( $byte == $x16 ) { $p += 2; $p <= length(${$value_ref}) or _insufficient('x/16'); return unpack 'n', substr( ${$value_ref}, $p - 2, 2 ); } elsif ( $byte == $x32 ) { $p += 4; $p <= length(${$value_ref}) or _insufficient('x/32'); return unpack 'N', substr( ${$value_ref}, $p - 4, 4 ); } else { # fix raw return $byte & ~$x_fixbits; } } sub _unpack { my ( $value ) = @_; $p < length($value) or _insufficient('header byte'); # get a header byte my $byte = ord( substr $value, $p, 1 ); $p++; # +/- fixnum, nil, true, false return $byte2value[$byte] if $typemap[$byte] & $T_DIRECT; if ( $typemap[$byte] & $T_STR ) { my $size = _fetch_size(\$value, $byte, 0xd9, 0xda, 0xdb, 0xa0); my $s = substr( $value, $p, $size ); length($s) == $size or _insufficient('raw'); $p += $size; utf8::decode($s); return $s; } elsif ( $typemap[$byte] & $T_ARRAY ) { my $size = _fetch_size(\$value, $byte, undef, 0xdc, 0xdd, 0x90); my @array; push @array, _unpack( $value ) while --$size >= 0; return \@array; } elsif ( $typemap[$byte] & $T_MAP ) { my $size = _fetch_size(\$value, $byte, undef, 0xde, 0xdf, 0x80); my %map; while(--$size >= 0) { no warnings; # for undef key case my $key = _unpack( $value ); my $val = _unpack( $value ); $map{ $key } = $val; } return \%map; } elsif ($typemap[$byte] & $T_BIN) { my $size = _fetch_size(\$value, $byte, 0xc4, 0xc5, 0xc6, 0x80); my $s = substr( $value, $p, $size ); length($s) == $size or _insufficient('bin'); $p += $size; utf8::decode($s) if $_utf8; return $s; } elsif ( $byte == 0xcc ) { # uint8 $p++; $p <= length($value) or _insufficient('uint8'); return CORE::unpack( 'C', substr( $value, $p - 1, 1 ) ); } elsif ( $byte == 0xcd ) { # uint16 $p += 2; $p <= length($value) or _insufficient('uint16'); return unpack_uint16( $value, $p - 2 ); } elsif ( $byte == 0xce ) { # unit32 $p += 4; $p <= length($value) or _insufficient('uint32'); return unpack_uint32( $value, $p - 4 ); } elsif ( $byte == 0xcf ) { # unit64 $p += 8; $p <= length($value) or _insufficient('uint64'); return unpack_uint64( $value, $p - 8 ); } elsif ( $byte == 0xd3 ) { # int64 $p += 8; $p <= length($value) or _insufficient('int64'); return unpack_int64( $value, $p - 8 ); } elsif ( $byte == 0xd2 ) { # int32 $p += 4; $p <= length($value) or _insufficient('int32'); return unpack_int32( $value, $p - 4 ); } elsif ( $byte == 0xd1 ) { # int16 $p += 2; $p <= length($value) or _insufficient('int16'); return unpack_int16( $value, $p - 2 ); } elsif ( $byte == 0xd0 ) { # int8 $p++; $p <= length($value) or _insufficient('int8'); return CORE::unpack 'c', substr( $value, $p - 1, 1 ); } elsif ( $byte == 0xcb ) { # double $p += 8; $p <= length($value) or _insufficient('double'); return unpack_double( $value, $p - 8 ); } elsif ( $byte == 0xca ) { # float $p += 4; $p <= length($value) or _insufficient('float'); return unpack_float( $value, $p - 4 ); } else { _unexpected("byte 0x%02x", $byte); } } # # Data::MessagePack::Unpacker # package Data::MessagePack::PP::Unpacker; sub new { bless { pos => 0, utf8 => 0, buff => '', }, shift; } sub utf8 { my $self = shift; $self->{utf8} = (@_ ? shift : 1); return $self; } sub get_utf8 { my($self) = @_; return $self->{utf8}; } sub execute_limit { execute( @_ ); } sub execute { my ( $self, $data, $offset, $limit ) = @_; $offset ||= 0; my $value = substr( $data, $offset, $limit ? $limit : length $data ); my $len = length $value; $self->{buff} .= $value; local $self->{stack} = []; #$p = 0; #eval { Data::MessagePack::PP::_unpack($self->{buff}) }; #warn "[$p][$@]"; $p = 0; while ( length($self->{buff}) > $p ) { _count( $self, $self->{buff} ) or last; while ( @{ $self->{stack} } > 0 && --$self->{stack}->[-1] == 0) { pop @{ $self->{stack} }; } if (@{$self->{stack}} == 0) { $self->{is_finished}++; last; } } $self->{pos} = $p; return $p + $offset; } sub _count { my ( $self, $value ) = @_; no warnings; # FIXME my $byte = unpack( 'C', substr( $value, $p++, 1 ) ); # get header Carp::croak('invalid data') unless defined $byte; # +/- fixnum, nil, true, false return 1 if $typemap[$byte] & $T_DIRECT; if ( $typemap[$byte] & $T_STR ) { my $num; if ( $byte == 0xd9 ) { $num = unpack 'C', substr( $value, $p, 1 ); $p += 1; } elsif ( $byte == 0xda ) { $num = unpack 'n', substr( $value, $p, 2 ); $p += 2; } elsif ( $byte == 0xdb ) { $num = unpack 'N', substr( $value, $p, 4 ); $p += 4; } else { # fix raw $num = $byte & ~0xa0; } $p += $num; return 1; } elsif ( $typemap[$byte] & $T_ARRAY ) { my $num; if ( $byte == 0xdc ) { # array 16 $num = unpack 'n', substr( $value, $p, 2 ); $p += 2; } elsif ( $byte == 0xdd ) { # array 32 $num = unpack 'N', substr( $value, $p, 4 ); $p += 4; } else { # fix array $num = $byte & ~0x90; } if ( $num ) { push @{ $self->{stack} }, $num + 1; } return 1; } elsif ( $typemap[$byte] & $T_MAP ) { my $num; if ( $byte == 0xde ) { # map 16 $num = unpack 'n', substr( $value, $p, 2 ); $p += 2; } elsif ( $byte == 0xdf ) { # map 32 $num = unpack 'N', substr( $value, $p, 4 ); $p += 4; } else { # fix map $num = $byte & ~0x80; } if ( $num ) { push @{ $self->{stack} }, $num * 2 + 1; # a pair } return 1; } elsif ( $typemap[$byte] & $T_BIN ) { my $num; if ( $byte == 0xc4 ) { # bin 8 $num = unpack 'C', substr( $value, $p, 1 ); $p += 1; } elsif ( $byte == 0xc5 ) { # bin 16 $num = unpack 'n', substr( $value, $p, 2 ); $p += 2; } elsif ( $byte == 0xc6 ) { # bin 32 $num = unpack 'N', substr( $value, $p, 4 ); $p += 4; } $p += $num; return 1; } elsif ( $byte >= 0xcc and $byte <= 0xcf ) { # uint $p += $byte == 0xcc ? 1 : $byte == 0xcd ? 2 : $byte == 0xce ? 4 : $byte == 0xcf ? 8 : Data::MessagePack::PP::_unexpected("byte 0x%02x", $byte); return 1; } elsif ( $byte >= 0xd0 and $byte <= 0xd3 ) { # int $p += $byte == 0xd0 ? 1 : $byte == 0xd1 ? 2 : $byte == 0xd2 ? 4 : $byte == 0xd3 ? 8 : Data::MessagePack::PP::_unexpected("byte 0x%02x", $byte); return 1; } elsif ( $byte == 0xca or $byte == 0xcb ) { # float, double $p += $byte == 0xca ? 4 : 8; return 1; } else { Data::MessagePack::PP::_unexpected("byte 0x%02x", $byte); } return 0; } sub data { my($self) = @_; local $Data::MessagePack::PP::_utf8 = $self->{utf8}; return Data::MessagePack->unpack( substr($self->{buff}, 0, $self->{pos}) ); } sub is_finished { my ( $self ) = @_; return $self->{is_finished}; } sub reset :method { $_[0]->{buff} = ''; $_[0]->{pos} = 0; $_[0]->{is_finished} = 0; } 1; __END__ =pod =head1 NAME Data::MessagePack::PP - Pure Perl implementation of Data::MessagePack =head1 DESCRIPTION This module is used by L internally. =head1 SEE ALSO L, L, L, =head1 AUTHOR makamaka =head1 COPYRIGHT AND LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =cut Unpacker.pod100644001750001750 33114212656165 22575 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/lib/Data/MessagePack=head1 NAME Data::MessagePack::Unpacker - (DEPRECATED)messagepack streaming deserializer =head1 DESCRIPTION This module was deprecated. This module have a critical issue. Use L instead. minil.toml100644001750001750 27614212656165 16534 0ustar00syoheisyohei000000000000Data-MessagePack-1.02name = "Data-MessagePack" authority = "cpan:TOKUHIROM" allow_pureperl = 1 badges = ["travis"] module_maker = "ModuleBuild" tag_format = "perl-%v" [build] build_class = "builder::MyBuilder" 00_compile.t100644001750001750 42614212656165 17103 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse strict; use warnings; use Test::More tests => 1; use Config; use_ok 'Data::MessagePack'; diag ( "Testing Data::MessagePack/$Data::MessagePack::VERSION (", $INC{'Data/MessagePack/PP.pm'} ? 'PP' : 'XS', ")" ); diag "byteoder: $Config{byteorder}, ivsize=$Config{ivsize}"; 01_pack.t100644001750001750 613214212656165 16412 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse t::Util; use Test::More; use Data::MessagePack; if ($] >= 5.019) { require Scalar::Util; } sub packit { local $_ = unpack("H*", Data::MessagePack->pack($_[0])); s/(..)/$1 /g; s/ $//; $_; } sub packit_utf8 { local $_ = unpack("H*", Data::MessagePack->new->utf8->pack($_[0])); s/(..)/$1 /g; s/ $//; $_; } sub pis ($$) { is packit($_[0]), $_[1], 'dump ' . $_[1]; } sub pis_utf8 ($$) { is packit_utf8($_[0]), $_[1], 'dump ' . $_[1]; } my @dat = ( 0, '00', (my $foo="0")+0, '00', {2 => undef}, '81 c4 01 32 c0', do {no warnings; my $foo = 10; "$foo"; $foo = undef; $foo} => 'c0', # PVIV but !POK && !IOK 1, '01', 127, '7f', 128, 'cc 80', 255, 'cc ff', 256, 'cd 01 00', 65535, 'cd ff ff', 65536, 'ce 00 01 00 00', -1, 'ff', -32, 'e0', -33, 'd0 df', -128, 'd0 80', -129, 'd1 ff 7f', -32768, 'd1 80 00', -32769, 'd2 ff ff 7f ff', 1.0, 'cb 3f f0 00 00 00 00 00 00', $] < 5.019 ? do { my $x=3.0;my $y = "$x";$x } : Scalar::Util::dualvar(3.0,"3"), 'c4 01 33', # PVNV do { my $x=3; my $y = "$x";$x }, 'c4 01 33', # PVIV "", 'c4 00', "a", 'c4 01 61', "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 'c4 1f 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61', "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 'c4 20 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61', undef, 'c0', Data::MessagePack::true(), 'c3', Data::MessagePack::false(), 'c2', [], '90', [+[]], '91 90', [[], undef], '92 90 c0', {'a', 0}, '81 c4 01 61 00', 8388608, 'ce 00 80 00 00', [undef, false, true], '93 c0 c2 c3', ["", "a", "bc", "def"], '94 c4 00 c4 01 61 c4 02 62 63 c4 03 64 65 66', [[], [[undef]]], '92 90 91 91 c0', [undef, false, true], '93 c0 c2 c3', [[0, 64, 127], [-32, -16, -1]], '92 93 00 40 7f 93 e0 f0 ff', [0, -128, -1, 0, -32768, -1, 0, -2147483648, -1], '99 00 d0 80 ff 00 d1 80 00 ff 00 d2 80 00 00 00 ff', 2147483648, 'ce 80 00 00 00', -2147483648, 'd2 80 00 00 00', 'a' x 0x0100, 'c5 01 00' . (' 61' x 0x0100), [(undef) x 0x0100], 'dc 01 00' . (' c0' x 0x0100), ); my @dat_utf8 = ( {2 => undef}, '81 a1 32 c0', $] < 5.019 ? do { my $x=3.0;my $y = "$x";$x } : Scalar::Util::dualvar(3.0,"3"), 'a1 33', # PVNV do { my $x=3; my $y = "$x";$x }, 'a1 33', # PVIV "", 'a0', "a", 'a1 61', "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 'bf 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61', "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 'd9 20 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61', {'a', 0}, '81 a1 61 00', ["", "a", "bc", "def"], '94 a0 a1 61 a2 62 63 a3 64 65 66', 'a' x 0x0100, 'da 01 00' . (' 61' x 0x0100), ); plan tests => 1*(scalar(@dat)/2) + 1*(scalar(@dat_utf8)/2); for (my $i=0; $iunpack($v); } sub pis ($$) { is_deeply unpackit($_[0]), $_[1], 'dump ' . $_[0] or do { diag( 'got:', explain(unpackit($_[0])) ); diag( 'expected:', explain($_[1]) ); }; } my @dat = do 't/data.pl' or die $@; plan tests => 1*(scalar(@dat)/2); for (my $i=0; $inew; sub unpackit { my $v = $_[0]; $v =~ s/ //g; $v = pack 'H*', $v; $up->reset; my $ret = $up->execute($v, 0); if ($ret != length($v)) { fail "extra bytes"; } return $up->data; } sub pis ($$) { is_deeply unpackit($_[0]), $_[1], 'dump ' . $_[0]; } my @dat = do 't/data.pl'; plan tests => 1*(scalar(@dat)/2) + 3; isa_ok $up, 'Data::MessagePack::Unpacker'; for (my $i=0; $inew(); $up->execute("\x95", 0); # array marker for (1..5) { $up->execute("\xc0", 0); # nil } ok $up->is_finished, 'finished'; is_deeply $up->data, [undef, undef, undef, undef, undef], 'array, is_deeply'; } 04_invert.t100644001750001750 63314212656165 16766 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse Test::More; use Data::MessagePack; use t::Util; no warnings 'uninitialized'; # i need this. i need this. sub invert { return Data::MessagePack->unpack( Data::MessagePack->pack($_[0]), ); } sub pis ($) { is_deeply invert($_[0]), $_[0], 'dump ' . $_[0]; } my @dat = do 't/data.pl'; plan tests => 1*(scalar(@dat)/2); for (my $i=0; $i 'quadmath is not support this test'; no warnings; # shut up "Integer overflow in hexadecimal number" sub packit { local $_ = unpack("H*", Data::MessagePack->pack($_[0])); s/(..)/$1 /g; s/ $//; $_; } sub packit_utf8 { local $_ = unpack("H*", Data::MessagePack->new->utf8->prefer_integer($_[1])->pack($_[0])); s/(..)/$1 /g; s/ $//; $_; } sub pis ($$) { if (ref $_[1]) { like packit($_[0]), $_[1], 'dump ' . $_[1]; } else { is packit($_[0]), $_[1], 'dump ' . $_[1]; } # is(Dumper(Data::MessagePack->unpack(Data::MessagePack->pack($_[0]))), Dumper($_[0])); } sub pis_utf8 ($$$) { if (ref $_[1]) { like packit_utf8($_[0], $_[2]), $_[1], 'dump ' . $_[1]; } else { is packit_utf8($_[0], $_[2]), $_[1], 'dump ' . $_[1]; } # is(Dumper(Data::MessagePack->unpack(Data::MessagePack->pack($_[0]))), Dumper($_[0])); } # NOTE # Exponential notation of older Windows Perl(< 5.30.0) is different from other perl # For example 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFF # Older Windows Perl: 8.30767497365572e+034 <- leading zero # Other Perl : 8.30767497365572e+34 my $is_old_win = $^O eq 'MSWin32' && $] < 5.030; my @dat = ( '', 'c4 00', '0', '00', '1', '01', '10', '0a', '-1', 'ff', '-10', 'f6', '-', 'c4 01 2d', ''.0xEFFF => 'cd ef ff', ''.0xFFFF => 'cd ff ff', ''.0xFFFFFF => 'ce 00 ff ff ff', ''.0xFFFFFFFF => 'ce ff ff ff ff', ''.0xFFFFFFFFF => 'c4 0b 36 38 37 31 39 34 37 36 37 33 35', ''.0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFF => $is_old_win ? qr{^(c4 15 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 30 33 34|c4 18 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 30 33 34)$} : qr{^(c4 14 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 33 34|c4 17 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 33 34)$}, '-'.0x8000000 => 'd2 f8 00 00 00', '-'.0x80000000 => 'd2 80 00 00 00', '-'.0x800000000 => 'c4 0c 2d 33 34 33 35 39 37 33 38 33 36 38', '-'.0x8000000000 => 'c4 0d 2d 35 34 39 37 35 35 38 31 33 38 38 38', '-'.0x800000000000000000000000000000 => $is_old_win ? qr{^(c4 16 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 30 33 35|c4 19 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 30 33 35)} : qr{^(c4 15 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 33 35|c4 18 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 33 35)}, {'0' => '1'}, '81 00 01', {'abc' => '1'}, '81 c4 03 61 62 63 01', ); my @dat_utf8 = ( '-', 'a1 2d', ''.0xFFFFFFFFF => 'ab 36 38 37 31 39 34 37 36 37 33 35', ''.0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFF => $is_old_win ? qr{^(b5 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 30 33 34|b8 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 30 33 34)$} : qr{^(b4 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 65 2b 33 34|b7 38 2e 33 30 37 36 37 34 39 37 33 36 35 35 37 32 34 32 31 65 2b 33 34)$}, '-'.0x800000000 => 'ac 2d 33 34 33 35 39 37 33 38 33 36 38', '-'.0x8000000000 => 'ad 2d 35 34 39 37 35 35 38 31 33 38 38 38', '-'.0x800000000000000000000000000000 => $is_old_win ? qr{^(b6 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 30 33 35|b9 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 30 33 35)} : qr{^(b5 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 38 65 2b 33 35|b8 2d 36 2e 36 34 36 31 33 39 39 37 38 39 32 34 35 37 39 33 36 65 2b 33 35)}, {'abc' => '1'}, '81 a3 61 62 63 01', ); plan tests => 1*(scalar(@dat)/2) + 1*(scalar(@dat_utf8)/2) + 3; for (my $i=0; $i 64; use t::Util; my $input = [ false,true,null,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1, 127,127,255,65535,4294967295,-32,-32,-128,-32768, -2147483648,0.0,-0.0, 3.0,-3.0,"a","a",("a" x 70000),"","","", [0],[0],[0],[],[],[],{},{},{}, {"a" => 97},{"abc" => 97},{"xyz" => 97},[[]], [["foo"], ["bar"]], [["foo", true, false, null, 42]], ]; my $packed = Data::MessagePack->pack($input); is_deeply(Data::MessagePack->unpack($packed), $input); { my $up = Data::MessagePack::Unpacker->new(); $up->execute($packed, 0); ok $up->is_finished; is_deeply $up->data, $input; } { my $up = Data::MessagePack::Unpacker->new(); $packed x= 3; my $offset = 0; for my $i(1 .. 3) { note "block $i (offset: $offset/".length($packed).")"; note "starting 3 bytes: ", join " ", map { unpack 'H2', $_ } split //, substr($packed, $offset, 3); $offset = $up->execute($packed, $offset); ok $up->is_finished, 'finished'; my $data = $up->data; is scalar(@{$data}), scalar(@{$input}), 'size of @{$data}'; is_deeply $data, $input, "block $i, offset $offset"; $up->reset(); } } { my $s = ''; foreach my $datum(reverse @{$input}) { $s .= Data::MessagePack->pack($datum); } my $up = Data::MessagePack::Unpacker->new(); my $offset = 0; for my $datum(reverse @{$input}) { $offset = $up->execute($s, $offset); is_deeply $up->data, $datum, "offset $offset/" . length($s); $up->reset(); } } 07_break.t100644001750001750 60114212656165 16541 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse Test::More; use Data::MessagePack; use t::Util; plan tests => 4; my $d = Data::MessagePack->unpack(Data::MessagePack->pack({ nil => undef, true => true, false => false, foo => [undef, true, false], })); $d->{nil} = 42; is $d->{nil}, 42; $d->{true} = 43; is $d->{true}, 43; $d->{false} = 44; is $d->{false}, 44; is_deeply $d->{foo}, [undef, true, false]; 08_cycle.t100644001750001750 74614212656165 16567 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse t::Util; use Test::More; use Data::MessagePack; plan tests => 6; my $aref = [0]; $aref->[1] = $aref; eval { Data::MessagePack->pack($aref) }; ok $@, $@; my $href = {}; $href->{cycle} = $href; eval { Data::MessagePack->pack($aref) }; ok $@, $@; $aref = [0,[1,2]]; eval { Data::MessagePack->pack($aref) }; ok !$@; eval { Data::MessagePack->pack($aref, 3) }; ok !$@; eval { Data::MessagePack->pack($aref, 2) }; ok $@, $@; eval { Data::MessagePack->pack($aref, -1) }; ok $@, $@; 09_stddata.t100644001750001750 154114212656165 17127 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl -w # Testing standard dataset in msgpack/test/*.{json,mpac}. # Don't edit msgpack/perl/t/std/*, which are just copies. use strict; use Test::More; use t::Util; use Data::MessagePack; sub slurp { open my $fh, '<:raw', $_[0] or die "failed to open '$_[0]': $!"; local $/; return scalar <$fh>; } my $mpac = slurp("t/std/cases.mpac"); my $mpac_compat = slurp("t/std/cases_compact.mpac"); my $mps = Data::MessagePack::Unpacker->new(); my $mps_compat = Data::MessagePack::Unpacker->new();; my $offset = 0; my $offset_compat = 0; my $t = 1; while ($offset < length($mpac)) { note "mpac", $t++; $offset = $mps->execute($mpac, $offset); $offset_compat = $mps_compat->execute($mpac_compat, $offset_compat); ok $mps->is_finished; is_deeply $mps->data, $mps_compat->data; $mps->reset; $mps_compat->reset; } done_testing; 10_splitted_bytes.t100644001750001750 175214212656165 20535 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl # This feature is not yet supported, but 0.23 (or former) caused SEGV in this code, # so we put it here. use strict; use warnings; use Data::MessagePack; use Test::More; use t::Util; my $input = [ false,true,null,0,0,0,0,0,0,0,0,0,-1,-1,-1,-1,-1, 127,127,255,65535,4294967295,-32,-32,-128,-32768, -2147483648,0.0,-0.0,1.0,-1.0,"a","a","a","","","", [0],[0],[0],[],[],[],{},{},{}, {"a" => 97},{"a" => 97},{"a" => 97},[[]],[["a"]] ]; my $packed = Data::MessagePack->pack($input); foreach my $size(1 .. 16) { my $up = Data::MessagePack::Unpacker->new(); open my $stream, '<:bytes :scalar', \$packed; binmode $stream; my $buff; my $done = 0; while( read($stream, $buff, $size) ) { note "buff: ", join " ", map { unpack 'H2', $_ } split //, $buff; $done = $up->execute($buff); } is $done, length($packed); ok $up->is_finished, "is_finished: $size"; my $data = $up->data; is_deeply $data, $input; } done_testing; 11_stream_unpack3.t100644001750001750 131514212656165 20412 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse strict; use warnings; use Test::More; use Data::MessagePack; my @data = ( [ 1, 2, 3 ], [ 4, 5, 6 ] ); # serialize my $buffer = ''; for my $d (@data) { $buffer .= Data::MessagePack->pack($d); } # deserialize my $cb = sub { my ($data) = @_; my $d = shift @data; is_deeply $data, $d; }; my $unpacker = Data::MessagePack::Unpacker->new(); my $nread = 0; while (1) { $nread = $unpacker->execute( $buffer, $nread ); if ( $unpacker->is_finished ) { my $ret = $unpacker->data; $cb->( $ret ); $unpacker->reset; $buffer = substr( $buffer, $nread ); $nread = 0; next if length($buffer) != 0; } last; } is scalar(@data), 0; done_testing; 12_stream_unpack4.t100644001750001750 105214212656165 20412 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse strict; use warnings; use Data::MessagePack; use Test::More; use t::Util; my @input = ( [[]], [[],[]], [{"a" => 97},{"a" => 97}], [{"a" => 97},{"a" => 97},{"a" => 97}], [ map { +{ "foo $_" => "bar $_" } } 'aa' .. 'zz' ], [42, null], [42, true], [42, false], ); plan tests => @input * 2; for my $input (@input) { my $packed = Data::MessagePack->pack($input); my $up = Data::MessagePack::Unpacker->new(); $up->execute($packed, 0); ok $up->is_finished, 'finished'; is_deeply($up->data, $input); } 13_booleans.t100755001750001750 61314212656165 17262 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl -w use strict; use Test::More tests => 6; use Data::MessagePack; ok defined(Data::MessagePack::true()), 'true (1)'; ok defined(Data::MessagePack::true()), 'true (2)'; ok Data::MessagePack::true(), 'true is true'; ok defined(Data::MessagePack::false()), 'false (1)'; ok defined(Data::MessagePack::false()), 'false (2)'; ok !Data::MessagePack::false(), 'false is false'; 14_invalid_data.t100755001750001750 55514212656165 20105 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse strict; use warnings; use Data::MessagePack; use Test::More; use t::Util; my $nil = Data::MessagePack->pack(undef); my @data = do 't/data.pl'; while(my($dump, $data) = splice @data, 0, 2) { my $s = Data::MessagePack->pack($data); eval { Data::MessagePack->unpack($s . $nil); }; like $@, qr/extra bytes/, "dump $dump"; } done_testing; 15_utf8.t100644001750001750 120714212656165 16365 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl -w use strict; use Test::More; use Data::MessagePack; use utf8; my $data = [42, undef, 'foo', "\x{99f1}\x{99dd}"]; my $packed = Data::MessagePack->pack($data) x 2; my $u = Data::MessagePack::Unpacker->new()->utf8(); my $p = 0; for(1 .. 2) { ok $u->get_utf8(); $p = $u->execute($packed, $p); my $d = $u->data(); $u->reset(); is_deeply $d, $data, 'decoded'; } is $u->utf8(0), $u, 'utf8(0)'; $p = 0; for(1 .. 2) { ok !$u->get_utf8(); $p = $u->execute($packed, $p); my $d = $u->data(); $u->reset(); my $s = $data->[3]; utf8::encode($s); is_deeply $d->[3], $s, 'not decoded'; } done_testing; 16_unpacker_for_larges.t100644001750001750 73114212656165 21474 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse strict; use Test::More; use Data::MessagePack; foreach my $data("abc", [ 'x' x 1024 ], [0xFFFF42]) { my $packed = Data::MessagePack->pack($data); my $unpacker = Data::MessagePack::Unpacker->new; note "buff: ", join " ", map { unpack 'H2', $_ } split //, $packed; foreach my $byte(split //, $packed) { $unpacker->execute($byte); } ok $unpacker->is_finished, 'finished'; is_deeply $unpacker->data, $data, 'data'; } done_testing; 17_canonical.t100644001750001750 107414212656165 17432 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t use strict; use warnings; use Test::More; use Data::MessagePack; my $mp = Data::MessagePack->new(canonical => 1); my $data = { 'foo' => { 'a' => '', 'b' => '', 'c' => '', 'd' => '', 'e' => '', 'f' => '', 'g' => '', } }; my $packed1 = $mp->pack($data); my $packed2 = $mp->pack($mp->unpack($packed1)); my $packed3 = $mp->pack($mp->unpack($packed2)); my $packed4 = $mp->pack($mp->unpack($packed3)); my $packed5 = $mp->pack($mp->unpack($packed4)); is $packed1, $packed2; is $packed1, $packed3; is $packed1, $packed4; is $packed1, $packed5; done_testing; 18_new_interface.t100644001750001750 66014212656165 20275 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl use strict; use warnings; use Test::More; use Data::MessagePack; my $mp = Data::MessagePack->new(); is_deeply $mp->decode( $mp->encode([1, 2, 3]) ), [1, 2, 3]; my $mpc = Data::MessagePack->new->prefer_integer->canonical; ok !$mp->get_prefer_integer; ok $mpc->get_prefer_integer; ok !$mp->get_canonical; ok $mpc->get_canonical; isnt $mp->pack("42"), $mp->pack(42); is $mpc->pack("42"), $mpc->pack(42); done_testing; 19_utf8_property.t100644001750001750 117314212656165 20337 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl use strict; use warnings; use Test::More; use Data::MessagePack; use Encode qw(encode decode); { use utf8; my $mp = Data::MessagePack->new; isnt $mp->unpack( $mp->pack('はろー!メッセージパック!') ), 'はろー!メッセージパック!'; $mp->utf8(1); is $mp->unpack( $mp->pack('はろー!メッセージパック!') ), 'はろー!メッセージパック!'; } { my $mp = Data::MessagePack->new()->utf8(); my $latin1 = chr(233); # eacute my $s = $mp->unpack( $mp->pack($latin1) ); is $s, $latin1; is ord($s), ord($latin1); } done_testing; 20_de.t100644001750001750 141714212656165 16066 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl # from Data::Encoder's msgpack driver tests use strict; use warnings; use Config; use if $Config{nvsize} > 8, 'Test::More', skip_all => 'long double is not supported'; use Test::More; use Data::MessagePack; sub d { my($dm, $value) = @_; my $binary = $dm->encode($value); diag('binary: ', join ' ', map { sprintf '%02X', ord $_ } split //, $binary); } my $dm = Data::MessagePack->new( utf8 => 1, prefer_integer => 1, canonical => 1, ); my $d = { a => 0.11, b => "\x{3042}" }; is_deeply $dm->decode( $dm->encode($d) ), $d; is $dm->decode( $dm->encode(0.1) ), 0.1 or d($dm, 0.1); is $dm->decode( $dm->encode(0.11) ), 0.11 or d($dm, 0.11); is $dm->decode( $dm->encode(0.111) ), 0.111 or d($dm, 0.111); done_testing; 21_dirty_float.t100644001750001750 56114212656165 17776 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl use strict; use Config; use if $Config{nvsize} > 8, 'Test::More', skip_all => 'long double is not supported'; use Test::More; use Data::MessagePack; my $mp = Data::MessagePack->new(); foreach my $float(0.123, 3.14) { is $mp->unpack($mp->pack($float)), $float; scalar( $float > 0 ); is $mp->unpack($mp->pack($float)), $float; } done_testing; 22_pid_pack_unpack.t100755001750001750 33614212656165 20575 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl use strict; use warnings; use Test::More tests => 1; use Data::MessagePack; my $mp = Data::MessagePack->new(); is( $mp->unpack($mp->pack($$)), $$, 'pack then unpack of $$ returns same number' ); done_testing(); 23-empty-key.t100644001750001750 165514212656165 17347 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl # -*- perl -*- use strict; use warnings; use Test::More tests => 3; my @orig = ( ["ZZZ",{"10000050C2400102" => {"1332129147" => ["\x01\x07\x07 \xf7","2.48292"]}}], ["ZZZ",{"" => {}}], ); use Data::MessagePack; my $mp = Data::MessagePack->new(); # Just to be sure Data::MessagePack is OK for (@orig) { is_deeply(Data::MessagePack->unpack(Data::MessagePack->pack($_)), $_); } # Now test the stream... my $buf; for (@orig) { $buf .= Data::MessagePack->pack($_); } my $up = Data::MessagePack::Unpacker->new; my @res; my $offset = $up->execute($buf, 0); if ($up->is_finished) { push(@res, $up->data); $up->execute($buf, $offset); if ($up->is_finished) { push(@res, $up->data); local $TODO = 'not yet'; is_deeply(\@res, \@orig) or diag(explain([\@res, \@orig])); } else { fail('Unpack second item'); } } else { fail('Unpack first item'); } 24_tied.t100644001750001750 405314212656165 16426 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tuse t::Util; use Test::More tests => 8; use Data::MessagePack; require Tie::Hash; require Tie::Array; my (%hash, @array); tie( %hash, 'Tie::StdHash' ); %hash = ( 'module' => 'DiskUsage', 'func' => 'fetchdiskusagewithextras', 'apiversion' => '2', ); { my $mp = Data::MessagePack->new(); my $packed = eval { $mp->pack( \%hash ); }; ok(unpack("C", substr($packed,0,1)) == 0x83, "pack a tied FixMap with 3 elems"); #diag unpack("CC", substr($packed,0,2)),$packed; my $unpacked = eval { $mp->unpack( $packed ); }; if ($@) { ok( 0, "unpack tied hash" ); } else { is_deeply( \%hash, $unpacked, "round trip tied hash" ); } } { local $ENV{PERL_DATA_MESSAGEPACK} = 'pp'; my $mp = Data::MessagePack->new(); my $packed = eval { $mp->pack( \%hash ); }; ok(unpack("C", substr($packed,0,1)) == 0x83, "PP pack a tied FixMap with 3 elems"); #diag unpack("CC", substr($packed,0,2)),$packed; my $unpacked = eval { $mp->unpack( $packed ); }; if ($@) { ok( 0, "PP unpack tied hash" ); } else { is_deeply( \%hash, $unpacked, "PP round trip tied hash" ); } } tie( @array, 'Tie::StdArray' ); @array = (0..9); { my $mp = Data::MessagePack->new(); my $packed = eval { $mp->pack( \@array ); }; ok(unpack("C", substr($packed,0,1)) == 0x9a, "pack a tied FixArray with 10 elems"); #diag unpack("C", substr($packed,0,2)),$packed; my $unpacked = eval { $mp->unpack( $packed ); }; if ($@) { ok( 0, "unpack tied array" ); } else { is_deeply( \@array, $unpacked, "round trip tied array" ); } } { local $ENV{PERL_DATA_MESSAGEPACK} = 'pp'; my $mp = Data::MessagePack->new(); my $packed = eval { $mp->pack( \@array ); }; ok(unpack("C", substr($packed,0,1)) == 0x9a, "PP pack a tied FixArray with 10 elems"); #diag unpack("C", substr($packed,0,2)),$packed; my $unpacked = eval { $mp->unpack( $packed ); }; if ($@) { ok( 0, "PP unpack tied array" ); } else { is_deeply( \@array, $unpacked, "PP round trip tied array" ); } } 40_threads.t100644001750001750 133414212656165 17130 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl use strict; use warnings; use constant HAS_THREADS => eval { require threads }; use if !HAS_THREADS, 'Test::More', skip_all => 'no threads'; use Test::More; use Data::MessagePack; my $true = Data::MessagePack->unpack("\xc3"); my $false = Data::MessagePack->unpack("\xc2"); ok $true; ok !$false; threads->create(sub { my $T = Data::MessagePack->unpack("\xc3"); my $F = Data::MessagePack->unpack("\xc2"); ok $T; ok !$F; is_deeply $T, $true; is_deeply $F, $false; })->join(); $Data::MessagePack::PreferInteger = 0; threads->create(sub{ $Data::MessagePack::PreferInteger = 1; })->join(); is $Data::MessagePack::PreferInteger, 0, '$PreferInteger is a thread-local variable'; done_testing; 50_leaktrace.t100644001750001750 207214212656165 17432 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t#!perl -w use strict; use Test::Requires { 'Test::LeakTrace' => 0.13 }; use Test::More; use Data::MessagePack; BEGIN { if($INC{'Data/MessagePack/PP.pm'}) { plan skip_all => 'disabled in PP'; } } my $simple_data = "xyz"; my $complex_data = { a => 'foo', b => 42, c => undef, d => [qw(bar baz)], e => 3.14, }; note 'pack'; no_leaks_ok { my $s = Data::MessagePack->pack($complex_data); }; no_leaks_ok { eval { Data::MessagePack->pack([\*STDIN]) }; note $@; $@ or warn "# it must die"; }; note 'unpack'; my $s = Data::MessagePack->pack($simple_data); my $c = Data::MessagePack->pack($complex_data); no_leaks_ok { my $data = Data::MessagePack->unpack($s); }; no_leaks_ok { my $data = Data::MessagePack->unpack($c); }; no_leaks_ok { my $broken = $s; chop $broken; eval { Data::MessagePack->unpack($broken) }; note $@; $@ or warn "# it must die"; }; note 'stream'; no_leaks_ok { my $up = Data::MessagePack::Unpacker->new(); $up->execute($c); my $data = $up->data(); }; done_testing; Util.pm100644001750001750 50114212656165 16234 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tpackage t::Util; use strict; use warnings; use Data::MessagePack; sub import { my $pkg = caller(0); strict->import; warnings->import; no strict 'refs'; *{"$pkg\::true"} = \&Data::MessagePack::true; *{"$pkg\::false"} = \&Data::MessagePack::false; *{"$pkg\::null"} = sub() { undef }; } 1; data.pl100644001750001750 613514212656165 16260 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/tno warnings; # i need this, i need this. ( '93 c0 c2 c3' => [undef, false, true], '94 a0 a1 61 a2 62 63 a3 64 65 66', ["", "a", "bc", "def"], '92 90 91 91 c0', [[], [[undef]]], '93 c0 c2 c3', [undef, false, true], '82 d0 2a c2 d0 2b c3', { 42 => false, 43 => true }, # fix map 'de 00 02 d0 2a c2 d0 2b c3', { 42 => false, 43 => true }, # map 16 'df 00 00 00 02 d0 2a c2 d0 2b c3', { 42 => false, 43 => true }, # map 32 'ce 80 00 00 00', 2147483648, '99 cc 00 cc 80 cc ff cd 00 00 cd 80 00 cd ff ff ce 00 00 00 00 ce 80 00 00 00 ce ff ff ff ff', [0, 128, 255, 0, 32768, 65535, 0, 2147483648, 4294967295], '92 93 00 40 7f 93 e0 f0 ff', [[0, 64, 127], [-32, -16, -1]], '96 dc 00 00 dc 00 01 c0 dc 00 02 c2 c3 dd 00 00 00 00 dd 00 00 00 01 c0 dd 00 00 00 02 c2 c3', [[], [undef], [false, true], [], [undef], [false, true]], '96 da 00 00 da 00 01 61 da 00 02 61 62 db 00 00 00 00 db 00 00 00 01 61 db 00 00 00 02 61 62', ["", "a", "ab", "", "a", "ab"], '99 d0 00 d0 80 d0 ff d1 00 00 d1 80 00 d1 ff ff d2 00 00 00 00 d2 80 00 00 00 d2 ff ff ff ff', [0, -128, -1, 0, -32768, -1, 0, -2147483648, -1], '82 c2 81 c0 c0 c3 81 c0 80', {false,{undef,undef}, true,{undef,{}}}, '96 de 00 00 de 00 01 c0 c2 de 00 02 c0 c2 c3 c2 df 00 00 00 00 df 00 00 00 01 c0 c2 df 00 00 00 02 c0 c2 c3 c2', [{}, {undef,false}, {true,false, undef,false}, {}, {undef,false}, {true,false, undef,false}], 'dc 01 00' . (' c0' x 0x0100), [(undef) x 0x0100], 'ce 00 ff ff ff' => ''.0xFFFFFF, 'aa 34 32 39 34 39 36 37 32 39 35' => ''.0xFFFFFFFF, 'ab 36 38 37 31 39 34 37 36 37 33 35' => ''.0xFFFFFFFFF, 'ca 00 00 00 00' => 0.0, # float 'ca 40 2c cc cd' => unpack('f', pack 'f', 2.7), 'cb 3f f0 00 00 00 00 00 00' => 1.0, # double 'd2 80 00 00 01' => '-2147483647', # int32_t 'ce 80 00 00 01' => '2147483649', # uint32_t 'd2 ff ff ff ff' => '-1', # int32_t 'ce ff ff ff ff' => '4294967295', # uint32_t 'd3 00 00 00 00 80 00 00 01' => '2147483649', # int64_t 'cf 00 00 00 00 80 00 00 01' => '2147483649', # uint64_t 'd3 ff 00 ff ff ff ff ff ff' => '-71776119061217281', # int64_t 'cf ff 00 ff ff ff ff ff ff' => '18374967954648334335', # uint64_t 'd3 ff ff ff ff ff ff ff ff' => '-1', # int64_t 'cf ff ff ff ff ff ff ff ff' => '18446744073709551615', # uint64_t # int64_t 'd3 00 00 00 10 00 00 00 00' => '68719476736', 'd3 00 00 00 10 00 00 00 01' => '68719476737', 'd3 00 00 10 00 00 00 00 00' => '17592186044416', 'd3 00 10 00 00 00 00 00 00' => '4503599627370496', 'd3 10 00 00 00 00 00 00 00' => '1152921504606846976', 'd3 11 00 00 00 00 00 00 00' => '1224979098644774912', 'd9 06 72 65 73 75 6c 74' => "result", # str 8 'da 00 07 73 75 63 63 65 73 73' => "success", # str 16 'db 00 00 00 05 74 6f 6b 65 6e' => "token", # str 32 'c4 06 72 65 73 75 6c 74' => "result", # bin 8 'c5 00 07 73 75 63 63 65 73 73' => "success", # bin 16 'c6 00 00 00 05 74 6f 6b 65 6e' => "token", # bin 32 ) cases.mpac100644001750001750 32514212656165 17517 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t/stdˀ?˿aaaaaaaaaacases_compact.mpac100644001750001750 16414212656165 21226 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/t/stdЀрҀˀ?˿aaaaaaaaaaMessagePack.xs100644001750001750 326614212656165 20527 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/xs-src#include "xshelper.h" #ifndef __cplusplus #include #endif XS(xs_pack); XS(xs_unpack); XS(xs_unpacker_new); XS(xs_unpacker_utf8); XS(xs_unpacker_get_utf8); XS(xs_unpacker_execute); XS(xs_unpacker_execute_limit); XS(xs_unpacker_is_finished); XS(xs_unpacker_data); XS(xs_unpacker_reset); XS(xs_unpacker_destroy); void init_Data__MessagePack_pack(pTHX_ bool const cloning); void init_Data__MessagePack_unpack(pTHX_ bool const cloning); MODULE = Data::MessagePack PACKAGE = Data::MessagePack BOOT: { init_Data__MessagePack_pack(aTHX_ false); init_Data__MessagePack_unpack(aTHX_ false); newXS("Data::MessagePack::pack", xs_pack, __FILE__); newXS("Data::MessagePack::unpack", xs_unpack, __FILE__); newXS("Data::MessagePack::Unpacker::new", xs_unpacker_new, __FILE__); newXS("Data::MessagePack::Unpacker::utf8", xs_unpacker_utf8, __FILE__); newXS("Data::MessagePack::Unpacker::get_utf8", xs_unpacker_get_utf8, __FILE__); newXS("Data::MessagePack::Unpacker::execute", xs_unpacker_execute, __FILE__); newXS("Data::MessagePack::Unpacker::execute_limit", xs_unpacker_execute_limit, __FILE__); newXS("Data::MessagePack::Unpacker::is_finished", xs_unpacker_is_finished, __FILE__); newXS("Data::MessagePack::Unpacker::data", xs_unpacker_data, __FILE__); newXS("Data::MessagePack::Unpacker::reset", xs_unpacker_reset, __FILE__); newXS("Data::MessagePack::Unpacker::DESTROY", xs_unpacker_destroy, __FILE__); } #ifdef USE_ITHREADS void CLONE(...) CODE: { PERL_UNUSED_VAR(items); init_Data__MessagePack_pack(aTHX_ true); init_Data__MessagePack_unpack(aTHX_ true); } #endif // USE_ITHREADS pack.c100644001750001750 2320014212656165 17060 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/xs-src/* * code is written by tokuhirom. * buffer alocation technique is taken from JSON::XS. thanks to mlehmann. */ #include "xshelper.h" #include "msgpack/pack_define.h" #define msgpack_pack_inline_func(name) \ static inline void msgpack_pack ## name #define msgpack_pack_inline_func_cint(name) \ static inline void msgpack_pack ## name // serialization context typedef struct { char *cur; /* SvPVX (sv) + current output position */ const char *end; /* SvEND (sv) */ SV *sv; /* result scalar */ bool prefer_int; bool canonical; } enc_t; STATIC_INLINE void dmp_append_buf(enc_t* const enc, const void* const buf, STRLEN const len) { if (enc->cur + len >= enc->end) { dTHX; STRLEN const cur = enc->cur - SvPVX_const(enc->sv); sv_grow (enc->sv, cur + (len < (cur >> 2) ? cur >> 2 : len) + 1); enc->cur = SvPVX_mutable(enc->sv) + cur; enc->end = SvPVX_const(enc->sv) + SvLEN (enc->sv) - 1; } memcpy(enc->cur, buf, len); enc->cur += len; } #define msgpack_pack_user enc_t* #define msgpack_pack_append_buffer(enc, buf, len) \ dmp_append_buf(enc, buf, len) #include "msgpack/pack_template.h" #define INIT_SIZE 32 /* initial scalar size to be allocated */ #if IVSIZE == 8 # define PACK_IV msgpack_pack_int64 # define PACK_UV msgpack_pack_uint64 #elif IVSIZE == 4 # define PACK_IV msgpack_pack_int32 # define PACK_UV msgpack_pack_uint32 #elif IVSIZE == 2 # define PACK_IV msgpack_pack_int16 # define PACK_UV msgpack_pack_uint16 #else # error "msgpack only supports IVSIZE = 8,4,2 environment." #endif #define ERR_NESTING_EXCEEDED "perl structure exceeds maximum nesting level (max_depth set too low?)" #define DMP_PREF_INT "PreferInteger" /* interpreter global variables */ #define MY_CXT_KEY "Data::MessagePack::_pack_guts" XS_VERSION typedef struct { bool prefer_int; bool canonical; } my_cxt_t; START_MY_CXT static int dmp_config_set(pTHX_ SV* sv, MAGIC* mg) { dMY_CXT; assert(mg->mg_ptr); if(strEQ(mg->mg_ptr, DMP_PREF_INT)) { MY_CXT.prefer_int = SvTRUE(sv) ? true : false; } else { assert(0); } return 0; } MGVTBL dmp_config_vtbl = { NULL, dmp_config_set, NULL, NULL, NULL, NULL, NULL, #ifdef MGf_LOCAL NULL, #endif }; void init_Data__MessagePack_pack(pTHX_ bool const cloning) { if(!cloning) { MY_CXT_INIT; MY_CXT.prefer_int = false; MY_CXT.canonical = false; } else { MY_CXT_CLONE; } SV* var = get_sv("Data::MessagePack::" DMP_PREF_INT, GV_ADDMULTI); sv_magicext(var, NULL, PERL_MAGIC_ext, &dmp_config_vtbl, DMP_PREF_INT, 0); SvSETMAGIC(var); } STATIC_INLINE int try_int(enc_t* enc, const char *p, size_t len) { int negative = 0; const char* pe = p + len; uint64_t num = 0; if (len == 0) { return 0; } if (*p == '-') { /* length(-0x80000000) == 11 */ if (len <= 1 || len > 11) { return 0; } negative = 1; ++p; } else { /* length(0xFFFFFFFF) == 10 */ if (len > 10) { return 0; } } #if '9'=='8'+1 && '8'=='7'+1 && '7'=='6'+1 && '6'=='5'+1 && '5'=='4'+1 \ && '4'=='3'+1 && '3'=='2'+1 && '2'=='1'+1 && '1'=='0'+1 do { unsigned int c = ((int)*(p++)) - '0'; if (c > 9) { return 0; } num = num * 10 + c; } while(p < pe); #else do { switch (*(p++)) { case '0': num = num * 10 + 0; break; case '1': num = num * 10 + 1; break; case '2': num = num * 10 + 2; break; case '3': num = num * 10 + 3; break; case '4': num = num * 10 + 4; break; case '5': num = num * 10 + 5; break; case '6': num = num * 10 + 6; break; case '7': num = num * 10 + 7; break; case '8': num = num * 10 + 8; break; case '9': num = num * 10 + 9; break; default: return 0; } } while(p < pe); #endif if (negative) { if (num > 0x80000000) { return 0; } msgpack_pack_int32(enc, ((int32_t)-num)); } else { if (num > 0xFFFFFFFF) { return 0; } msgpack_pack_uint32(enc, (uint32_t)num); } return 1; } STATIC_INLINE void _msgpack_pack_rv(pTHX_ enc_t *enc, SV* sv, int depth, bool utf8); STATIC_INLINE void _msgpack_pack_sv(pTHX_ enc_t* const enc, SV* const sv, int const depth, bool utf8) { assert(sv); if (UNLIKELY(depth <= 0)) Perl_croak(aTHX_ ERR_NESTING_EXCEEDED); SvGETMAGIC(sv); if (SvPOKp(sv)) { STRLEN const len = SvCUR(sv); const char* const pv = SvPVX_const(sv); if (enc->prefer_int && try_int(enc, pv, len)) { return; } else { if (utf8) { msgpack_pack_str(enc, len); msgpack_pack_str_body(enc, pv, len); } else { msgpack_pack_bin(enc, len); msgpack_pack_bin_body(enc, pv, len); } } } else if (SvNOKp(sv)) { msgpack_pack_double(enc, (double)SvNVX(sv)); } else if (SvIOKp(sv)) { if(SvUOK(sv)) { PACK_UV(enc, SvUVX(sv)); } else { PACK_IV(enc, SvIVX(sv)); } } else if (SvROK(sv)) { _msgpack_pack_rv(aTHX_ enc, SvRV(sv), depth-1, utf8); } else if (!SvOK(sv)) { msgpack_pack_nil(enc); } else if (isGV(sv)) { Perl_croak(aTHX_ "msgpack cannot pack the GV\n"); } else { sv_dump(sv); Perl_croak(aTHX_ "msgpack for perl doesn't supported this type: %d\n", SvTYPE(sv)); } } STATIC_INLINE void _msgpack_pack_he(pTHX_ enc_t* enc, HV* hv, HE* he, int depth, bool utf8) { _msgpack_pack_sv(aTHX_ enc, hv_iterkeysv(he), depth, utf8); _msgpack_pack_sv(aTHX_ enc, hv_iterval(hv, he), depth, utf8); } STATIC_INLINE void _msgpack_pack_rv(pTHX_ enc_t *enc, SV* sv, int depth, bool utf8) { svtype svt; assert(sv); SvGETMAGIC(sv); svt = SvTYPE(sv); if (SvOBJECT (sv)) { HV *stash = gv_stashpv ("Data::MessagePack::Boolean", 1); // TODO: cache? if (SvSTASH (sv) == stash) { if (SvIV(sv)) { msgpack_pack_true(enc); } else { msgpack_pack_false(enc); } } else { croak ("encountered object '%s', Data::MessagePack doesn't allow the object", SvPV_nolen(sv_2mortal(newRV_inc(sv)))); } } else if (svt == SVt_PVHV) { HV* hval = (HV*)sv; int count = hv_iterinit(hval); HE* he; if (SvTIED_mg(sv,PERL_MAGIC_tied)) { count = 0; while (hv_iternext (hval)) ++count; hv_iterinit (hval); } msgpack_pack_map(enc, count); if (enc->canonical) { AV* const keys = newAV(); sv_2mortal((SV*)keys); av_extend(keys, count); while ((he = hv_iternext(hval))) { av_push(keys, SvREFCNT_inc(hv_iterkeysv(he))); } int const len = av_len(keys) + 1; sortsv(AvARRAY(keys), len, Perl_sv_cmp); int i; for (i=0; ipack($dat [,$max_depth])"); } SV* self = ST(0); SV* val = ST(1); int depth = 512; bool utf8 = false; if (items >= 3) depth = SvIVx(ST(2)); enc_t enc; enc.sv = sv_2mortal(newSV(INIT_SIZE)); enc.cur = SvPVX(enc.sv); enc.end = SvEND(enc.sv); SvPOK_only(enc.sv); // setup configuration dMY_CXT; enc.prefer_int = MY_CXT.prefer_int; // back compat if(SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) { HV* const hv = (HV*)SvRV(self); SV** svp; svp = hv_fetchs(hv, "prefer_integer", FALSE); if(svp) { enc.prefer_int = SvTRUE(*svp) ? true : false; } svp = hv_fetchs(hv, "canonical", FALSE); if(svp) { enc.canonical = SvTRUE(*svp) ? true : false; } svp = hv_fetchs(hv, "utf8", FALSE); if (svp) { utf8 = SvTRUE(*svp) ? true : false; } } _msgpack_pack_sv(aTHX_ &enc, val, depth, utf8); SvCUR_set(enc.sv, enc.cur - SvPVX (enc.sv)); *SvEND (enc.sv) = 0; /* many xs functions expect a trailing 0 for text strings */ ST(0) = enc.sv; XSRETURN(1); } unpack.c100644001750001750 3160214212656165 17430 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/xs-src#define NEED_newRV_noinc #define NEED_sv_2pv_flags #include "xshelper.h" #define MY_CXT_KEY "Data::MessagePack::_unpack_guts" XS_VERSION typedef struct { SV* msgpack_true; SV* msgpack_false; } my_cxt_t; START_MY_CXT // context data for execute_template() typedef struct { bool finished; bool utf8; SV* buffer; } unpack_user; #define UNPACK_USER_INIT { false, false, NULL } #include "msgpack/unpack_define.h" #define msgpack_unpack_struct(name) \ struct template ## name #define msgpack_unpack_func(ret, name) \ STATIC_INLINE ret template ## name #define msgpack_unpack_callback(name) \ template_callback ## name #define msgpack_unpack_object SV* #define msgpack_unpack_user unpack_user void init_Data__MessagePack_unpack(pTHX_ bool const cloning) { // booleans are load on demand (lazy load). if(!cloning) { MY_CXT_INIT; PERL_UNUSED_VAR(MY_CXT); } else { MY_CXT_CLONE; } dMY_CXT; MY_CXT.msgpack_true = NULL; MY_CXT.msgpack_false = NULL; } /* ---------------------------------------------------------------------- */ /* utility functions */ static SV* load_bool(pTHX_ const char* const name) { CV* const cv = get_cv(name, GV_ADD); dSP; ENTER; SAVETMPS; PUSHMARK(SP); call_sv((SV*)cv, G_SCALAR); SPAGAIN; SV* const sv = newSVsv(POPs); PUTBACK; FREETMPS; LEAVE; assert(sv); assert(sv_isobject(sv)); if(!SvOK(sv)) { croak("Oops: Failed to load %"SVf, name); } return sv; } static SV* get_bool(bool const value) { dTHX; dMY_CXT; if(value) { if(!MY_CXT.msgpack_true) { MY_CXT.msgpack_true = load_bool(aTHX_ "Data::MessagePack::true"); } return newSVsv(MY_CXT.msgpack_true); } else { if(!MY_CXT.msgpack_false) { MY_CXT.msgpack_false = load_bool(aTHX_ "Data::MessagePack::false"); } return newSVsv(MY_CXT.msgpack_false); } } /* ---------------------------------------------------------------------- */ struct template_context; typedef struct template_context msgpack_unpack_t; static void template_init(msgpack_unpack_t* u); static SV* template_data(msgpack_unpack_t* u); static int template_execute(msgpack_unpack_t* u PERL_UNUSED_DECL, const char* data, size_t len, size_t* off); STATIC_INLINE SV* template_callback_root(unpack_user* u PERL_UNUSED_DECL) { return NULL; } #if IVSIZE == 4 STATIC_INLINE int template_callback_UV(unpack_user* u PERL_UNUSED_DECL, UV const d, SV** o) { dTHX; *o = newSVuv(d); return 0; } STATIC_INLINE int template_callback_IV(unpack_user* u PERL_UNUSED_DECL, IV const d, SV** o) { dTHX; *o = newSViv(d); return 0; } /* workaround win32 problems (my_snprintf(%llu) returns incorrect values ) */ static char* str_from_uint64(char* buf_end, uint64_t v) { char *p = buf_end; *--p = '\0'; do { *--p = '0' + v % 10; } while ((v /= 10) != 0); return p; } static const char* str_from_int64(char* buf_end, int64_t const v) { bool const minus = v < 0; char* p = str_from_uint64(buf_end, minus ? -v : v); if (minus) *--p = '-'; return p; } static int template_callback_uint64(unpack_user* u PERL_UNUSED_DECL, uint64_t const d, SV** o) { dTHX; char tbuf[64]; const char* const s = str_from_uint64(tbuf + sizeof(tbuf), d); *o = newSVpvn(s, tbuf + sizeof(tbuf) - 1 - s); return 0; } static int template_callback_int64(unpack_user* u PERL_UNUSED_DECL, int64_t const d, SV** o) { dTHX; char tbuf[64]; const char* const s = str_from_int64(tbuf + sizeof(tbuf), d); *o = newSVpvn(s, tbuf + sizeof(tbuf) - 1 - s); return 0; } #else /* IVSIZE == 8 */ STATIC_INLINE int template_callback_UV(unpack_user* u PERL_UNUSED_DECL, UV const d, SV** o) { dTHX; *o = newSVuv(d); return 0; } #define template_callback_uint64 template_callback_UV STATIC_INLINE int template_callback_IV(unpack_user* u PERL_UNUSED_DECL, IV const d, SV** o) { dTHX; *o = newSViv(d); return 0; } #define template_callback_int64 template_callback_IV #endif /* IVSIZE */ #define template_callback_uint8 template_callback_UV #define template_callback_uint16 template_callback_UV #define template_callback_uint32 template_callback_UV #define template_callback_int8 template_callback_IV #define template_callback_int16 template_callback_IV #define template_callback_int32 template_callback_IV #define template_callback_float template_callback_double STATIC_INLINE int template_callback_double(unpack_user* u PERL_UNUSED_DECL, double d, SV** o) { dTHX; *o = newSVnv(d); return 0; } /* &PL_sv_undef is not so good. see http://gist.github.com/387743 */ STATIC_INLINE int template_callback_nil(unpack_user* u PERL_UNUSED_DECL, SV** o) { dTHX; *o = newSV(0); return 0; } STATIC_INLINE int template_callback_true(unpack_user* u PERL_UNUSED_DECL, SV** o) { *o = get_bool(true); return 0; } STATIC_INLINE int template_callback_false(unpack_user* u PERL_UNUSED_DECL, SV** o) { *o = get_bool(false); return 0; } STATIC_INLINE int template_callback_array(unpack_user* u PERL_UNUSED_DECL, unsigned int n, SV** o) { dTHX; AV* const a = newAV(); *o = newRV_noinc((SV*)a); av_extend(a, n + 1); return 0; } STATIC_INLINE int template_callback_array_item(unpack_user* u PERL_UNUSED_DECL, SV** c, SV* o) { dTHX; AV* const a = (AV*)SvRV(*c); assert(SvTYPE(a) == SVt_PVAV); (void)av_store(a, AvFILLp(a) + 1, o); // the same as av_push(a, o) return 0; } STATIC_INLINE int template_callback_map(unpack_user* u PERL_UNUSED_DECL, unsigned int n, SV** o) { dTHX; HV* const h = newHV(); hv_ksplit(h, n); *o = newRV_noinc((SV*)h); return 0; } STATIC_INLINE int template_callback_map_item(unpack_user* u PERL_UNUSED_DECL, SV** c, SV* k, SV* v) { dTHX; HV* const h = (HV*)SvRV(*c); assert(SvTYPE(h) == SVt_PVHV); (void)hv_store_ent(h, k, v, 0); SvREFCNT_dec(k); return 0; } STATIC_INLINE int template_callback_str(unpack_user* u PERL_UNUSED_DECL, const char* b PERL_UNUSED_DECL, const char* p, unsigned int l, SV** o) { dTHX; /* newSVpvn(p, l) returns an undef if p == NULL */ *o = ((l==0) ? newSVpvs("") : newSVpvn(p, l)); sv_utf8_decode(*o); return 0; } STATIC_INLINE int template_callback_bin(unpack_user* u PERL_UNUSED_DECL, const char* b PERL_UNUSED_DECL, const char* p, unsigned int l, SV** o) { dTHX; *o = ((l==0) ? newSVpvs("") : newSVpvn(p, l)); if(u->utf8) { sv_utf8_decode(*o); } return 0; } STATIC_INLINE int template_callback_ext(unpack_user* u PERL_UNUSED_DECL, const char* b PERL_UNUSED_DECL, const char* p PERL_UNUSED_DECL, unsigned int l PERL_UNUSED_DECL, SV** o PERL_UNUSED_DECL) { croak("EXT type is not supporeted yet"); return 0; } #include "msgpack/unpack_template.h" #define UNPACKER(from, name) \ msgpack_unpack_t *name; \ { \ SV* const obj = from; \ if(!(SvROK(obj) && SvIOK(SvRV(obj)))) { \ Perl_croak(aTHX_ "Invalid unpacker instance for " #name); \ } \ name = INT2PTR(msgpack_unpack_t*, SvIVX(SvRV((obj)))); \ if(name == NULL) { \ Perl_croak(aTHX_ "NULL found for " # name " when shouldn't be"); \ } \ } XS(xs_unpack) { dXSARGS; SV* const self = ST(0); SV* const data = ST(1); unpack_user u = UNPACK_USER_INIT; // setup configuration if(SvROK(self) && SvTYPE(SvRV(self)) == SVt_PVHV) { HV* const hv = (HV*)SvRV(self); SV** svp; svp = hv_fetchs(hv, "utf8", FALSE); if(svp) { u.utf8 = SvTRUE(*svp) ? true : false; } } if (!(items == 2 || items == 3)) { Perl_croak(aTHX_ "Usage: Data::MessagePack->unpack('data' [, $limit])"); } STRLEN dlen; const char* const dptr = SvPV_const(data, dlen); msgpack_unpack_t mp; template_init(&mp); mp.user = u; size_t from = 0; int const ret = template_execute(&mp, dptr, (size_t)dlen, &from); SV* const obj = template_data(&mp); sv_2mortal(obj); if(ret < 0) { Perl_croak(aTHX_ "Data::MessagePack->unpack: parse error"); } else if(ret == 0) { Perl_croak(aTHX_ "Data::MessagePack->unpack: insufficient bytes"); } else { if(from < dlen) { Perl_croak(aTHX_ "Data::MessagePack->unpack: extra bytes"); } } ST(0) = obj; XSRETURN(1); } /* ------------------------------ stream -- */ /* http://twitter.com/frsyuki/status/13249304748 */ XS(xs_unpacker_new) { dXSARGS; if (items != 1) { Perl_croak(aTHX_ "Usage: Data::MessagePack::Unpacker->new()"); } SV* const self = sv_newmortal(); msgpack_unpack_t *mp; Newxz(mp, 1, msgpack_unpack_t); template_init(mp); unpack_user const u = UNPACK_USER_INIT; mp->user = u; mp->user.buffer = newSV(80); sv_setpvs(mp->user.buffer, ""); sv_setref_pv(self, "Data::MessagePack::Unpacker", mp); ST(0) = self; XSRETURN(1); } XS(xs_unpacker_utf8) { dXSARGS; if (!(items == 1 || items == 2)) { Perl_croak(aTHX_ "Usage: $unpacker->utf8([$bool)"); } UNPACKER(ST(0), mp); mp->user.utf8 = (items == 1 || sv_true(ST(1))) ? true : false; XSRETURN(1); // returns $self } XS(xs_unpacker_get_utf8) { dXSARGS; if (items != 1) { Perl_croak(aTHX_ "Usage: $unpacker->get_utf8()"); } UNPACKER(ST(0), mp); ST(0) = boolSV(mp->user.utf8); XSRETURN(1); } STATIC_INLINE size_t _execute_impl(SV* const self, SV* const data, UV const offset, UV const limit) { dTHX; if(offset >= limit) { Perl_croak(aTHX_ "offset (%"UVuf") is bigger than data buffer size (%"UVuf")", offset, limit); } UNPACKER(self, mp); size_t from = offset; const char* dptr = SvPV_nolen_const(data); STRLEN dlen = limit; if(SvCUR(mp->user.buffer) != 0) { sv_catpvn(mp->user.buffer, dptr, dlen); dptr = SvPV_const(mp->user.buffer, dlen); from = 0; } int const ret = template_execute(mp, dptr, dlen, &from); // ret < 0 : error // ret == 0 : insufficient // ret > 0 : success if(ret < 0) { Perl_croak(aTHX_ "Data::MessagePack::Unpacker: parse error while executing"); } mp->user.finished = (ret > 0) ? true : false; if(!mp->user.finished) { template_init(mp); // reset the state sv_setpvn(mp->user.buffer, dptr, dlen); from = 0; } else { sv_setpvs(mp->user.buffer, ""); } //warn(">> (%d) dlen=%d, from=%d, rest=%d", // (int)ret, (int)dlen, (int)from, dlen - from); return from; } XS(xs_unpacker_execute) { dXSARGS; SV* const self = ST(0); SV* const data = ST(1); UV offset; if (items == 2) { offset = 0; } else if (items == 3) { offset = SvUVx(ST(2)); } else { Perl_croak(aTHX_ "Usage: $unpacker->execute(data, offset = 0)"); } dXSTARG; sv_setuv(TARG, _execute_impl(self, data, offset, sv_len(data))); ST(0) = TARG; XSRETURN(1); } XS(xs_unpacker_execute_limit) { dXSARGS; if (items != 4) { Perl_croak(aTHX_ "Usage: $unpacker->execute_limit(data, offset, limit)"); } SV* const self = ST(0); SV* const data = ST(1); UV const offset = SvUVx(ST(2)); UV const limit = SvUVx(ST(3)); dXSTARG; sv_setuv(TARG, _execute_impl(self, data, offset, limit)); ST(0) = TARG; XSRETURN(1); } XS(xs_unpacker_is_finished) { dXSARGS; if (items != 1) { Perl_croak(aTHX_ "Usage: $unpacker->is_finished()"); } UNPACKER(ST(0), mp); ST(0) = boolSV(mp->user.finished); XSRETURN(1); } XS(xs_unpacker_data) { dXSARGS; if (items != 1) { Perl_croak(aTHX_ "Usage: $unpacker->data()"); } UNPACKER(ST(0), mp); ST(0) = template_data(mp); XSRETURN(1); } XS(xs_unpacker_reset) { dXSARGS; if (items != 1) { Perl_croak(aTHX_ "Usage: $unpacker->reset()"); } UNPACKER(ST(0), mp); SV* const data = template_data(mp); SvREFCNT_dec(data); template_init(mp); sv_setpvs(mp->user.buffer, ""); XSRETURN(0); } XS(xs_unpacker_destroy) { dXSARGS; if (items != 1) { Perl_croak(aTHX_ "Usage: $unpacker->DESTROY()"); } UNPACKER(ST(0), mp); SV* const data = template_data(mp); SvREFCNT_dec(data); SvREFCNT_dec(mp->user.buffer); Safefree(mp); XSRETURN(0); } 99_pod.t100644001750001750 20114212656165 16436 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/xtuse Test::More; eval "use Test::Pod 1.00"; plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; all_pod_files_ok(); normal.t100644001750001750 557014212656165 17760 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/xt/leaksuse strict; use warnings; use Test::More; use Data::MessagePack; use Devel::Peek; plan skip_all => '$ENV{LEAK_TEST} is required' unless $ENV{LEAK_TEST}; plan skip_all => 'need /proc filesystem' unless -d "/proc/$$"; my $input = [ { "ZCPGBENCH-1276933268" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "VDORBENCH-5637665303" => { "1271859210" => [ "\x00\x01\x00\x01\x00", 1 ] }, "ZVTHBENCH-7648578738" => { "1271859210" => [ "\x0a\x02\x04\x00\x00", "2600", "\x0a\x05\x04\x00\x00", "4600" ] }, "VMVTBENCH-5237337637" => { "1271859210" => [ "\x00\x01\x00\x01\x00", 1 ] }, "ZPLSBENCH-1823993880" => { "1271859210" => [ "\x01\x07\x07\x03\x06", "10001" ] }, "ZCPGBENCH-1995524375" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "ZCPGBENCH-2330423245" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "ZCPGBENCH-2963065090" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "MINT0" => { "1271859210" => [ "\x00\x01\x00\x01\x00", "D" ] } } ]; my $r = Data::MessagePack->pack($input); my $n1 = trace(10); my $n2 = trace(10000); diag("$n1, $n2"); cmp_ok abs($n2-$n1), '<', 100; done_testing; sub trace { my $n = shift; my $before = memoryusage(); for ( 1 .. $n ) { my $x = Data::MessagePack->unpack($r); # is_deeply($x, $input); } my $after = memoryusage(); diag("$n\t: $after - $before"); return $after - $before; } sub memoryusage { my $status = `cat /proc/$$/status`; my @lines = split( "\n", $status ); foreach my $line (@lines) { if ( $line =~ /^VmRSS:/ ) { $line =~ s/.*:\s*(\d+).*/$1/; return int($line); } } return -1; } __END__ [ { "ZCPGBENCH-1276933268" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "VDORBENCH-5637665303" => { "1271859210" => [ "\x00\x01\x00\x01\x00", 1 ] }, "ZVTHBENCH-7648578738" => { "1271859210" => [ "\x0a\x02\x04\x00\x00", "2600", "\x0a\x05\x04\x00\x00", "4600" ] }, "VMVTBENCH-5237337637" => { "1271859210" => [ "\x00\x01\x00\x01\x00", 1 ] }, "ZPLSBENCH-1823993880" => { "1271859210" => [ "\x01\x07\x07\x03\x06", "10001" ] }, "ZCPGBENCH-1995524375" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "ZCPGBENCH-2330423245" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "ZCPGBENCH-2963065090" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "MINT0" => { "1271859210" => [ "\x00\x01\x00\x01\x00", "D" ] } } ] stream.t100644001750001750 655214212656165 17764 0ustar00syoheisyohei000000000000Data-MessagePack-1.02/xt/leaksuse strict; use warnings; use Test::More; use Data::MessagePack; use Devel::Peek; plan skip_all => '$ENV{LEAK_TEST} is required' unless $ENV{LEAK_TEST}; plan skip_all => 'need /proc filesystem' unless -d "/proc/$$"; my $input = [ { "ZCPGBENCH-1276933268" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "VDORBENCH-5637665303" => { "1271859210" => [ "\x00\x01\x00\x01\x00", 1 ] }, "ZVTHBENCH-7648578738" => { "1271859210" => [ "\x0a\x02\x04\x00\x00", "2600", "\x0a\x05\x04\x00\x00", "4600" ] }, "VMVTBENCH-5237337637" => { "1271859210" => [ "\x00\x01\x00\x01\x00", 1 ] }, "ZPLSBENCH-1823993880" => { "1271859210" => [ "\x01\x07\x07\x03\x06", "10001" ] }, "ZCPGBENCH-1995524375" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "ZCPGBENCH-2330423245" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "ZCPGBENCH-2963065090" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "MINT0" => { "1271859210" => [ "\x00\x01\x00\x01\x00", "D" ] } } ]; $input = [(undef)x10]; my $r = Data::MessagePack->pack($input); my $n1 = trace(10); my $n2 = trace(10000); diag("$n1, $n2"); cmp_ok abs($n2-$n1), '<', 100; done_testing; sub trace { my $n = shift; my $before = memoryusage(); for ( 1 .. $n ) { my $unpacker = Data::MessagePack::Unpacker->new(); $unpacker->execute($r, 0); # ok $unpacker->is_finished if $i % 100 == 0; if ($unpacker->is_finished) { my $x = $unpacker->data; # is_deeply($x, $input) if $i % 100 == 0; } $unpacker->reset(); $unpacker->execute($r, 0); $unpacker->reset(); $unpacker->execute(substr($r, 0, 1), 0); $unpacker->execute(substr($r, 0, 2), 1); $unpacker->execute($r, 2); $unpacker->reset(); $r or die; } my $after = memoryusage(); diag("$n\t: $after - $before"); return $after - $before; } sub memoryusage { my $status = `cat /proc/$$/status`; my @lines = split( "\n", $status ); foreach my $line (@lines) { if ( $line =~ /^VmRSS:/ ) { $line =~ s/.*:\s*(\d+).*/$1/; return int($line); } } return -1; } __END__ [ { "ZCPGBENCH-1276933268" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "VDORBENCH-5637665303" => { "1271859210" => [ "\x00\x01\x00\x01\x00", 1 ] }, "ZVTHBENCH-7648578738" => { "1271859210" => [ "\x0a\x02\x04\x00\x00", "2600", "\x0a\x05\x04\x00\x00", "4600" ] }, "VMVTBENCH-5237337637" => { "1271859210" => [ "\x00\x01\x00\x01\x00", 1 ] }, "ZPLSBENCH-1823993880" => { "1271859210" => [ "\x01\x07\x07\x03\x06", "10001" ] }, "ZCPGBENCH-1995524375" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "ZCPGBENCH-2330423245" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "ZCPGBENCH-2963065090" => { "1271859210" => [ "\x14\x02\x07\x00\x00", 1 ] }, "MINT0" => { "1271859210" => [ "\x00\x01\x00\x01\x00", "D" ] } } ] META.yml100644001750001750 720014212656165 16012 0ustar00syoheisyohei000000000000Data-MessagePack-1.02--- abstract: 'MessagePack serializing/deserializing' author: - 'Tokuhiro Matsuno' build_requires: Test::More: '0.98' Test::Requires: '0' configure_requires: Devel::PPPort: '3.42' Module::Build: '0.4005' Module::Build::XSUtil: '0' dynamic_config: 0 generated_by: 'Minilla/v3.1.15, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html version: '1.4' name: Data-MessagePack no_index: directory: - t - xt - inc - share - eg - examples - author - builder provides: Data::MessagePack: file: lib/Data/MessagePack.pm version: '1.02' Data::MessagePack::Boolean: file: lib/Data/MessagePack/Boolean.pm Data::MessagePack::PP: file: lib/Data/MessagePack/PP.pm requires: Math::BigInt: '1.89' perl: '5.008001' resources: bugtracker: https://github.com/msgpack/msgpack-perl/issues homepage: https://github.com/msgpack/msgpack-perl repository: https://github.com/msgpack/msgpack-perl.git version: '1.02' x_authority: cpan:TOKUHIROM x_contributors: - 'Brian Ketelsen ' - 'David Steinbrunner ' - 'FUJI Goro (gfx) ' - 'FURUHASHI Sadayuki ' - 'Fuji Goro ' - 'Fuji, Goro ' - 'Fuji, Goro ' - 'Hideyuki TAKEI ' - 'Hideyuki Tanaka ' - 'Hideyuki Tanaka ' - 'Hideyuki Tanaka ' - 'Hideyuki Tanaka ' - 'INADA Naoki ' - 'Kazuho Oku ' - 'Kazuki Ohta ' - 'Kazuki Ohta ' - 'Kazuki Oikawa ' - 'Keiji Muraishi ' - 'Masahiro Nakagawa ' - 'Moriyoshi Koizumi ' - 'Muga Nishizawa ' - 'Muga Nishizawa ' - 'Naoki INADA ' - 'Naoki INADA ' - 'Naoki INADA ' - 'Naoki INADA ' - 'Naoki INADA ' - 'Nicolas Despres ' - 'Nikolay Mishin ' - 'Perlover ' - 'Reini Urban ' - 'Robin Smidsrød ' - 'Shohei YOSHIDA ' - 'Shohei YOSHIDA ' - 'Shoichi Kaji ' - 'Taro L. Saito ' - 'Tokuhiro Matsuno ' - 'UENISHI Kota ' - 'UENISHI Kota ' - 'Vasily Titskiy ' - 'Vincent de Phily ' - 'Watabiki Naoya ' - 'Yuto Hayamizu ' - 'advect ' - 'cho45 ' - 'egtra ' - 'firewood ' - 'frsyuki (none) ' - 'frsyuki ' - 'frsyuki ' - 'gfx ' - 'inada-n ' - 'inada-n ' - 'inada-n ' - 'makamaka ' - 'moaikids ' - 'mzp ' - 'tailhook ' - 'takeshita ' - 'tokuhirom ' - 'xanxys ' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' x_static_install: 0 MANIFEST100644001750001750 1371514212656165 15722 0ustar00syoheisyohei000000000000Data-MessagePack-1.02Build.PL Changes LICENSE META.json README.md author/update-msgpack-c.pl benchmark/data.pl benchmark/deserialize.pl benchmark/serialize.pl benchmark/size.pl builder/MyBuilder.pm cpanfile include/msgpack-c-version include/msgpack/fbuffer.h include/msgpack/gcc_atomic.h include/msgpack/object.h include/msgpack/pack.h include/msgpack/pack_define.h include/msgpack/pack_template.h include/msgpack/predef.h include/msgpack/predef/architecture.h include/msgpack/predef/architecture/alpha.h include/msgpack/predef/architecture/arm.h include/msgpack/predef/architecture/blackfin.h include/msgpack/predef/architecture/convex.h include/msgpack/predef/architecture/ia64.h include/msgpack/predef/architecture/m68k.h include/msgpack/predef/architecture/mips.h include/msgpack/predef/architecture/parisc.h include/msgpack/predef/architecture/ppc.h include/msgpack/predef/architecture/pyramid.h include/msgpack/predef/architecture/rs6k.h include/msgpack/predef/architecture/sparc.h include/msgpack/predef/architecture/superh.h include/msgpack/predef/architecture/sys370.h include/msgpack/predef/architecture/sys390.h include/msgpack/predef/architecture/x86.h include/msgpack/predef/architecture/x86/32.h include/msgpack/predef/architecture/x86/64.h include/msgpack/predef/architecture/z.h include/msgpack/predef/compiler.h include/msgpack/predef/compiler/borland.h include/msgpack/predef/compiler/clang.h include/msgpack/predef/compiler/comeau.h include/msgpack/predef/compiler/compaq.h include/msgpack/predef/compiler/diab.h include/msgpack/predef/compiler/digitalmars.h include/msgpack/predef/compiler/dignus.h include/msgpack/predef/compiler/edg.h include/msgpack/predef/compiler/ekopath.h include/msgpack/predef/compiler/gcc.h include/msgpack/predef/compiler/gcc_xml.h include/msgpack/predef/compiler/greenhills.h include/msgpack/predef/compiler/hp_acc.h include/msgpack/predef/compiler/iar.h include/msgpack/predef/compiler/ibm.h include/msgpack/predef/compiler/intel.h include/msgpack/predef/compiler/kai.h include/msgpack/predef/compiler/llvm.h include/msgpack/predef/compiler/metaware.h include/msgpack/predef/compiler/metrowerks.h include/msgpack/predef/compiler/microtec.h include/msgpack/predef/compiler/mpw.h include/msgpack/predef/compiler/palm.h include/msgpack/predef/compiler/pgi.h include/msgpack/predef/compiler/sgi_mipspro.h include/msgpack/predef/compiler/sunpro.h include/msgpack/predef/compiler/tendra.h include/msgpack/predef/compiler/visualc.h include/msgpack/predef/compiler/watcom.h include/msgpack/predef/detail/_cassert.h include/msgpack/predef/detail/_exception.h include/msgpack/predef/detail/comp_detected.h include/msgpack/predef/detail/endian_compat.h include/msgpack/predef/detail/os_detected.h include/msgpack/predef/detail/platform_detected.h include/msgpack/predef/detail/test.h include/msgpack/predef/language.h include/msgpack/predef/language/objc.h include/msgpack/predef/language/stdc.h include/msgpack/predef/language/stdcpp.h include/msgpack/predef/library.h include/msgpack/predef/library/c.h include/msgpack/predef/library/c/_prefix.h include/msgpack/predef/library/c/gnu.h include/msgpack/predef/library/c/uc.h include/msgpack/predef/library/c/vms.h include/msgpack/predef/library/c/zos.h include/msgpack/predef/library/std.h include/msgpack/predef/library/std/_prefix.h include/msgpack/predef/library/std/cxx.h include/msgpack/predef/library/std/dinkumware.h include/msgpack/predef/library/std/libcomo.h include/msgpack/predef/library/std/modena.h include/msgpack/predef/library/std/msl.h include/msgpack/predef/library/std/roguewave.h include/msgpack/predef/library/std/sgi.h include/msgpack/predef/library/std/stdcpp3.h include/msgpack/predef/library/std/stlport.h include/msgpack/predef/library/std/vacpp.h include/msgpack/predef/make.h include/msgpack/predef/os.h include/msgpack/predef/os/aix.h include/msgpack/predef/os/amigaos.h include/msgpack/predef/os/android.h include/msgpack/predef/os/beos.h include/msgpack/predef/os/bsd.h include/msgpack/predef/os/bsd/bsdi.h include/msgpack/predef/os/bsd/dragonfly.h include/msgpack/predef/os/bsd/free.h include/msgpack/predef/os/bsd/net.h include/msgpack/predef/os/bsd/open.h include/msgpack/predef/os/cygwin.h include/msgpack/predef/os/haiku.h include/msgpack/predef/os/hpux.h include/msgpack/predef/os/ios.h include/msgpack/predef/os/irix.h include/msgpack/predef/os/linux.h include/msgpack/predef/os/macos.h include/msgpack/predef/os/os400.h include/msgpack/predef/os/qnxnto.h include/msgpack/predef/os/solaris.h include/msgpack/predef/os/unix.h include/msgpack/predef/os/vms.h include/msgpack/predef/os/windows.h include/msgpack/predef/other.h include/msgpack/predef/other/endian.h include/msgpack/predef/platform.h include/msgpack/predef/platform/mingw.h include/msgpack/predef/platform/windows_desktop.h include/msgpack/predef/platform/windows_phone.h include/msgpack/predef/platform/windows_runtime.h include/msgpack/predef/platform/windows_store.h include/msgpack/predef/version.h include/msgpack/predef/version_number.h include/msgpack/sbuffer.h include/msgpack/sysdep.h include/msgpack/unpack.h include/msgpack/unpack_define.h include/msgpack/unpack_template.h include/msgpack/util.h include/msgpack/version.h include/msgpack/version_master.h include/msgpack/vrefbuffer.h include/msgpack/zbuffer.h include/msgpack/zone.h lib/Data/MessagePack.pm lib/Data/MessagePack/Boolean.pm lib/Data/MessagePack/PP.pm lib/Data/MessagePack/Unpacker.pod minil.toml t/00_compile.t t/01_pack.t t/02_unpack.t t/03_stream_unpack.t t/04_invert.t t/05_preferred_int.t t/06_stream_unpack2.t t/07_break.t t/08_cycle.t t/09_stddata.t t/10_splitted_bytes.t t/11_stream_unpack3.t t/12_stream_unpack4.t t/13_booleans.t t/14_invalid_data.t t/15_utf8.t t/16_unpacker_for_larges.t t/17_canonical.t t/18_new_interface.t t/19_utf8_property.t t/20_de.t t/21_dirty_float.t t/22_pid_pack_unpack.t t/23-empty-key.t t/24_tied.t t/40_threads.t t/50_leaktrace.t t/Util.pm t/data.pl t/std/cases.mpac t/std/cases_compact.mpac xs-src/MessagePack.xs xs-src/pack.c xs-src/unpack.c xt/99_pod.t xt/leaks/normal.t xt/leaks/stream.t META.yml MANIFEST