$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r64178 - trunk/libs/serialization/example
From: ramey_at_[hidden]
Date: 2010-07-19 17:00:43
Author: ramey
Date: 2010-07-19 17:00:43 EDT (Mon, 19 Jul 2010)
New Revision: 64178
URL: http://svn.boost.org/trac/boost/changeset/64178
Log:
fix for archives version 7 marked version 6
Added:
   trunk/libs/serialization/example/fix_six.cpp   (contents, props changed)
Added: trunk/libs/serialization/example/fix_six.cpp
==============================================================================
--- (empty file)
+++ trunk/libs/serialization/example/fix_six.cpp	2010-07-19 17:00:43 EDT (Mon, 19 Jul 2010)
@@ -0,0 +1,37 @@
+#include <fstream>
+#include <ios>
+#include <iostream>
+#include <boost/integer_traits.hpp>
+#include <boost/archive/binary_iarchive.hpp>
+
+void usage(const char * program_name){
+    std::cout << "usage:";
+    std::cout << program_name << " filename" << std::endl;
+}
+
+int main(int argc, char *argv[]){
+    if(argc != 2){
+        std::cout << "invalid number of arguments" << std::endl;
+        usage(argv[0]);
+        return 1;
+    }
+    std::filebuf fb;
+    fb.open(
+        argv[1], 
+        std::ios_base::binary | std::ios_base::in | std::ios_base::out
+    );
+    if(!fb.is_open()){
+        std::cout << argv[1] <<  " failed to open" << std::endl;
+        return 1;
+    }
+    boost::archive::binary_iarchive ia(fb);
+    boost::archive::library_version_type lvt = ia.get_library_version();
+    if(boost::archive::library_version_type(6) != lvt){
+        std::cout << "library version not equal to six" << std::endl;
+        return 1;
+    }
+    lvt = boost::archive::library_version_type(7);
+    fb.pubseekpos(26, std::ios_base::out);
+    fb.sputn(reinterpret_cast<const char *>(& lvt), sizeof(lvt));
+    fb.close();
+}