]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/serialization/example/fix_six.cpp
add subtree-ish sources for 12.0.3
[ceph.git] / ceph / src / boost / libs / serialization / example / fix_six.cpp
1 #include <fstream>
2 #include <ios>
3 #include <iostream>
4 #include <boost/integer_traits.hpp>
5 #include <boost/archive/binary_iarchive.hpp>
6
7 void usage(const char * program_name){
8 std::cout << "usage:";
9 std::cout << program_name << " filename" << std::endl;
10 }
11
12 int main(int argc, char *argv[]){
13 if(argc != 2){
14 std::cout << "invalid number of arguments" << std::endl;
15 usage(argv[0]);
16 return 1;
17 }
18 std::filebuf fb;
19 fb.open(
20 argv[1],
21 std::ios_base::binary | std::ios_base::in | std::ios_base::out
22 );
23 if(!fb.is_open()){
24 std::cout << argv[1] << " failed to open" << std::endl;
25 return 1;
26 }
27 boost::archive::binary_iarchive ia(fb);
28 boost::archive::library_version_type lvt = ia.get_library_version();
29 if(boost::archive::library_version_type(6) != lvt){
30 std::cout << "library version not equal to six" << std::endl;
31 return 1;
32 }
33 lvt = boost::archive::library_version_type(7);
34 fb.pubseekpos(26, std::ios_base::out);
35 fb.sputn(reinterpret_cast<const char *>(& lvt), sizeof(lvt));
36 fb.close();
37 }