Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import <Foundation/Foundation.h>
- #include <boost/archive/binary_oarchive.hpp>
- #include <boost/archive/binary_iarchive.hpp>
- #include <boost/archive/text_iarchive.hpp>
- #include <boost/archive/text_oarchive.hpp>
- #include <boost/iostreams/stream.hpp>
- #include <boost/asio.hpp>
- #include <boost/regex.h>
- #include <boost/iostreams/device/back_inserter.hpp>
- #include <iostream>
- #include <vector>
- #include <sstream>
- #include <ostream>
- #include <istream>
- #include <chrono>
- #include <thread>
- #include <memory>
- using namespace std;
- class Test
- {
- friend class boost::serialization::access;
- template<typename Archive> void serialize(Archive& ar, const unsigned int version)
- {
- ar & _x;
- }
- int _x;
- public:
- Test(int x) : _x(x) { }
- Test() { }
- void setX(int x) { _x = x; }
- int getX() { return _x; }
- };
- int main(int argc, const char * argv[])
- {
- std::string serial_str;
- {
- boost::iostreams::back_insert_device<std::string> inserter(serial_str);
- boost::iostreams::stream<boost::iostreams::back_insert_device<std::string> > streamer(inserter);
- boost::archive::text_oarchive archive(streamer);
- Test t(20);
- archive << t;
- streamer.flush();
- }
- vector<unsigned char> data(serial_str.begin(), serial_str.end());
- unsigned char *szData = data.data();
- size_t len = data.size();
- {
- Test t2;
- boost::iostreams::basic_array_source<char> device((const char *)szData, len);
- boost::iostreams::stream<boost::iostreams::basic_array_source<char> > s(device);
- boost::archive::text_iarchive ia(s);
- ia >> t2;
- cout << t2.getX() << endl;
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment