Hideaki Tai / msgpack-embedded

Dependents:   hello_message_pack

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers cpp03_define_map.hpp Source File

cpp03_define_map.hpp

00001 //
00002 // MessagePack for C++ static resolution routine
00003 //
00004 // Copyright (C) 2015 KONDO Takatoshi
00005 //
00006 //    Distributed under the Boost Software License, Version 1.0.
00007 //    (See accompanying file LICENSE_1_0.txt or copy at
00008 //    http://www.boost.org/LICENSE_1_0.txt)
00009 //
00010 #ifndef MSGPACK_CPP03_DEFINE_MAP_HPP
00011 #define MSGPACK_CPP03_DEFINE_MAP_HPP
00012 
00013 // BOOST_PP_VARIADICS is defined in boost/preprocessor/config/config.hpp
00014 // http://www.boost.org/libs/preprocessor/doc/ref/variadics.html
00015 // However, supporting compiler detection is not complete. msgpack-c requires
00016 // variadic macro arguments support. So BOOST_PP_VARIADICS is defined here explicitly.
00017 #if !defined(MSGPACK_PP_VARIADICS)
00018 #define MSGPACK_PP_VARIADICS
00019 #endif
00020 
00021 #include <msgpack/preprocessor.hpp>
00022 
00023 #include "msgpack/versioning.hpp"
00024 #include "msgpack/adaptor/msgpack_tuple.hpp"
00025 #include "msgpack/adaptor/adaptor_base.hpp"
00026 #include "msgpack/object_fwd.hpp"
00027 
00028 #define MSGPACK_DEFINE_MAP_EACH_PROC(r, data, elem) \
00029     MSGPACK_PP_IF( \
00030         MSGPACK_PP_IS_BEGIN_PARENS(elem), \
00031         elem, \
00032         (MSGPACK_PP_STRINGIZE(elem))(elem) \
00033     )
00034 
00035 #define MSGPACK_DEFINE_MAP_IMPL(...) \
00036     MSGPACK_PP_SEQ_TO_TUPLE( \
00037         MSGPACK_PP_SEQ_FOR_EACH( \
00038             MSGPACK_DEFINE_MAP_EACH_PROC, \
00039             0, \
00040             MSGPACK_PP_VARIADIC_TO_SEQ(__VA_ARGS__) \
00041         ) \
00042     )
00043 
00044 #define MSGPACK_DEFINE_MAP(...) \
00045     template <typename Packer> \
00046     void msgpack_pack(Packer& pk) const \
00047     { \
00048         msgpack::type::make_define_map \
00049             MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
00050             .msgpack_pack(pk); \
00051     } \
00052     void msgpack_unpack(msgpack::object const& o) \
00053     { \
00054         msgpack::type::make_define_map \
00055             MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
00056             .msgpack_unpack(o); \
00057     }\
00058     template <typename MSGPACK_OBJECT> \
00059     void msgpack_object(MSGPACK_OBJECT* o, msgpack::zone& z) const \
00060     { \
00061         msgpack::type::make_define_map \
00062             MSGPACK_DEFINE_MAP_IMPL(__VA_ARGS__) \
00063             .msgpack_object(o, z); \
00064     }
00065 
00066 #define MSGPACK_BASE_MAP(base) \
00067     (MSGPACK_PP_STRINGIZE(base))(*const_cast<base *>(static_cast<base const*>(this)))
00068 
00069 namespace msgpack {
00070 /// @cond
00071 MSGPACK_API_VERSION_NAMESPACE(v1) {
00072 /// @endcond
00073 namespace type {
00074 
00075 /// @cond
00076 
00077 template <typename A0 = void, typename A1 = void, typename A2 = void, typename A3 = void, typename A4 = void, typename A5 = void, typename A6 = void, typename A7 = void, typename A8 = void, typename A9 = void, typename A10 = void, typename A11 = void, typename A12 = void, typename A13 = void, typename A14 = void, typename A15 = void, typename A16 = void, typename A17 = void, typename A18 = void, typename A19 = void, typename A20 = void, typename A21 = void, typename A22 = void, typename A23 = void, typename A24 = void, typename A25 = void, typename A26 = void, typename A27 = void, typename A28 = void, typename A29 = void, typename A30 = void, typename A31 = void, typename A32 = void>
00078 struct define_map;
00079 /// @endcond
00080 
00081 template <>
00082 struct define_map<> {
00083     template <typename Packer>
00084     void msgpack_pack(Packer& pk) const
00085     {
00086         pk.pack_map(0);
00087     }
00088     void msgpack_unpack(msgpack::object const& o) const
00089     {
00090         if(o.type != msgpack::type::MAP) { 
00091 //            throw msgpack::type_error(); 
00092         }
00093     }
00094     void msgpack_object(msgpack::object* o, msgpack::zone&) const
00095     {
00096         o->type = msgpack::type::MAP;
00097         o->via.map.ptr = nullptr;
00098         o->via.map.size = 0;
00099     }
00100 };
00101 
00102 /// @cond
00103 
00104 template <typename A0, typename A1>
00105 struct define_map<A0, A1> {
00106     define_map(A0& _a0, A1& _a1) :
00107         a0(_a0), a1(_a1) {}
00108     template <typename Packer>
00109     void msgpack_pack(Packer& pk) const
00110     {
00111         pk.pack_map(1);
00112         
00113         pk.pack(a0);
00114         pk.pack(a1);
00115     }
00116     void msgpack_unpack(msgpack::object const& o) const
00117     {
00118         if(o.type != msgpack::type::MAP) { 
00119             printf("throw msgpack::type_error()");
00120 //            throw msgpack::type_error(); 
00121         }
00122         std::map<std::string, msgpack::object const*> kvmap;
00123         for (uint32_t i = 0; i < o.via.map.size; ++i) {
00124             kvmap.insert(
00125                 std::map<std::string, msgpack::object const*>::value_type(
00126                     std::string(
00127                         o.via.map.ptr[i].key.via.str.ptr,
00128                         o.via.map.ptr[i].key.via.str.size),
00129                     &o.via.map.ptr[i].val
00130                 )
00131             );
00132         }
00133         
00134         {
00135             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
00136             if (it != kvmap.end()) {
00137                 it->second->convert(a1);
00138             }
00139         }
00140         
00141     }
00142     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
00143     {
00144         o->type = msgpack::type::MAP;
00145         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*1));
00146         o->via.map.size = 1;
00147         
00148         o->via.map.ptr[0].key = msgpack::object(a0, z);
00149         o->via.map.ptr[0].val = msgpack::object(a1, z);
00150         
00151     }
00152     
00153     A0& a0;
00154     A1& a1;
00155 };
00156 
00157 template <typename A0, typename A1, typename A2, typename A3>
00158 struct define_map<A0, A1, A2, A3> {
00159     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3) :
00160         a0(_a0), a1(_a1), a2(_a2), a3(_a3) {}
00161     template <typename Packer>
00162     void msgpack_pack(Packer& pk) const
00163     {
00164         pk.pack_map(2);
00165         
00166         pk.pack(a0);
00167         pk.pack(a1);
00168         pk.pack(a2);
00169         pk.pack(a3);
00170     }
00171     void msgpack_unpack(msgpack::object const& o) const
00172     {
00173         if(o.type != msgpack::type::MAP) { 
00174             printf("throw msgpack::type_error()");
00175 //            throw msgpack::type_error(); 
00176         }
00177         std::map<std::string, msgpack::object const*> kvmap;
00178         for (uint32_t i = 0; i < o.via.map.size; ++i) {
00179             kvmap.insert(
00180                 std::map<std::string, msgpack::object const*>::value_type(
00181                     std::string(
00182                         o.via.map.ptr[i].key.via.str.ptr,
00183                         o.via.map.ptr[i].key.via.str.size),
00184                     &o.via.map.ptr[i].val
00185                 )
00186             );
00187         }
00188         
00189         {
00190             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
00191             if (it != kvmap.end()) {
00192                 it->second->convert(a1);
00193             }
00194         }
00195         
00196         {
00197             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
00198             if (it != kvmap.end()) {
00199                 it->second->convert(a3);
00200             }
00201         }
00202         
00203     }
00204     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
00205     {
00206         o->type = msgpack::type::MAP;
00207         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*2));
00208         o->via.map.size = 2;
00209         
00210         o->via.map.ptr[0].key = msgpack::object(a0, z);
00211         o->via.map.ptr[0].val = msgpack::object(a1, z);
00212         
00213         o->via.map.ptr[1].key = msgpack::object(a2, z);
00214         o->via.map.ptr[1].val = msgpack::object(a3, z);
00215         
00216     }
00217     
00218     A0& a0;
00219     A1& a1;
00220     A2& a2;
00221     A3& a3;
00222 };
00223 
00224 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
00225 struct define_map<A0, A1, A2, A3, A4, A5> {
00226     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5) :
00227         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5) {}
00228     template <typename Packer>
00229     void msgpack_pack(Packer& pk) const
00230     {
00231         pk.pack_map(3);
00232         
00233         pk.pack(a0);
00234         pk.pack(a1);
00235         pk.pack(a2);
00236         pk.pack(a3);
00237         pk.pack(a4);
00238         pk.pack(a5);
00239     }
00240     void msgpack_unpack(msgpack::object const& o) const
00241     {
00242         if(o.type != msgpack::type::MAP) { 
00243             printf("throw msgpack::type_error()");
00244 //            throw msgpack::type_error(); 
00245         }
00246         std::map<std::string, msgpack::object const*> kvmap;
00247         for (uint32_t i = 0; i < o.via.map.size; ++i) {
00248             kvmap.insert(
00249                 std::map<std::string, msgpack::object const*>::value_type(
00250                     std::string(
00251                         o.via.map.ptr[i].key.via.str.ptr,
00252                         o.via.map.ptr[i].key.via.str.size),
00253                     &o.via.map.ptr[i].val
00254                 )
00255             );
00256         }
00257         
00258         {
00259             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
00260             if (it != kvmap.end()) {
00261                 it->second->convert(a1);
00262             }
00263         }
00264         
00265         {
00266             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
00267             if (it != kvmap.end()) {
00268                 it->second->convert(a3);
00269             }
00270         }
00271         
00272         {
00273             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
00274             if (it != kvmap.end()) {
00275                 it->second->convert(a5);
00276             }
00277         }
00278         
00279     }
00280     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
00281     {
00282         o->type = msgpack::type::MAP;
00283         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*3));
00284         o->via.map.size = 3;
00285         
00286         o->via.map.ptr[0].key = msgpack::object(a0, z);
00287         o->via.map.ptr[0].val = msgpack::object(a1, z);
00288         
00289         o->via.map.ptr[1].key = msgpack::object(a2, z);
00290         o->via.map.ptr[1].val = msgpack::object(a3, z);
00291         
00292         o->via.map.ptr[2].key = msgpack::object(a4, z);
00293         o->via.map.ptr[2].val = msgpack::object(a5, z);
00294         
00295     }
00296     
00297     A0& a0;
00298     A1& a1;
00299     A2& a2;
00300     A3& a3;
00301     A4& a4;
00302     A5& a5;
00303 };
00304 
00305 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
00306 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7> {
00307     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7) :
00308         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7) {}
00309     template <typename Packer>
00310     void msgpack_pack(Packer& pk) const
00311     {
00312         pk.pack_map(4);
00313         
00314         pk.pack(a0);
00315         pk.pack(a1);
00316         pk.pack(a2);
00317         pk.pack(a3);
00318         pk.pack(a4);
00319         pk.pack(a5);
00320         pk.pack(a6);
00321         pk.pack(a7);
00322     }
00323     void msgpack_unpack(msgpack::object const& o) const
00324     {
00325         if(o.type != msgpack::type::MAP) { 
00326             printf("throw msgpack::type_error()");
00327 //            throw msgpack::type_error(); 
00328         }
00329         std::map<std::string, msgpack::object const*> kvmap;
00330         for (uint32_t i = 0; i < o.via.map.size; ++i) {
00331             kvmap.insert(
00332                 std::map<std::string, msgpack::object const*>::value_type(
00333                     std::string(
00334                         o.via.map.ptr[i].key.via.str.ptr,
00335                         o.via.map.ptr[i].key.via.str.size),
00336                     &o.via.map.ptr[i].val
00337                 )
00338             );
00339         }
00340         
00341         {
00342             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
00343             if (it != kvmap.end()) {
00344                 it->second->convert(a1);
00345             }
00346         }
00347         
00348         {
00349             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
00350             if (it != kvmap.end()) {
00351                 it->second->convert(a3);
00352             }
00353         }
00354         
00355         {
00356             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
00357             if (it != kvmap.end()) {
00358                 it->second->convert(a5);
00359             }
00360         }
00361         
00362         {
00363             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
00364             if (it != kvmap.end()) {
00365                 it->second->convert(a7);
00366             }
00367         }
00368         
00369     }
00370     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
00371     {
00372         o->type = msgpack::type::MAP;
00373         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*4));
00374         o->via.map.size = 4;
00375         
00376         o->via.map.ptr[0].key = msgpack::object(a0, z);
00377         o->via.map.ptr[0].val = msgpack::object(a1, z);
00378         
00379         o->via.map.ptr[1].key = msgpack::object(a2, z);
00380         o->via.map.ptr[1].val = msgpack::object(a3, z);
00381         
00382         o->via.map.ptr[2].key = msgpack::object(a4, z);
00383         o->via.map.ptr[2].val = msgpack::object(a5, z);
00384         
00385         o->via.map.ptr[3].key = msgpack::object(a6, z);
00386         o->via.map.ptr[3].val = msgpack::object(a7, z);
00387         
00388     }
00389     
00390     A0& a0;
00391     A1& a1;
00392     A2& a2;
00393     A3& a3;
00394     A4& a4;
00395     A5& a5;
00396     A6& a6;
00397     A7& a7;
00398 };
00399 
00400 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
00401 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> {
00402     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9) :
00403         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9) {}
00404     template <typename Packer>
00405     void msgpack_pack(Packer& pk) const
00406     {
00407         pk.pack_map(5);
00408         
00409         pk.pack(a0);
00410         pk.pack(a1);
00411         pk.pack(a2);
00412         pk.pack(a3);
00413         pk.pack(a4);
00414         pk.pack(a5);
00415         pk.pack(a6);
00416         pk.pack(a7);
00417         pk.pack(a8);
00418         pk.pack(a9);
00419     }
00420     void msgpack_unpack(msgpack::object const& o) const
00421     {
00422         if(o.type != msgpack::type::MAP) { 
00423             printf("throw msgpack::type_error()");
00424 //            throw msgpack::type_error(); 
00425         }
00426         std::map<std::string, msgpack::object const*> kvmap;
00427         for (uint32_t i = 0; i < o.via.map.size; ++i) {
00428             kvmap.insert(
00429                 std::map<std::string, msgpack::object const*>::value_type(
00430                     std::string(
00431                         o.via.map.ptr[i].key.via.str.ptr,
00432                         o.via.map.ptr[i].key.via.str.size),
00433                     &o.via.map.ptr[i].val
00434                 )
00435             );
00436         }
00437         
00438         {
00439             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
00440             if (it != kvmap.end()) {
00441                 it->second->convert(a1);
00442             }
00443         }
00444         
00445         {
00446             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
00447             if (it != kvmap.end()) {
00448                 it->second->convert(a3);
00449             }
00450         }
00451         
00452         {
00453             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
00454             if (it != kvmap.end()) {
00455                 it->second->convert(a5);
00456             }
00457         }
00458         
00459         {
00460             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
00461             if (it != kvmap.end()) {
00462                 it->second->convert(a7);
00463             }
00464         }
00465         
00466         {
00467             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
00468             if (it != kvmap.end()) {
00469                 it->second->convert(a9);
00470             }
00471         }
00472         
00473     }
00474     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
00475     {
00476         o->type = msgpack::type::MAP;
00477         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*5));
00478         o->via.map.size = 5;
00479         
00480         o->via.map.ptr[0].key = msgpack::object(a0, z);
00481         o->via.map.ptr[0].val = msgpack::object(a1, z);
00482         
00483         o->via.map.ptr[1].key = msgpack::object(a2, z);
00484         o->via.map.ptr[1].val = msgpack::object(a3, z);
00485         
00486         o->via.map.ptr[2].key = msgpack::object(a4, z);
00487         o->via.map.ptr[2].val = msgpack::object(a5, z);
00488         
00489         o->via.map.ptr[3].key = msgpack::object(a6, z);
00490         o->via.map.ptr[3].val = msgpack::object(a7, z);
00491         
00492         o->via.map.ptr[4].key = msgpack::object(a8, z);
00493         o->via.map.ptr[4].val = msgpack::object(a9, z);
00494         
00495     }
00496     
00497     A0& a0;
00498     A1& a1;
00499     A2& a2;
00500     A3& a3;
00501     A4& a4;
00502     A5& a5;
00503     A6& a6;
00504     A7& a7;
00505     A8& a8;
00506     A9& a9;
00507 };
00508 
00509 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
00510 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> {
00511     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11) :
00512         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11) {}
00513     template <typename Packer>
00514     void msgpack_pack(Packer& pk) const
00515     {
00516         pk.pack_map(6);
00517         
00518         pk.pack(a0);
00519         pk.pack(a1);
00520         pk.pack(a2);
00521         pk.pack(a3);
00522         pk.pack(a4);
00523         pk.pack(a5);
00524         pk.pack(a6);
00525         pk.pack(a7);
00526         pk.pack(a8);
00527         pk.pack(a9);
00528         pk.pack(a10);
00529         pk.pack(a11);
00530     }
00531     void msgpack_unpack(msgpack::object const& o) const
00532     {
00533         if(o.type != msgpack::type::MAP) { 
00534             printf("throw msgpack::type_error()");
00535 //            throw msgpack::type_error(); 
00536         }
00537         std::map<std::string, msgpack::object const*> kvmap;
00538         for (uint32_t i = 0; i < o.via.map.size; ++i) {
00539             kvmap.insert(
00540                 std::map<std::string, msgpack::object const*>::value_type(
00541                     std::string(
00542                         o.via.map.ptr[i].key.via.str.ptr,
00543                         o.via.map.ptr[i].key.via.str.size),
00544                     &o.via.map.ptr[i].val
00545                 )
00546             );
00547         }
00548         
00549         {
00550             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
00551             if (it != kvmap.end()) {
00552                 it->second->convert(a1);
00553             }
00554         }
00555         
00556         {
00557             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
00558             if (it != kvmap.end()) {
00559                 it->second->convert(a3);
00560             }
00561         }
00562         
00563         {
00564             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
00565             if (it != kvmap.end()) {
00566                 it->second->convert(a5);
00567             }
00568         }
00569         
00570         {
00571             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
00572             if (it != kvmap.end()) {
00573                 it->second->convert(a7);
00574             }
00575         }
00576         
00577         {
00578             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
00579             if (it != kvmap.end()) {
00580                 it->second->convert(a9);
00581             }
00582         }
00583         
00584         {
00585             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
00586             if (it != kvmap.end()) {
00587                 it->second->convert(a11);
00588             }
00589         }
00590         
00591     }
00592     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
00593     {
00594         o->type = msgpack::type::MAP;
00595         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*6));
00596         o->via.map.size = 6;
00597         
00598         o->via.map.ptr[0].key = msgpack::object(a0, z);
00599         o->via.map.ptr[0].val = msgpack::object(a1, z);
00600         
00601         o->via.map.ptr[1].key = msgpack::object(a2, z);
00602         o->via.map.ptr[1].val = msgpack::object(a3, z);
00603         
00604         o->via.map.ptr[2].key = msgpack::object(a4, z);
00605         o->via.map.ptr[2].val = msgpack::object(a5, z);
00606         
00607         o->via.map.ptr[3].key = msgpack::object(a6, z);
00608         o->via.map.ptr[3].val = msgpack::object(a7, z);
00609         
00610         o->via.map.ptr[4].key = msgpack::object(a8, z);
00611         o->via.map.ptr[4].val = msgpack::object(a9, z);
00612         
00613         o->via.map.ptr[5].key = msgpack::object(a10, z);
00614         o->via.map.ptr[5].val = msgpack::object(a11, z);
00615         
00616     }
00617     
00618     A0& a0;
00619     A1& a1;
00620     A2& a2;
00621     A3& a3;
00622     A4& a4;
00623     A5& a5;
00624     A6& a6;
00625     A7& a7;
00626     A8& a8;
00627     A9& a9;
00628     A10& a10;
00629     A11& a11;
00630 };
00631 
00632 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
00633 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> {
00634     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13) :
00635         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13) {}
00636     template <typename Packer>
00637     void msgpack_pack(Packer& pk) const
00638     {
00639         pk.pack_map(7);
00640         
00641         pk.pack(a0);
00642         pk.pack(a1);
00643         pk.pack(a2);
00644         pk.pack(a3);
00645         pk.pack(a4);
00646         pk.pack(a5);
00647         pk.pack(a6);
00648         pk.pack(a7);
00649         pk.pack(a8);
00650         pk.pack(a9);
00651         pk.pack(a10);
00652         pk.pack(a11);
00653         pk.pack(a12);
00654         pk.pack(a13);
00655     }
00656     void msgpack_unpack(msgpack::object const& o) const
00657     {
00658         if(o.type != msgpack::type::MAP) { 
00659             printf("throw msgpack::type_error()");
00660 //            throw msgpack::type_error(); 
00661         }
00662         std::map<std::string, msgpack::object const*> kvmap;
00663         for (uint32_t i = 0; i < o.via.map.size; ++i) {
00664             kvmap.insert(
00665                 std::map<std::string, msgpack::object const*>::value_type(
00666                     std::string(
00667                         o.via.map.ptr[i].key.via.str.ptr,
00668                         o.via.map.ptr[i].key.via.str.size),
00669                     &o.via.map.ptr[i].val
00670                 )
00671             );
00672         }
00673         
00674         {
00675             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
00676             if (it != kvmap.end()) {
00677                 it->second->convert(a1);
00678             }
00679         }
00680         
00681         {
00682             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
00683             if (it != kvmap.end()) {
00684                 it->second->convert(a3);
00685             }
00686         }
00687         
00688         {
00689             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
00690             if (it != kvmap.end()) {
00691                 it->second->convert(a5);
00692             }
00693         }
00694         
00695         {
00696             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
00697             if (it != kvmap.end()) {
00698                 it->second->convert(a7);
00699             }
00700         }
00701         
00702         {
00703             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
00704             if (it != kvmap.end()) {
00705                 it->second->convert(a9);
00706             }
00707         }
00708         
00709         {
00710             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
00711             if (it != kvmap.end()) {
00712                 it->second->convert(a11);
00713             }
00714         }
00715         
00716         {
00717             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
00718             if (it != kvmap.end()) {
00719                 it->second->convert(a13);
00720             }
00721         }
00722         
00723     }
00724     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
00725     {
00726         o->type = msgpack::type::MAP;
00727         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*7));
00728         o->via.map.size = 7;
00729         
00730         o->via.map.ptr[0].key = msgpack::object(a0, z);
00731         o->via.map.ptr[0].val = msgpack::object(a1, z);
00732         
00733         o->via.map.ptr[1].key = msgpack::object(a2, z);
00734         o->via.map.ptr[1].val = msgpack::object(a3, z);
00735         
00736         o->via.map.ptr[2].key = msgpack::object(a4, z);
00737         o->via.map.ptr[2].val = msgpack::object(a5, z);
00738         
00739         o->via.map.ptr[3].key = msgpack::object(a6, z);
00740         o->via.map.ptr[3].val = msgpack::object(a7, z);
00741         
00742         o->via.map.ptr[4].key = msgpack::object(a8, z);
00743         o->via.map.ptr[4].val = msgpack::object(a9, z);
00744         
00745         o->via.map.ptr[5].key = msgpack::object(a10, z);
00746         o->via.map.ptr[5].val = msgpack::object(a11, z);
00747         
00748         o->via.map.ptr[6].key = msgpack::object(a12, z);
00749         o->via.map.ptr[6].val = msgpack::object(a13, z);
00750         
00751     }
00752     
00753     A0& a0;
00754     A1& a1;
00755     A2& a2;
00756     A3& a3;
00757     A4& a4;
00758     A5& a5;
00759     A6& a6;
00760     A7& a7;
00761     A8& a8;
00762     A9& a9;
00763     A10& a10;
00764     A11& a11;
00765     A12& a12;
00766     A13& a13;
00767 };
00768 
00769 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
00770 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> {
00771     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15) :
00772         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15) {}
00773     template <typename Packer>
00774     void msgpack_pack(Packer& pk) const
00775     {
00776         pk.pack_map(8);
00777         
00778         pk.pack(a0);
00779         pk.pack(a1);
00780         pk.pack(a2);
00781         pk.pack(a3);
00782         pk.pack(a4);
00783         pk.pack(a5);
00784         pk.pack(a6);
00785         pk.pack(a7);
00786         pk.pack(a8);
00787         pk.pack(a9);
00788         pk.pack(a10);
00789         pk.pack(a11);
00790         pk.pack(a12);
00791         pk.pack(a13);
00792         pk.pack(a14);
00793         pk.pack(a15);
00794     }
00795     void msgpack_unpack(msgpack::object const& o) const
00796     {
00797         if(o.type != msgpack::type::MAP) { 
00798             printf("throw msgpack::type_error()");
00799 //            throw msgpack::type_error(); 
00800         }
00801         std::map<std::string, msgpack::object const*> kvmap;
00802         for (uint32_t i = 0; i < o.via.map.size; ++i) {
00803             kvmap.insert(
00804                 std::map<std::string, msgpack::object const*>::value_type(
00805                     std::string(
00806                         o.via.map.ptr[i].key.via.str.ptr,
00807                         o.via.map.ptr[i].key.via.str.size),
00808                     &o.via.map.ptr[i].val
00809                 )
00810             );
00811         }
00812         
00813         {
00814             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
00815             if (it != kvmap.end()) {
00816                 it->second->convert(a1);
00817             }
00818         }
00819         
00820         {
00821             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
00822             if (it != kvmap.end()) {
00823                 it->second->convert(a3);
00824             }
00825         }
00826         
00827         {
00828             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
00829             if (it != kvmap.end()) {
00830                 it->second->convert(a5);
00831             }
00832         }
00833         
00834         {
00835             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
00836             if (it != kvmap.end()) {
00837                 it->second->convert(a7);
00838             }
00839         }
00840         
00841         {
00842             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
00843             if (it != kvmap.end()) {
00844                 it->second->convert(a9);
00845             }
00846         }
00847         
00848         {
00849             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
00850             if (it != kvmap.end()) {
00851                 it->second->convert(a11);
00852             }
00853         }
00854         
00855         {
00856             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
00857             if (it != kvmap.end()) {
00858                 it->second->convert(a13);
00859             }
00860         }
00861         
00862         {
00863             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
00864             if (it != kvmap.end()) {
00865                 it->second->convert(a15);
00866             }
00867         }
00868         
00869     }
00870     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
00871     {
00872         o->type = msgpack::type::MAP;
00873         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*8));
00874         o->via.map.size = 8;
00875         
00876         o->via.map.ptr[0].key = msgpack::object(a0, z);
00877         o->via.map.ptr[0].val = msgpack::object(a1, z);
00878         
00879         o->via.map.ptr[1].key = msgpack::object(a2, z);
00880         o->via.map.ptr[1].val = msgpack::object(a3, z);
00881         
00882         o->via.map.ptr[2].key = msgpack::object(a4, z);
00883         o->via.map.ptr[2].val = msgpack::object(a5, z);
00884         
00885         o->via.map.ptr[3].key = msgpack::object(a6, z);
00886         o->via.map.ptr[3].val = msgpack::object(a7, z);
00887         
00888         o->via.map.ptr[4].key = msgpack::object(a8, z);
00889         o->via.map.ptr[4].val = msgpack::object(a9, z);
00890         
00891         o->via.map.ptr[5].key = msgpack::object(a10, z);
00892         o->via.map.ptr[5].val = msgpack::object(a11, z);
00893         
00894         o->via.map.ptr[6].key = msgpack::object(a12, z);
00895         o->via.map.ptr[6].val = msgpack::object(a13, z);
00896         
00897         o->via.map.ptr[7].key = msgpack::object(a14, z);
00898         o->via.map.ptr[7].val = msgpack::object(a15, z);
00899         
00900     }
00901     
00902     A0& a0;
00903     A1& a1;
00904     A2& a2;
00905     A3& a3;
00906     A4& a4;
00907     A5& a5;
00908     A6& a6;
00909     A7& a7;
00910     A8& a8;
00911     A9& a9;
00912     A10& a10;
00913     A11& a11;
00914     A12& a12;
00915     A13& a13;
00916     A14& a14;
00917     A15& a15;
00918 };
00919 
00920 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
00921 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> {
00922     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17) :
00923         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17) {}
00924     template <typename Packer>
00925     void msgpack_pack(Packer& pk) const
00926     {
00927         pk.pack_map(9);
00928         
00929         pk.pack(a0);
00930         pk.pack(a1);
00931         pk.pack(a2);
00932         pk.pack(a3);
00933         pk.pack(a4);
00934         pk.pack(a5);
00935         pk.pack(a6);
00936         pk.pack(a7);
00937         pk.pack(a8);
00938         pk.pack(a9);
00939         pk.pack(a10);
00940         pk.pack(a11);
00941         pk.pack(a12);
00942         pk.pack(a13);
00943         pk.pack(a14);
00944         pk.pack(a15);
00945         pk.pack(a16);
00946         pk.pack(a17);
00947     }
00948     void msgpack_unpack(msgpack::object const& o) const
00949     {
00950         if(o.type != msgpack::type::MAP) { 
00951             printf("throw msgpack::type_error()");
00952 //            throw msgpack::type_error(); 
00953         }
00954         std::map<std::string, msgpack::object const*> kvmap;
00955         for (uint32_t i = 0; i < o.via.map.size; ++i) {
00956             kvmap.insert(
00957                 std::map<std::string, msgpack::object const*>::value_type(
00958                     std::string(
00959                         o.via.map.ptr[i].key.via.str.ptr,
00960                         o.via.map.ptr[i].key.via.str.size),
00961                     &o.via.map.ptr[i].val
00962                 )
00963             );
00964         }
00965         
00966         {
00967             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
00968             if (it != kvmap.end()) {
00969                 it->second->convert(a1);
00970             }
00971         }
00972         
00973         {
00974             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
00975             if (it != kvmap.end()) {
00976                 it->second->convert(a3);
00977             }
00978         }
00979         
00980         {
00981             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
00982             if (it != kvmap.end()) {
00983                 it->second->convert(a5);
00984             }
00985         }
00986         
00987         {
00988             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
00989             if (it != kvmap.end()) {
00990                 it->second->convert(a7);
00991             }
00992         }
00993         
00994         {
00995             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
00996             if (it != kvmap.end()) {
00997                 it->second->convert(a9);
00998             }
00999         }
01000         
01001         {
01002             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
01003             if (it != kvmap.end()) {
01004                 it->second->convert(a11);
01005             }
01006         }
01007         
01008         {
01009             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
01010             if (it != kvmap.end()) {
01011                 it->second->convert(a13);
01012             }
01013         }
01014         
01015         {
01016             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
01017             if (it != kvmap.end()) {
01018                 it->second->convert(a15);
01019             }
01020         }
01021         
01022         {
01023             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
01024             if (it != kvmap.end()) {
01025                 it->second->convert(a17);
01026             }
01027         }
01028         
01029     }
01030     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
01031     {
01032         o->type = msgpack::type::MAP;
01033         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*9));
01034         o->via.map.size = 9;
01035         
01036         o->via.map.ptr[0].key = msgpack::object(a0, z);
01037         o->via.map.ptr[0].val = msgpack::object(a1, z);
01038         
01039         o->via.map.ptr[1].key = msgpack::object(a2, z);
01040         o->via.map.ptr[1].val = msgpack::object(a3, z);
01041         
01042         o->via.map.ptr[2].key = msgpack::object(a4, z);
01043         o->via.map.ptr[2].val = msgpack::object(a5, z);
01044         
01045         o->via.map.ptr[3].key = msgpack::object(a6, z);
01046         o->via.map.ptr[3].val = msgpack::object(a7, z);
01047         
01048         o->via.map.ptr[4].key = msgpack::object(a8, z);
01049         o->via.map.ptr[4].val = msgpack::object(a9, z);
01050         
01051         o->via.map.ptr[5].key = msgpack::object(a10, z);
01052         o->via.map.ptr[5].val = msgpack::object(a11, z);
01053         
01054         o->via.map.ptr[6].key = msgpack::object(a12, z);
01055         o->via.map.ptr[6].val = msgpack::object(a13, z);
01056         
01057         o->via.map.ptr[7].key = msgpack::object(a14, z);
01058         o->via.map.ptr[7].val = msgpack::object(a15, z);
01059         
01060         o->via.map.ptr[8].key = msgpack::object(a16, z);
01061         o->via.map.ptr[8].val = msgpack::object(a17, z);
01062         
01063     }
01064     
01065     A0& a0;
01066     A1& a1;
01067     A2& a2;
01068     A3& a3;
01069     A4& a4;
01070     A5& a5;
01071     A6& a6;
01072     A7& a7;
01073     A8& a8;
01074     A9& a9;
01075     A10& a10;
01076     A11& a11;
01077     A12& a12;
01078     A13& a13;
01079     A14& a14;
01080     A15& a15;
01081     A16& a16;
01082     A17& a17;
01083 };
01084 
01085 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
01086 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> {
01087     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19) :
01088         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19) {}
01089     template <typename Packer>
01090     void msgpack_pack(Packer& pk) const
01091     {
01092         pk.pack_map(10);
01093         
01094         pk.pack(a0);
01095         pk.pack(a1);
01096         pk.pack(a2);
01097         pk.pack(a3);
01098         pk.pack(a4);
01099         pk.pack(a5);
01100         pk.pack(a6);
01101         pk.pack(a7);
01102         pk.pack(a8);
01103         pk.pack(a9);
01104         pk.pack(a10);
01105         pk.pack(a11);
01106         pk.pack(a12);
01107         pk.pack(a13);
01108         pk.pack(a14);
01109         pk.pack(a15);
01110         pk.pack(a16);
01111         pk.pack(a17);
01112         pk.pack(a18);
01113         pk.pack(a19);
01114     }
01115     void msgpack_unpack(msgpack::object const& o) const
01116     {
01117         if(o.type != msgpack::type::MAP) { 
01118             printf("throw msgpack::type_error()");
01119 //            throw msgpack::type_error(); 
01120         }
01121         std::map<std::string, msgpack::object const*> kvmap;
01122         for (uint32_t i = 0; i < o.via.map.size; ++i) {
01123             kvmap.insert(
01124                 std::map<std::string, msgpack::object const*>::value_type(
01125                     std::string(
01126                         o.via.map.ptr[i].key.via.str.ptr,
01127                         o.via.map.ptr[i].key.via.str.size),
01128                     &o.via.map.ptr[i].val
01129                 )
01130             );
01131         }
01132         
01133         {
01134             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
01135             if (it != kvmap.end()) {
01136                 it->second->convert(a1);
01137             }
01138         }
01139         
01140         {
01141             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
01142             if (it != kvmap.end()) {
01143                 it->second->convert(a3);
01144             }
01145         }
01146         
01147         {
01148             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
01149             if (it != kvmap.end()) {
01150                 it->second->convert(a5);
01151             }
01152         }
01153         
01154         {
01155             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
01156             if (it != kvmap.end()) {
01157                 it->second->convert(a7);
01158             }
01159         }
01160         
01161         {
01162             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
01163             if (it != kvmap.end()) {
01164                 it->second->convert(a9);
01165             }
01166         }
01167         
01168         {
01169             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
01170             if (it != kvmap.end()) {
01171                 it->second->convert(a11);
01172             }
01173         }
01174         
01175         {
01176             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
01177             if (it != kvmap.end()) {
01178                 it->second->convert(a13);
01179             }
01180         }
01181         
01182         {
01183             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
01184             if (it != kvmap.end()) {
01185                 it->second->convert(a15);
01186             }
01187         }
01188         
01189         {
01190             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
01191             if (it != kvmap.end()) {
01192                 it->second->convert(a17);
01193             }
01194         }
01195         
01196         {
01197             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
01198             if (it != kvmap.end()) {
01199                 it->second->convert(a19);
01200             }
01201         }
01202         
01203     }
01204     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
01205     {
01206         o->type = msgpack::type::MAP;
01207         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*10));
01208         o->via.map.size = 10;
01209         
01210         o->via.map.ptr[0].key = msgpack::object(a0, z);
01211         o->via.map.ptr[0].val = msgpack::object(a1, z);
01212         
01213         o->via.map.ptr[1].key = msgpack::object(a2, z);
01214         o->via.map.ptr[1].val = msgpack::object(a3, z);
01215         
01216         o->via.map.ptr[2].key = msgpack::object(a4, z);
01217         o->via.map.ptr[2].val = msgpack::object(a5, z);
01218         
01219         o->via.map.ptr[3].key = msgpack::object(a6, z);
01220         o->via.map.ptr[3].val = msgpack::object(a7, z);
01221         
01222         o->via.map.ptr[4].key = msgpack::object(a8, z);
01223         o->via.map.ptr[4].val = msgpack::object(a9, z);
01224         
01225         o->via.map.ptr[5].key = msgpack::object(a10, z);
01226         o->via.map.ptr[5].val = msgpack::object(a11, z);
01227         
01228         o->via.map.ptr[6].key = msgpack::object(a12, z);
01229         o->via.map.ptr[6].val = msgpack::object(a13, z);
01230         
01231         o->via.map.ptr[7].key = msgpack::object(a14, z);
01232         o->via.map.ptr[7].val = msgpack::object(a15, z);
01233         
01234         o->via.map.ptr[8].key = msgpack::object(a16, z);
01235         o->via.map.ptr[8].val = msgpack::object(a17, z);
01236         
01237         o->via.map.ptr[9].key = msgpack::object(a18, z);
01238         o->via.map.ptr[9].val = msgpack::object(a19, z);
01239         
01240     }
01241     
01242     A0& a0;
01243     A1& a1;
01244     A2& a2;
01245     A3& a3;
01246     A4& a4;
01247     A5& a5;
01248     A6& a6;
01249     A7& a7;
01250     A8& a8;
01251     A9& a9;
01252     A10& a10;
01253     A11& a11;
01254     A12& a12;
01255     A13& a13;
01256     A14& a14;
01257     A15& a15;
01258     A16& a16;
01259     A17& a17;
01260     A18& a18;
01261     A19& a19;
01262 };
01263 
01264 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
01265 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> {
01266     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21) :
01267         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21) {}
01268     template <typename Packer>
01269     void msgpack_pack(Packer& pk) const
01270     {
01271         pk.pack_map(11);
01272         
01273         pk.pack(a0);
01274         pk.pack(a1);
01275         pk.pack(a2);
01276         pk.pack(a3);
01277         pk.pack(a4);
01278         pk.pack(a5);
01279         pk.pack(a6);
01280         pk.pack(a7);
01281         pk.pack(a8);
01282         pk.pack(a9);
01283         pk.pack(a10);
01284         pk.pack(a11);
01285         pk.pack(a12);
01286         pk.pack(a13);
01287         pk.pack(a14);
01288         pk.pack(a15);
01289         pk.pack(a16);
01290         pk.pack(a17);
01291         pk.pack(a18);
01292         pk.pack(a19);
01293         pk.pack(a20);
01294         pk.pack(a21);
01295     }
01296     void msgpack_unpack(msgpack::object const& o) const
01297     {
01298         if(o.type != msgpack::type::MAP) { 
01299             printf("throw msgpack::type_error()");
01300 //            throw msgpack::type_error(); 
01301         }
01302         std::map<std::string, msgpack::object const*> kvmap;
01303         for (uint32_t i = 0; i < o.via.map.size; ++i) {
01304             kvmap.insert(
01305                 std::map<std::string, msgpack::object const*>::value_type(
01306                     std::string(
01307                         o.via.map.ptr[i].key.via.str.ptr,
01308                         o.via.map.ptr[i].key.via.str.size),
01309                     &o.via.map.ptr[i].val
01310                 )
01311             );
01312         }
01313         
01314         {
01315             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
01316             if (it != kvmap.end()) {
01317                 it->second->convert(a1);
01318             }
01319         }
01320         
01321         {
01322             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
01323             if (it != kvmap.end()) {
01324                 it->second->convert(a3);
01325             }
01326         }
01327         
01328         {
01329             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
01330             if (it != kvmap.end()) {
01331                 it->second->convert(a5);
01332             }
01333         }
01334         
01335         {
01336             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
01337             if (it != kvmap.end()) {
01338                 it->second->convert(a7);
01339             }
01340         }
01341         
01342         {
01343             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
01344             if (it != kvmap.end()) {
01345                 it->second->convert(a9);
01346             }
01347         }
01348         
01349         {
01350             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
01351             if (it != kvmap.end()) {
01352                 it->second->convert(a11);
01353             }
01354         }
01355         
01356         {
01357             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
01358             if (it != kvmap.end()) {
01359                 it->second->convert(a13);
01360             }
01361         }
01362         
01363         {
01364             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
01365             if (it != kvmap.end()) {
01366                 it->second->convert(a15);
01367             }
01368         }
01369         
01370         {
01371             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
01372             if (it != kvmap.end()) {
01373                 it->second->convert(a17);
01374             }
01375         }
01376         
01377         {
01378             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
01379             if (it != kvmap.end()) {
01380                 it->second->convert(a19);
01381             }
01382         }
01383         
01384         {
01385             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
01386             if (it != kvmap.end()) {
01387                 it->second->convert(a21);
01388             }
01389         }
01390         
01391     }
01392     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
01393     {
01394         o->type = msgpack::type::MAP;
01395         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*11));
01396         o->via.map.size = 11;
01397         
01398         o->via.map.ptr[0].key = msgpack::object(a0, z);
01399         o->via.map.ptr[0].val = msgpack::object(a1, z);
01400         
01401         o->via.map.ptr[1].key = msgpack::object(a2, z);
01402         o->via.map.ptr[1].val = msgpack::object(a3, z);
01403         
01404         o->via.map.ptr[2].key = msgpack::object(a4, z);
01405         o->via.map.ptr[2].val = msgpack::object(a5, z);
01406         
01407         o->via.map.ptr[3].key = msgpack::object(a6, z);
01408         o->via.map.ptr[3].val = msgpack::object(a7, z);
01409         
01410         o->via.map.ptr[4].key = msgpack::object(a8, z);
01411         o->via.map.ptr[4].val = msgpack::object(a9, z);
01412         
01413         o->via.map.ptr[5].key = msgpack::object(a10, z);
01414         o->via.map.ptr[5].val = msgpack::object(a11, z);
01415         
01416         o->via.map.ptr[6].key = msgpack::object(a12, z);
01417         o->via.map.ptr[6].val = msgpack::object(a13, z);
01418         
01419         o->via.map.ptr[7].key = msgpack::object(a14, z);
01420         o->via.map.ptr[7].val = msgpack::object(a15, z);
01421         
01422         o->via.map.ptr[8].key = msgpack::object(a16, z);
01423         o->via.map.ptr[8].val = msgpack::object(a17, z);
01424         
01425         o->via.map.ptr[9].key = msgpack::object(a18, z);
01426         o->via.map.ptr[9].val = msgpack::object(a19, z);
01427         
01428         o->via.map.ptr[10].key = msgpack::object(a20, z);
01429         o->via.map.ptr[10].val = msgpack::object(a21, z);
01430         
01431     }
01432     
01433     A0& a0;
01434     A1& a1;
01435     A2& a2;
01436     A3& a3;
01437     A4& a4;
01438     A5& a5;
01439     A6& a6;
01440     A7& a7;
01441     A8& a8;
01442     A9& a9;
01443     A10& a10;
01444     A11& a11;
01445     A12& a12;
01446     A13& a13;
01447     A14& a14;
01448     A15& a15;
01449     A16& a16;
01450     A17& a17;
01451     A18& a18;
01452     A19& a19;
01453     A20& a20;
01454     A21& a21;
01455 };
01456 
01457 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
01458 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> {
01459     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23) :
01460         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23) {}
01461     template <typename Packer>
01462     void msgpack_pack(Packer& pk) const
01463     {
01464         pk.pack_map(12);
01465         
01466         pk.pack(a0);
01467         pk.pack(a1);
01468         pk.pack(a2);
01469         pk.pack(a3);
01470         pk.pack(a4);
01471         pk.pack(a5);
01472         pk.pack(a6);
01473         pk.pack(a7);
01474         pk.pack(a8);
01475         pk.pack(a9);
01476         pk.pack(a10);
01477         pk.pack(a11);
01478         pk.pack(a12);
01479         pk.pack(a13);
01480         pk.pack(a14);
01481         pk.pack(a15);
01482         pk.pack(a16);
01483         pk.pack(a17);
01484         pk.pack(a18);
01485         pk.pack(a19);
01486         pk.pack(a20);
01487         pk.pack(a21);
01488         pk.pack(a22);
01489         pk.pack(a23);
01490     }
01491     void msgpack_unpack(msgpack::object const& o) const
01492     {
01493         if(o.type != msgpack::type::MAP) { 
01494             printf("throw msgpack::type_error()");
01495 //            throw msgpack::type_error(); 
01496         }
01497         std::map<std::string, msgpack::object const*> kvmap;
01498         for (uint32_t i = 0; i < o.via.map.size; ++i) {
01499             kvmap.insert(
01500                 std::map<std::string, msgpack::object const*>::value_type(
01501                     std::string(
01502                         o.via.map.ptr[i].key.via.str.ptr,
01503                         o.via.map.ptr[i].key.via.str.size),
01504                     &o.via.map.ptr[i].val
01505                 )
01506             );
01507         }
01508         
01509         {
01510             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
01511             if (it != kvmap.end()) {
01512                 it->second->convert(a1);
01513             }
01514         }
01515         
01516         {
01517             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
01518             if (it != kvmap.end()) {
01519                 it->second->convert(a3);
01520             }
01521         }
01522         
01523         {
01524             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
01525             if (it != kvmap.end()) {
01526                 it->second->convert(a5);
01527             }
01528         }
01529         
01530         {
01531             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
01532             if (it != kvmap.end()) {
01533                 it->second->convert(a7);
01534             }
01535         }
01536         
01537         {
01538             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
01539             if (it != kvmap.end()) {
01540                 it->second->convert(a9);
01541             }
01542         }
01543         
01544         {
01545             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
01546             if (it != kvmap.end()) {
01547                 it->second->convert(a11);
01548             }
01549         }
01550         
01551         {
01552             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
01553             if (it != kvmap.end()) {
01554                 it->second->convert(a13);
01555             }
01556         }
01557         
01558         {
01559             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
01560             if (it != kvmap.end()) {
01561                 it->second->convert(a15);
01562             }
01563         }
01564         
01565         {
01566             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
01567             if (it != kvmap.end()) {
01568                 it->second->convert(a17);
01569             }
01570         }
01571         
01572         {
01573             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
01574             if (it != kvmap.end()) {
01575                 it->second->convert(a19);
01576             }
01577         }
01578         
01579         {
01580             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
01581             if (it != kvmap.end()) {
01582                 it->second->convert(a21);
01583             }
01584         }
01585         
01586         {
01587             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
01588             if (it != kvmap.end()) {
01589                 it->second->convert(a23);
01590             }
01591         }
01592         
01593     }
01594     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
01595     {
01596         o->type = msgpack::type::MAP;
01597         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*12));
01598         o->via.map.size = 12;
01599         
01600         o->via.map.ptr[0].key = msgpack::object(a0, z);
01601         o->via.map.ptr[0].val = msgpack::object(a1, z);
01602         
01603         o->via.map.ptr[1].key = msgpack::object(a2, z);
01604         o->via.map.ptr[1].val = msgpack::object(a3, z);
01605         
01606         o->via.map.ptr[2].key = msgpack::object(a4, z);
01607         o->via.map.ptr[2].val = msgpack::object(a5, z);
01608         
01609         o->via.map.ptr[3].key = msgpack::object(a6, z);
01610         o->via.map.ptr[3].val = msgpack::object(a7, z);
01611         
01612         o->via.map.ptr[4].key = msgpack::object(a8, z);
01613         o->via.map.ptr[4].val = msgpack::object(a9, z);
01614         
01615         o->via.map.ptr[5].key = msgpack::object(a10, z);
01616         o->via.map.ptr[5].val = msgpack::object(a11, z);
01617         
01618         o->via.map.ptr[6].key = msgpack::object(a12, z);
01619         o->via.map.ptr[6].val = msgpack::object(a13, z);
01620         
01621         o->via.map.ptr[7].key = msgpack::object(a14, z);
01622         o->via.map.ptr[7].val = msgpack::object(a15, z);
01623         
01624         o->via.map.ptr[8].key = msgpack::object(a16, z);
01625         o->via.map.ptr[8].val = msgpack::object(a17, z);
01626         
01627         o->via.map.ptr[9].key = msgpack::object(a18, z);
01628         o->via.map.ptr[9].val = msgpack::object(a19, z);
01629         
01630         o->via.map.ptr[10].key = msgpack::object(a20, z);
01631         o->via.map.ptr[10].val = msgpack::object(a21, z);
01632         
01633         o->via.map.ptr[11].key = msgpack::object(a22, z);
01634         o->via.map.ptr[11].val = msgpack::object(a23, z);
01635         
01636     }
01637     
01638     A0& a0;
01639     A1& a1;
01640     A2& a2;
01641     A3& a3;
01642     A4& a4;
01643     A5& a5;
01644     A6& a6;
01645     A7& a7;
01646     A8& a8;
01647     A9& a9;
01648     A10& a10;
01649     A11& a11;
01650     A12& a12;
01651     A13& a13;
01652     A14& a14;
01653     A15& a15;
01654     A16& a16;
01655     A17& a17;
01656     A18& a18;
01657     A19& a19;
01658     A20& a20;
01659     A21& a21;
01660     A22& a22;
01661     A23& a23;
01662 };
01663 
01664 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
01665 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> {
01666     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25) :
01667         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25) {}
01668     template <typename Packer>
01669     void msgpack_pack(Packer& pk) const
01670     {
01671         pk.pack_map(13);
01672         
01673         pk.pack(a0);
01674         pk.pack(a1);
01675         pk.pack(a2);
01676         pk.pack(a3);
01677         pk.pack(a4);
01678         pk.pack(a5);
01679         pk.pack(a6);
01680         pk.pack(a7);
01681         pk.pack(a8);
01682         pk.pack(a9);
01683         pk.pack(a10);
01684         pk.pack(a11);
01685         pk.pack(a12);
01686         pk.pack(a13);
01687         pk.pack(a14);
01688         pk.pack(a15);
01689         pk.pack(a16);
01690         pk.pack(a17);
01691         pk.pack(a18);
01692         pk.pack(a19);
01693         pk.pack(a20);
01694         pk.pack(a21);
01695         pk.pack(a22);
01696         pk.pack(a23);
01697         pk.pack(a24);
01698         pk.pack(a25);
01699     }
01700     void msgpack_unpack(msgpack::object const& o) const
01701     {
01702         if(o.type != msgpack::type::MAP) { 
01703             printf("throw msgpack::type_error()");
01704 //            throw msgpack::type_error(); 
01705         }
01706         std::map<std::string, msgpack::object const*> kvmap;
01707         for (uint32_t i = 0; i < o.via.map.size; ++i) {
01708             kvmap.insert(
01709                 std::map<std::string, msgpack::object const*>::value_type(
01710                     std::string(
01711                         o.via.map.ptr[i].key.via.str.ptr,
01712                         o.via.map.ptr[i].key.via.str.size),
01713                     &o.via.map.ptr[i].val
01714                 )
01715             );
01716         }
01717         
01718         {
01719             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
01720             if (it != kvmap.end()) {
01721                 it->second->convert(a1);
01722             }
01723         }
01724         
01725         {
01726             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
01727             if (it != kvmap.end()) {
01728                 it->second->convert(a3);
01729             }
01730         }
01731         
01732         {
01733             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
01734             if (it != kvmap.end()) {
01735                 it->second->convert(a5);
01736             }
01737         }
01738         
01739         {
01740             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
01741             if (it != kvmap.end()) {
01742                 it->second->convert(a7);
01743             }
01744         }
01745         
01746         {
01747             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
01748             if (it != kvmap.end()) {
01749                 it->second->convert(a9);
01750             }
01751         }
01752         
01753         {
01754             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
01755             if (it != kvmap.end()) {
01756                 it->second->convert(a11);
01757             }
01758         }
01759         
01760         {
01761             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
01762             if (it != kvmap.end()) {
01763                 it->second->convert(a13);
01764             }
01765         }
01766         
01767         {
01768             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
01769             if (it != kvmap.end()) {
01770                 it->second->convert(a15);
01771             }
01772         }
01773         
01774         {
01775             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
01776             if (it != kvmap.end()) {
01777                 it->second->convert(a17);
01778             }
01779         }
01780         
01781         {
01782             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
01783             if (it != kvmap.end()) {
01784                 it->second->convert(a19);
01785             }
01786         }
01787         
01788         {
01789             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
01790             if (it != kvmap.end()) {
01791                 it->second->convert(a21);
01792             }
01793         }
01794         
01795         {
01796             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
01797             if (it != kvmap.end()) {
01798                 it->second->convert(a23);
01799             }
01800         }
01801         
01802         {
01803             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a24);
01804             if (it != kvmap.end()) {
01805                 it->second->convert(a25);
01806             }
01807         }
01808         
01809     }
01810     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
01811     {
01812         o->type = msgpack::type::MAP;
01813         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*13));
01814         o->via.map.size = 13;
01815         
01816         o->via.map.ptr[0].key = msgpack::object(a0, z);
01817         o->via.map.ptr[0].val = msgpack::object(a1, z);
01818         
01819         o->via.map.ptr[1].key = msgpack::object(a2, z);
01820         o->via.map.ptr[1].val = msgpack::object(a3, z);
01821         
01822         o->via.map.ptr[2].key = msgpack::object(a4, z);
01823         o->via.map.ptr[2].val = msgpack::object(a5, z);
01824         
01825         o->via.map.ptr[3].key = msgpack::object(a6, z);
01826         o->via.map.ptr[3].val = msgpack::object(a7, z);
01827         
01828         o->via.map.ptr[4].key = msgpack::object(a8, z);
01829         o->via.map.ptr[4].val = msgpack::object(a9, z);
01830         
01831         o->via.map.ptr[5].key = msgpack::object(a10, z);
01832         o->via.map.ptr[5].val = msgpack::object(a11, z);
01833         
01834         o->via.map.ptr[6].key = msgpack::object(a12, z);
01835         o->via.map.ptr[6].val = msgpack::object(a13, z);
01836         
01837         o->via.map.ptr[7].key = msgpack::object(a14, z);
01838         o->via.map.ptr[7].val = msgpack::object(a15, z);
01839         
01840         o->via.map.ptr[8].key = msgpack::object(a16, z);
01841         o->via.map.ptr[8].val = msgpack::object(a17, z);
01842         
01843         o->via.map.ptr[9].key = msgpack::object(a18, z);
01844         o->via.map.ptr[9].val = msgpack::object(a19, z);
01845         
01846         o->via.map.ptr[10].key = msgpack::object(a20, z);
01847         o->via.map.ptr[10].val = msgpack::object(a21, z);
01848         
01849         o->via.map.ptr[11].key = msgpack::object(a22, z);
01850         o->via.map.ptr[11].val = msgpack::object(a23, z);
01851         
01852         o->via.map.ptr[12].key = msgpack::object(a24, z);
01853         o->via.map.ptr[12].val = msgpack::object(a25, z);
01854         
01855     }
01856     
01857     A0& a0;
01858     A1& a1;
01859     A2& a2;
01860     A3& a3;
01861     A4& a4;
01862     A5& a5;
01863     A6& a6;
01864     A7& a7;
01865     A8& a8;
01866     A9& a9;
01867     A10& a10;
01868     A11& a11;
01869     A12& a12;
01870     A13& a13;
01871     A14& a14;
01872     A15& a15;
01873     A16& a16;
01874     A17& a17;
01875     A18& a18;
01876     A19& a19;
01877     A20& a20;
01878     A21& a21;
01879     A22& a22;
01880     A23& a23;
01881     A24& a24;
01882     A25& a25;
01883 };
01884 
01885 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
01886 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> {
01887     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27) :
01888         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27) {}
01889     template <typename Packer>
01890     void msgpack_pack(Packer& pk) const
01891     {
01892         pk.pack_map(14);
01893         
01894         pk.pack(a0);
01895         pk.pack(a1);
01896         pk.pack(a2);
01897         pk.pack(a3);
01898         pk.pack(a4);
01899         pk.pack(a5);
01900         pk.pack(a6);
01901         pk.pack(a7);
01902         pk.pack(a8);
01903         pk.pack(a9);
01904         pk.pack(a10);
01905         pk.pack(a11);
01906         pk.pack(a12);
01907         pk.pack(a13);
01908         pk.pack(a14);
01909         pk.pack(a15);
01910         pk.pack(a16);
01911         pk.pack(a17);
01912         pk.pack(a18);
01913         pk.pack(a19);
01914         pk.pack(a20);
01915         pk.pack(a21);
01916         pk.pack(a22);
01917         pk.pack(a23);
01918         pk.pack(a24);
01919         pk.pack(a25);
01920         pk.pack(a26);
01921         pk.pack(a27);
01922     }
01923     void msgpack_unpack(msgpack::object const& o) const
01924     {
01925         if(o.type != msgpack::type::MAP) { 
01926             printf("throw msgpack::type_error()");
01927 //            throw msgpack::type_error(); 
01928         }
01929         std::map<std::string, msgpack::object const*> kvmap;
01930         for (uint32_t i = 0; i < o.via.map.size; ++i) {
01931             kvmap.insert(
01932                 std::map<std::string, msgpack::object const*>::value_type(
01933                     std::string(
01934                         o.via.map.ptr[i].key.via.str.ptr,
01935                         o.via.map.ptr[i].key.via.str.size),
01936                     &o.via.map.ptr[i].val
01937                 )
01938             );
01939         }
01940         
01941         {
01942             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
01943             if (it != kvmap.end()) {
01944                 it->second->convert(a1);
01945             }
01946         }
01947         
01948         {
01949             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
01950             if (it != kvmap.end()) {
01951                 it->second->convert(a3);
01952             }
01953         }
01954         
01955         {
01956             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
01957             if (it != kvmap.end()) {
01958                 it->second->convert(a5);
01959             }
01960         }
01961         
01962         {
01963             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
01964             if (it != kvmap.end()) {
01965                 it->second->convert(a7);
01966             }
01967         }
01968         
01969         {
01970             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
01971             if (it != kvmap.end()) {
01972                 it->second->convert(a9);
01973             }
01974         }
01975         
01976         {
01977             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
01978             if (it != kvmap.end()) {
01979                 it->second->convert(a11);
01980             }
01981         }
01982         
01983         {
01984             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
01985             if (it != kvmap.end()) {
01986                 it->second->convert(a13);
01987             }
01988         }
01989         
01990         {
01991             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
01992             if (it != kvmap.end()) {
01993                 it->second->convert(a15);
01994             }
01995         }
01996         
01997         {
01998             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
01999             if (it != kvmap.end()) {
02000                 it->second->convert(a17);
02001             }
02002         }
02003         
02004         {
02005             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
02006             if (it != kvmap.end()) {
02007                 it->second->convert(a19);
02008             }
02009         }
02010         
02011         {
02012             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
02013             if (it != kvmap.end()) {
02014                 it->second->convert(a21);
02015             }
02016         }
02017         
02018         {
02019             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
02020             if (it != kvmap.end()) {
02021                 it->second->convert(a23);
02022             }
02023         }
02024         
02025         {
02026             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a24);
02027             if (it != kvmap.end()) {
02028                 it->second->convert(a25);
02029             }
02030         }
02031         
02032         {
02033             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a26);
02034             if (it != kvmap.end()) {
02035                 it->second->convert(a27);
02036             }
02037         }
02038         
02039     }
02040     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
02041     {
02042         o->type = msgpack::type::MAP;
02043         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*14));
02044         o->via.map.size = 14;
02045         
02046         o->via.map.ptr[0].key = msgpack::object(a0, z);
02047         o->via.map.ptr[0].val = msgpack::object(a1, z);
02048         
02049         o->via.map.ptr[1].key = msgpack::object(a2, z);
02050         o->via.map.ptr[1].val = msgpack::object(a3, z);
02051         
02052         o->via.map.ptr[2].key = msgpack::object(a4, z);
02053         o->via.map.ptr[2].val = msgpack::object(a5, z);
02054         
02055         o->via.map.ptr[3].key = msgpack::object(a6, z);
02056         o->via.map.ptr[3].val = msgpack::object(a7, z);
02057         
02058         o->via.map.ptr[4].key = msgpack::object(a8, z);
02059         o->via.map.ptr[4].val = msgpack::object(a9, z);
02060         
02061         o->via.map.ptr[5].key = msgpack::object(a10, z);
02062         o->via.map.ptr[5].val = msgpack::object(a11, z);
02063         
02064         o->via.map.ptr[6].key = msgpack::object(a12, z);
02065         o->via.map.ptr[6].val = msgpack::object(a13, z);
02066         
02067         o->via.map.ptr[7].key = msgpack::object(a14, z);
02068         o->via.map.ptr[7].val = msgpack::object(a15, z);
02069         
02070         o->via.map.ptr[8].key = msgpack::object(a16, z);
02071         o->via.map.ptr[8].val = msgpack::object(a17, z);
02072         
02073         o->via.map.ptr[9].key = msgpack::object(a18, z);
02074         o->via.map.ptr[9].val = msgpack::object(a19, z);
02075         
02076         o->via.map.ptr[10].key = msgpack::object(a20, z);
02077         o->via.map.ptr[10].val = msgpack::object(a21, z);
02078         
02079         o->via.map.ptr[11].key = msgpack::object(a22, z);
02080         o->via.map.ptr[11].val = msgpack::object(a23, z);
02081         
02082         o->via.map.ptr[12].key = msgpack::object(a24, z);
02083         o->via.map.ptr[12].val = msgpack::object(a25, z);
02084         
02085         o->via.map.ptr[13].key = msgpack::object(a26, z);
02086         o->via.map.ptr[13].val = msgpack::object(a27, z);
02087         
02088     }
02089     
02090     A0& a0;
02091     A1& a1;
02092     A2& a2;
02093     A3& a3;
02094     A4& a4;
02095     A5& a5;
02096     A6& a6;
02097     A7& a7;
02098     A8& a8;
02099     A9& a9;
02100     A10& a10;
02101     A11& a11;
02102     A12& a12;
02103     A13& a13;
02104     A14& a14;
02105     A15& a15;
02106     A16& a16;
02107     A17& a17;
02108     A18& a18;
02109     A19& a19;
02110     A20& a20;
02111     A21& a21;
02112     A22& a22;
02113     A23& a23;
02114     A24& a24;
02115     A25& a25;
02116     A26& a26;
02117     A27& a27;
02118 };
02119 
02120 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
02121 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> {
02122     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29) :
02123         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29) {}
02124     template <typename Packer>
02125     void msgpack_pack(Packer& pk) const
02126     {
02127         pk.pack_map(15);
02128         
02129         pk.pack(a0);
02130         pk.pack(a1);
02131         pk.pack(a2);
02132         pk.pack(a3);
02133         pk.pack(a4);
02134         pk.pack(a5);
02135         pk.pack(a6);
02136         pk.pack(a7);
02137         pk.pack(a8);
02138         pk.pack(a9);
02139         pk.pack(a10);
02140         pk.pack(a11);
02141         pk.pack(a12);
02142         pk.pack(a13);
02143         pk.pack(a14);
02144         pk.pack(a15);
02145         pk.pack(a16);
02146         pk.pack(a17);
02147         pk.pack(a18);
02148         pk.pack(a19);
02149         pk.pack(a20);
02150         pk.pack(a21);
02151         pk.pack(a22);
02152         pk.pack(a23);
02153         pk.pack(a24);
02154         pk.pack(a25);
02155         pk.pack(a26);
02156         pk.pack(a27);
02157         pk.pack(a28);
02158         pk.pack(a29);
02159     }
02160     void msgpack_unpack(msgpack::object const& o) const
02161     {
02162         if(o.type != msgpack::type::MAP) { 
02163             printf("throw msgpack::type_error()");
02164 //            throw msgpack::type_error(); 
02165         }
02166         std::map<std::string, msgpack::object const*> kvmap;
02167         for (uint32_t i = 0; i < o.via.map.size; ++i) {
02168             kvmap.insert(
02169                 std::map<std::string, msgpack::object const*>::value_type(
02170                     std::string(
02171                         o.via.map.ptr[i].key.via.str.ptr,
02172                         o.via.map.ptr[i].key.via.str.size),
02173                     &o.via.map.ptr[i].val
02174                 )
02175             );
02176         }
02177         
02178         {
02179             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
02180             if (it != kvmap.end()) {
02181                 it->second->convert(a1);
02182             }
02183         }
02184         
02185         {
02186             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
02187             if (it != kvmap.end()) {
02188                 it->second->convert(a3);
02189             }
02190         }
02191         
02192         {
02193             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
02194             if (it != kvmap.end()) {
02195                 it->second->convert(a5);
02196             }
02197         }
02198         
02199         {
02200             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
02201             if (it != kvmap.end()) {
02202                 it->second->convert(a7);
02203             }
02204         }
02205         
02206         {
02207             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
02208             if (it != kvmap.end()) {
02209                 it->second->convert(a9);
02210             }
02211         }
02212         
02213         {
02214             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
02215             if (it != kvmap.end()) {
02216                 it->second->convert(a11);
02217             }
02218         }
02219         
02220         {
02221             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
02222             if (it != kvmap.end()) {
02223                 it->second->convert(a13);
02224             }
02225         }
02226         
02227         {
02228             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
02229             if (it != kvmap.end()) {
02230                 it->second->convert(a15);
02231             }
02232         }
02233         
02234         {
02235             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
02236             if (it != kvmap.end()) {
02237                 it->second->convert(a17);
02238             }
02239         }
02240         
02241         {
02242             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
02243             if (it != kvmap.end()) {
02244                 it->second->convert(a19);
02245             }
02246         }
02247         
02248         {
02249             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
02250             if (it != kvmap.end()) {
02251                 it->second->convert(a21);
02252             }
02253         }
02254         
02255         {
02256             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
02257             if (it != kvmap.end()) {
02258                 it->second->convert(a23);
02259             }
02260         }
02261         
02262         {
02263             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a24);
02264             if (it != kvmap.end()) {
02265                 it->second->convert(a25);
02266             }
02267         }
02268         
02269         {
02270             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a26);
02271             if (it != kvmap.end()) {
02272                 it->second->convert(a27);
02273             }
02274         }
02275         
02276         {
02277             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a28);
02278             if (it != kvmap.end()) {
02279                 it->second->convert(a29);
02280             }
02281         }
02282         
02283     }
02284     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
02285     {
02286         o->type = msgpack::type::MAP;
02287         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*15));
02288         o->via.map.size = 15;
02289         
02290         o->via.map.ptr[0].key = msgpack::object(a0, z);
02291         o->via.map.ptr[0].val = msgpack::object(a1, z);
02292         
02293         o->via.map.ptr[1].key = msgpack::object(a2, z);
02294         o->via.map.ptr[1].val = msgpack::object(a3, z);
02295         
02296         o->via.map.ptr[2].key = msgpack::object(a4, z);
02297         o->via.map.ptr[2].val = msgpack::object(a5, z);
02298         
02299         o->via.map.ptr[3].key = msgpack::object(a6, z);
02300         o->via.map.ptr[3].val = msgpack::object(a7, z);
02301         
02302         o->via.map.ptr[4].key = msgpack::object(a8, z);
02303         o->via.map.ptr[4].val = msgpack::object(a9, z);
02304         
02305         o->via.map.ptr[5].key = msgpack::object(a10, z);
02306         o->via.map.ptr[5].val = msgpack::object(a11, z);
02307         
02308         o->via.map.ptr[6].key = msgpack::object(a12, z);
02309         o->via.map.ptr[6].val = msgpack::object(a13, z);
02310         
02311         o->via.map.ptr[7].key = msgpack::object(a14, z);
02312         o->via.map.ptr[7].val = msgpack::object(a15, z);
02313         
02314         o->via.map.ptr[8].key = msgpack::object(a16, z);
02315         o->via.map.ptr[8].val = msgpack::object(a17, z);
02316         
02317         o->via.map.ptr[9].key = msgpack::object(a18, z);
02318         o->via.map.ptr[9].val = msgpack::object(a19, z);
02319         
02320         o->via.map.ptr[10].key = msgpack::object(a20, z);
02321         o->via.map.ptr[10].val = msgpack::object(a21, z);
02322         
02323         o->via.map.ptr[11].key = msgpack::object(a22, z);
02324         o->via.map.ptr[11].val = msgpack::object(a23, z);
02325         
02326         o->via.map.ptr[12].key = msgpack::object(a24, z);
02327         o->via.map.ptr[12].val = msgpack::object(a25, z);
02328         
02329         o->via.map.ptr[13].key = msgpack::object(a26, z);
02330         o->via.map.ptr[13].val = msgpack::object(a27, z);
02331         
02332         o->via.map.ptr[14].key = msgpack::object(a28, z);
02333         o->via.map.ptr[14].val = msgpack::object(a29, z);
02334         
02335     }
02336     
02337     A0& a0;
02338     A1& a1;
02339     A2& a2;
02340     A3& a3;
02341     A4& a4;
02342     A5& a5;
02343     A6& a6;
02344     A7& a7;
02345     A8& a8;
02346     A9& a9;
02347     A10& a10;
02348     A11& a11;
02349     A12& a12;
02350     A13& a13;
02351     A14& a14;
02352     A15& a15;
02353     A16& a16;
02354     A17& a17;
02355     A18& a18;
02356     A19& a19;
02357     A20& a20;
02358     A21& a21;
02359     A22& a22;
02360     A23& a23;
02361     A24& a24;
02362     A25& a25;
02363     A26& a26;
02364     A27& a27;
02365     A28& a28;
02366     A29& a29;
02367 };
02368 
02369 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
02370 struct define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> {
02371     define_map(A0& _a0, A1& _a1, A2& _a2, A3& _a3, A4& _a4, A5& _a5, A6& _a6, A7& _a7, A8& _a8, A9& _a9, A10& _a10, A11& _a11, A12& _a12, A13& _a13, A14& _a14, A15& _a15, A16& _a16, A17& _a17, A18& _a18, A19& _a19, A20& _a20, A21& _a21, A22& _a22, A23& _a23, A24& _a24, A25& _a25, A26& _a26, A27& _a27, A28& _a28, A29& _a29, A30& _a30, A31& _a31) :
02372         a0(_a0), a1(_a1), a2(_a2), a3(_a3), a4(_a4), a5(_a5), a6(_a6), a7(_a7), a8(_a8), a9(_a9), a10(_a10), a11(_a11), a12(_a12), a13(_a13), a14(_a14), a15(_a15), a16(_a16), a17(_a17), a18(_a18), a19(_a19), a20(_a20), a21(_a21), a22(_a22), a23(_a23), a24(_a24), a25(_a25), a26(_a26), a27(_a27), a28(_a28), a29(_a29), a30(_a30), a31(_a31) {}
02373     template <typename Packer>
02374     void msgpack_pack(Packer& pk) const
02375     {
02376         pk.pack_map(16);
02377         
02378         pk.pack(a0);
02379         pk.pack(a1);
02380         pk.pack(a2);
02381         pk.pack(a3);
02382         pk.pack(a4);
02383         pk.pack(a5);
02384         pk.pack(a6);
02385         pk.pack(a7);
02386         pk.pack(a8);
02387         pk.pack(a9);
02388         pk.pack(a10);
02389         pk.pack(a11);
02390         pk.pack(a12);
02391         pk.pack(a13);
02392         pk.pack(a14);
02393         pk.pack(a15);
02394         pk.pack(a16);
02395         pk.pack(a17);
02396         pk.pack(a18);
02397         pk.pack(a19);
02398         pk.pack(a20);
02399         pk.pack(a21);
02400         pk.pack(a22);
02401         pk.pack(a23);
02402         pk.pack(a24);
02403         pk.pack(a25);
02404         pk.pack(a26);
02405         pk.pack(a27);
02406         pk.pack(a28);
02407         pk.pack(a29);
02408         pk.pack(a30);
02409         pk.pack(a31);
02410     }
02411     void msgpack_unpack(msgpack::object const& o) const
02412     {
02413         if(o.type != msgpack::type::MAP) { 
02414             printf("throw msgpack::type_error()");
02415 //            throw msgpack::type_error(); 
02416         }
02417         std::map<std::string, msgpack::object const*> kvmap;
02418         for (uint32_t i = 0; i < o.via.map.size; ++i) {
02419             kvmap.insert(
02420                 std::map<std::string, msgpack::object const*>::value_type(
02421                     std::string(
02422                         o.via.map.ptr[i].key.via.str.ptr,
02423                         o.via.map.ptr[i].key.via.str.size),
02424                     &o.via.map.ptr[i].val
02425                 )
02426             );
02427         }
02428         
02429         {
02430             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a0);
02431             if (it != kvmap.end()) {
02432                 it->second->convert(a1);
02433             }
02434         }
02435         
02436         {
02437             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a2);
02438             if (it != kvmap.end()) {
02439                 it->second->convert(a3);
02440             }
02441         }
02442         
02443         {
02444             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a4);
02445             if (it != kvmap.end()) {
02446                 it->second->convert(a5);
02447             }
02448         }
02449         
02450         {
02451             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a6);
02452             if (it != kvmap.end()) {
02453                 it->second->convert(a7);
02454             }
02455         }
02456         
02457         {
02458             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a8);
02459             if (it != kvmap.end()) {
02460                 it->second->convert(a9);
02461             }
02462         }
02463         
02464         {
02465             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a10);
02466             if (it != kvmap.end()) {
02467                 it->second->convert(a11);
02468             }
02469         }
02470         
02471         {
02472             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a12);
02473             if (it != kvmap.end()) {
02474                 it->second->convert(a13);
02475             }
02476         }
02477         
02478         {
02479             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a14);
02480             if (it != kvmap.end()) {
02481                 it->second->convert(a15);
02482             }
02483         }
02484         
02485         {
02486             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a16);
02487             if (it != kvmap.end()) {
02488                 it->second->convert(a17);
02489             }
02490         }
02491         
02492         {
02493             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a18);
02494             if (it != kvmap.end()) {
02495                 it->second->convert(a19);
02496             }
02497         }
02498         
02499         {
02500             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a20);
02501             if (it != kvmap.end()) {
02502                 it->second->convert(a21);
02503             }
02504         }
02505         
02506         {
02507             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a22);
02508             if (it != kvmap.end()) {
02509                 it->second->convert(a23);
02510             }
02511         }
02512         
02513         {
02514             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a24);
02515             if (it != kvmap.end()) {
02516                 it->second->convert(a25);
02517             }
02518         }
02519         
02520         {
02521             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a26);
02522             if (it != kvmap.end()) {
02523                 it->second->convert(a27);
02524             }
02525         }
02526         
02527         {
02528             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a28);
02529             if (it != kvmap.end()) {
02530                 it->second->convert(a29);
02531             }
02532         }
02533         
02534         {
02535             std::map<std::string, msgpack::object const*>::const_iterator it = kvmap.find(a30);
02536             if (it != kvmap.end()) {
02537                 it->second->convert(a31);
02538             }
02539         }
02540         
02541     }
02542     void msgpack_object(msgpack::object* o, msgpack::zone& z) const
02543     {
02544         o->type = msgpack::type::MAP;
02545         o->via.map.ptr = static_cast<msgpack::object_kv*>(z.allocate_align(sizeof(msgpack::object_kv)*16));
02546         o->via.map.size = 16;
02547         
02548         o->via.map.ptr[0].key = msgpack::object(a0, z);
02549         o->via.map.ptr[0].val = msgpack::object(a1, z);
02550         
02551         o->via.map.ptr[1].key = msgpack::object(a2, z);
02552         o->via.map.ptr[1].val = msgpack::object(a3, z);
02553         
02554         o->via.map.ptr[2].key = msgpack::object(a4, z);
02555         o->via.map.ptr[2].val = msgpack::object(a5, z);
02556         
02557         o->via.map.ptr[3].key = msgpack::object(a6, z);
02558         o->via.map.ptr[3].val = msgpack::object(a7, z);
02559         
02560         o->via.map.ptr[4].key = msgpack::object(a8, z);
02561         o->via.map.ptr[4].val = msgpack::object(a9, z);
02562         
02563         o->via.map.ptr[5].key = msgpack::object(a10, z);
02564         o->via.map.ptr[5].val = msgpack::object(a11, z);
02565         
02566         o->via.map.ptr[6].key = msgpack::object(a12, z);
02567         o->via.map.ptr[6].val = msgpack::object(a13, z);
02568         
02569         o->via.map.ptr[7].key = msgpack::object(a14, z);
02570         o->via.map.ptr[7].val = msgpack::object(a15, z);
02571         
02572         o->via.map.ptr[8].key = msgpack::object(a16, z);
02573         o->via.map.ptr[8].val = msgpack::object(a17, z);
02574         
02575         o->via.map.ptr[9].key = msgpack::object(a18, z);
02576         o->via.map.ptr[9].val = msgpack::object(a19, z);
02577         
02578         o->via.map.ptr[10].key = msgpack::object(a20, z);
02579         o->via.map.ptr[10].val = msgpack::object(a21, z);
02580         
02581         o->via.map.ptr[11].key = msgpack::object(a22, z);
02582         o->via.map.ptr[11].val = msgpack::object(a23, z);
02583         
02584         o->via.map.ptr[12].key = msgpack::object(a24, z);
02585         o->via.map.ptr[12].val = msgpack::object(a25, z);
02586         
02587         o->via.map.ptr[13].key = msgpack::object(a26, z);
02588         o->via.map.ptr[13].val = msgpack::object(a27, z);
02589         
02590         o->via.map.ptr[14].key = msgpack::object(a28, z);
02591         o->via.map.ptr[14].val = msgpack::object(a29, z);
02592         
02593         o->via.map.ptr[15].key = msgpack::object(a30, z);
02594         o->via.map.ptr[15].val = msgpack::object(a31, z);
02595         
02596     }
02597     
02598     A0& a0;
02599     A1& a1;
02600     A2& a2;
02601     A3& a3;
02602     A4& a4;
02603     A5& a5;
02604     A6& a6;
02605     A7& a7;
02606     A8& a8;
02607     A9& a9;
02608     A10& a10;
02609     A11& a11;
02610     A12& a12;
02611     A13& a13;
02612     A14& a14;
02613     A15& a15;
02614     A16& a16;
02615     A17& a17;
02616     A18& a18;
02617     A19& a19;
02618     A20& a20;
02619     A21& a21;
02620     A22& a22;
02621     A23& a23;
02622     A24& a24;
02623     A25& a25;
02624     A26& a26;
02625     A27& a27;
02626     A28& a28;
02627     A29& a29;
02628     A30& a30;
02629     A31& a31;
02630 };
02631 
02632 /// @endcond
02633 
02634 inline define_map<> make_define_map()
02635 {
02636     return define_map<>();
02637 }
02638 
02639 /// @cond
02640 
02641 template <typename A0>
02642 inline define_map<A0> make_define_map(A0& a0)
02643 {
02644     return define_map<A0>(a0);
02645 }
02646 
02647 template <typename A0, typename A1>
02648 inline define_map<A0, A1> make_define_map(A0& a0, A1& a1)
02649 {
02650     return define_map<A0, A1>(a0, a1);
02651 }
02652 
02653 template <typename A0, typename A1, typename A2>
02654 inline define_map<A0, A1, A2> make_define_map(A0& a0, A1& a1, A2& a2)
02655 {
02656     return define_map<A0, A1, A2>(a0, a1, a2);
02657 }
02658 
02659 template <typename A0, typename A1, typename A2, typename A3>
02660 inline define_map<A0, A1, A2, A3> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3)
02661 {
02662     return define_map<A0, A1, A2, A3>(a0, a1, a2, a3);
02663 }
02664 
02665 template <typename A0, typename A1, typename A2, typename A3, typename A4>
02666 inline define_map<A0, A1, A2, A3, A4> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4)
02667 {
02668     return define_map<A0, A1, A2, A3, A4>(a0, a1, a2, a3, a4);
02669 }
02670 
02671 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
02672 inline define_map<A0, A1, A2, A3, A4, A5> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5)
02673 {
02674     return define_map<A0, A1, A2, A3, A4, A5>(a0, a1, a2, a3, a4, a5);
02675 }
02676 
02677 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
02678 inline define_map<A0, A1, A2, A3, A4, A5, A6> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6)
02679 {
02680     return define_map<A0, A1, A2, A3, A4, A5, A6>(a0, a1, a2, a3, a4, a5, a6);
02681 }
02682 
02683 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
02684 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7)
02685 {
02686     return define_map<A0, A1, A2, A3, A4, A5, A6, A7>(a0, a1, a2, a3, a4, a5, a6, a7);
02687 }
02688 
02689 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
02690 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8)
02691 {
02692     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8>(a0, a1, a2, a3, a4, a5, a6, a7, a8);
02693 }
02694 
02695 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
02696 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9)
02697 {
02698     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9);
02699 }
02700 
02701 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
02702 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10)
02703 {
02704     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10);
02705 }
02706 
02707 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
02708 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11)
02709 {
02710     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11);
02711 }
02712 
02713 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
02714 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12)
02715 {
02716     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12);
02717 }
02718 
02719 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
02720 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13)
02721 {
02722     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13);
02723 }
02724 
02725 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
02726 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14)
02727 {
02728     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14);
02729 }
02730 
02731 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
02732 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15)
02733 {
02734     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15);
02735 }
02736 
02737 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
02738 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16)
02739 {
02740     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16);
02741 }
02742 
02743 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
02744 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17)
02745 {
02746     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17);
02747 }
02748 
02749 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
02750 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18)
02751 {
02752     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18);
02753 }
02754 
02755 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
02756 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19)
02757 {
02758     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19);
02759 }
02760 
02761 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20>
02762 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20)
02763 {
02764     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20);
02765 }
02766 
02767 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21>
02768 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21)
02769 {
02770     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21);
02771 }
02772 
02773 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22>
02774 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22)
02775 {
02776     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22);
02777 }
02778 
02779 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23>
02780 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23)
02781 {
02782     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23);
02783 }
02784 
02785 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24>
02786 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24)
02787 {
02788     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24);
02789 }
02790 
02791 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25>
02792 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25)
02793 {
02794     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25);
02795 }
02796 
02797 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26>
02798 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26)
02799 {
02800     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26);
02801 }
02802 
02803 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27>
02804 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27)
02805 {
02806     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27);
02807 }
02808 
02809 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28>
02810 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28)
02811 {
02812     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28);
02813 }
02814 
02815 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29>
02816 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29)
02817 {
02818     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29);
02819 }
02820 
02821 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30>
02822 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30)
02823 {
02824     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30);
02825 }
02826 
02827 template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename A20, typename A21, typename A22, typename A23, typename A24, typename A25, typename A26, typename A27, typename A28, typename A29, typename A30, typename A31>
02828 inline define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31> make_define_map(A0& a0, A1& a1, A2& a2, A3& a3, A4& a4, A5& a5, A6& a6, A7& a7, A8& a8, A9& a9, A10& a10, A11& a11, A12& a12, A13& a13, A14& a14, A15& a15, A16& a16, A17& a17, A18& a18, A19& a19, A20& a20, A21& a21, A22& a22, A23& a23, A24& a24, A25& a25, A26& a26, A27& a27, A28& a28, A29& a29, A30& a30, A31& a31)
02829 {
02830     return define_map<A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21, A22, A23, A24, A25, A26, A27, A28, A29, A30, A31>(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, a31);
02831 }
02832 
02833 /// @endcond
02834 
02835 }  // namespace type
02836 /// @cond
02837 }  // MSGPACK_API_VERSION_NAMESPACE(v1)
02838 /// @endcond
02839 }  // namespace msgpack
02840 
02841 #endif // MSGPACK_CPP03_DEFINE_MAP_HPP
02842