MessagePack for C++
Loading...
Searching...
No Matches
bool.hpp
Go to the documentation of this file.
1//
2// MessagePack for C++ static resolution routine
3//
4// Copyright (C) 2008-2016 FURUHASHI Sadayuki
5//
6// Distributed under the Boost Software License, Version 1.0.
7// (See accompanying file LICENSE_1_0.txt or copy at
8// http://www.boost.org/LICENSE_1_0.txt)
9//
10#ifndef MSGPACK_V1_TYPE_BOOL_HPP
11#define MSGPACK_V1_TYPE_BOOL_HPP
12
15#include "msgpack/object.hpp"
16
17namespace msgpack {
18
22
23namespace adaptor {
24
25template <>
26struct convert<bool> {
27 msgpack::object const& operator()(msgpack::object const& o, bool& v) const {
28 if(o.type != msgpack::type::BOOLEAN) { throw msgpack::type_error(); }
29 v = o.via.boolean;
30 return o;
31 }
32};
33
34template <>
35struct pack<bool> {
36 template <typename Stream>
38 if(v) { o.pack_true(); }
39 else { o.pack_false(); }
40 return o;
41 }
42};
43
44template <>
45struct object<bool> {
46 void operator()(msgpack::object& o, bool v) const {
47 o.type = msgpack::type::BOOLEAN;
48 o.via.boolean = v;
49 }
50};
51
52template <>
53struct object_with_zone<bool> {
54 void operator()(msgpack::object::with_zone& o, bool v) const {
55 static_cast<msgpack::object&>(o) << v;
56 }
57};
58
59} // namespace adaptor
60
62} // MSGPACK_API_VERSION_NAMESPACE(v1)
64
65} // namespace msgpack
66
67#endif // MSGPACK_V1_TYPE_BOOL_HPP
The class template that supports continuous packing.
Definition pack.hpp:33
packer< Stream > & pack_true()
Packing true.
Definition pack.hpp:1178
packer< Stream > & pack_false()
Packing false.
Definition pack.hpp:1186
Definition object_fwd.hpp:231
Definition adaptor_base.hpp:15
msgpack::object const & operator()(msgpack::object const &o, bool &v) const
Definition bool.hpp:27
Definition adaptor_base.hpp:27
void operator()(msgpack::object &o, bool v) const
Definition bool.hpp:46
void operator()(msgpack::object::with_zone &o, bool v) const
Definition bool.hpp:54
Definition adaptor_base.hpp:43
Definition adaptor_base.hpp:38
msgpack::packer< Stream > & operator()(msgpack::packer< Stream > &o, const bool &v) const
Definition bool.hpp:37
Definition adaptor_base.hpp:32
Definition object.hpp:35
Object class that corresponding to MessagePack format object.
Definition object_fwd.hpp:75
union_type via
Definition object_fwd.hpp:93
msgpack::type::object_type type
Definition object_fwd.hpp:92
bool boolean
Definition object_fwd.hpp:77
#define MSGPACK_API_VERSION_NAMESPACE(ns)
Definition versioning.hpp:66