messagepack implementation for embedded systems (mbed / arduino)

Dependents:   hello_message_pack

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers adt.hpp Source File

adt.hpp

00001 # /* Copyright (C) 2001
00002 #  * Housemarque Oy
00003 #  * http://www.housemarque.com
00004 #  *
00005 #  * Distributed under the Boost Software License, Version 1.0. (See
00006 #  * accompanying file LICENSE_1_0.txt or copy at
00007 #  * http://www.boost.org/LICENSE_1_0.txt)
00008 #  *
00009 #  * See http://www.boost.org for most recent version.
00010 #  */
00011 #
00012 # /* Revised by Paul Mensonides (2002) */
00013 #
00014 # ifndef MSGPACK_PREPROCESSOR_LIST_ADT_HPP
00015 # define MSGPACK_PREPROCESSOR_LIST_ADT_HPP
00016 #
00017 # include <msgpack/preprocessor/config/config.hpp>
00018 # include <msgpack/preprocessor/detail/is_binary.hpp>
00019 # include <msgpack/preprocessor/logical/compl.hpp>
00020 # include <msgpack/preprocessor/tuple/eat.hpp>
00021 #
00022 # /* MSGPACK_PP_LIST_CONS */
00023 #
00024 # define MSGPACK_PP_LIST_CONS(head, tail) (head, tail)
00025 #
00026 # /* MSGPACK_PP_LIST_NIL */
00027 #
00028 # define MSGPACK_PP_LIST_NIL MSGPACK_PP_NIL
00029 #
00030 # /* MSGPACK_PP_LIST_FIRST */
00031 #
00032 # define MSGPACK_PP_LIST_FIRST(list) MSGPACK_PP_LIST_FIRST_D(list)
00033 #
00034 # if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
00035 #    define MSGPACK_PP_LIST_FIRST_D(list) MSGPACK_PP_LIST_FIRST_I list
00036 # else
00037 #    define MSGPACK_PP_LIST_FIRST_D(list) MSGPACK_PP_LIST_FIRST_I ## list
00038 # endif
00039 #
00040 # define MSGPACK_PP_LIST_FIRST_I(head, tail) head
00041 #
00042 # /* MSGPACK_PP_LIST_REST */
00043 #
00044 # define MSGPACK_PP_LIST_REST(list) MSGPACK_PP_LIST_REST_D(list)
00045 #
00046 # if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_MWCC()
00047 #    define MSGPACK_PP_LIST_REST_D(list) MSGPACK_PP_LIST_REST_I list
00048 # else
00049 #    define MSGPACK_PP_LIST_REST_D(list) MSGPACK_PP_LIST_REST_I ## list
00050 # endif
00051 #
00052 # define MSGPACK_PP_LIST_REST_I(head, tail) tail
00053 #
00054 # /* MSGPACK_PP_LIST_IS_CONS */
00055 #
00056 # if MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_BCC()
00057 #    define MSGPACK_PP_LIST_IS_CONS(list) MSGPACK_PP_LIST_IS_CONS_D(list)
00058 #    define MSGPACK_PP_LIST_IS_CONS_D(list) MSGPACK_PP_LIST_IS_CONS_ ## list
00059 #    define MSGPACK_PP_LIST_IS_CONS_(head, tail) 1
00060 #    define MSGPACK_PP_LIST_IS_CONS_MSGPACK_PP_NIL 0
00061 # else
00062 #    define MSGPACK_PP_LIST_IS_CONS(list) MSGPACK_PP_IS_BINARY(list)
00063 # endif
00064 #
00065 # /* MSGPACK_PP_LIST_IS_NIL */
00066 #
00067 # if ~MSGPACK_PP_CONFIG_FLAGS() & MSGPACK_PP_CONFIG_BCC()
00068 #    define MSGPACK_PP_LIST_IS_NIL(list) MSGPACK_PP_COMPL(MSGPACK_PP_IS_BINARY(list))
00069 # else
00070 #    define MSGPACK_PP_LIST_IS_NIL(list) MSGPACK_PP_COMPL(MSGPACK_PP_LIST_IS_CONS(list))
00071 # endif
00072 #
00073 # endif