Electroneum
Loading...
Searching...
No Matches
portable_binary_archive.hpp
Go to the documentation of this file.
1#ifndef PORTABLE_BINARY_ARCHIVE_HPP
2#define PORTABLE_BINARY_ARCHIVE_HPP
3
4// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
5// Use, modification and distribution is subject to the Boost Software
6// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8
9// MS compatible compilers support #pragma once
10#if defined(_MSC_VER)
11# pragma once
12#endif
13
14#include <boost/config.hpp>
15#include <boost/cstdint.hpp>
16#include <boost/static_assert.hpp>
17#include <boost/archive/archive_exception.hpp>
18
19#include <climits>
20#if CHAR_BIT != 8
21#error This code assumes an eight-bit byte.
22#endif
23
24#include <boost/archive/basic_archive.hpp>
25#include <boost/predef/other/endian.h>
26
27#include <boost/archive/impl/archive_serializer_map.ipp>
28
29namespace boost { namespace archive {
30
35
36//#if ( endian_big <= boost::archive::flags_last )
37//#error archive flags conflict
38//#endif
39
40 inline void
41 reverse_bytes(signed char size, char *address){
42 if (size <= 0)
43 throw archive_exception(archive_exception::other_exception);
44 char * first = address;
45 char * last = first + size - 1;
46 for(;first < last;++first, --last){
47 char x = *last;
48 *last = *first;
49 *first = x;
50 }
51 }
52
53 } }
54
55#endif // PORTABLE_BINARY_ARCHIVE_HPP
void reverse_bytes(signed char size, char *address)
const char * address
Definition multisig.cpp:37