12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
- //
- // demo_xml_save.cpp
- //
- // (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
- // Use, modification and distribution is subject to the Boost Software
- // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
- // http://www.boost.org/LICENSE_1_0.txt)
- #include <iostream>
- #include <string>
- #include <boost/archive/tmpdir.hpp>
- #include <boost/archive/xml_oarchive.hpp>
- #include "demo_gps.hpp"
- void save_schedule(const bus_schedule &s, const char * filename){
- // make an archive
- std::ofstream ofs(filename);
- assert(ofs.good());
- boost::archive::xml_oarchive oa(ofs);
- oa << BOOST_SERIALIZATION_NVP(s);
- }
- int main(int argc, char *argv[])
- {
- // make the schedule
- bus_schedule original_schedule;
- // fill in the data
- // make a few stops
- bus_stop *bs0 = new bus_stop_corner(
- gps_position(34, 135, 52.560f),
- gps_position(134, 22, 78.30f),
- "24th Street", "10th Avenue"
- );
- bus_stop *bs1 = new bus_stop_corner(
- gps_position(35, 137, 23.456f),
- gps_position(133, 35, 54.12f),
- "State street", "Cathedral Vista Lane"
- );
- bus_stop *bs2 = new bus_stop_destination(
- gps_position(35, 136, 15.456f),
- gps_position(133, 32, 15.300f),
- "White House"
- );
- bus_stop *bs3 = new bus_stop_destination(
- gps_position(35, 134, 48.789f),
- gps_position(133, 32, 16.230f),
- "Lincoln Memorial"
- );
- // make a routes
- bus_route route0;
- route0.append(bs0);
- route0.append(bs1);
- route0.append(bs2);
- // add trips to schedule
- original_schedule.append("bob", 6, 24, &route0);
- original_schedule.append("bob", 9, 57, &route0);
- original_schedule.append("alice", 11, 02, &route0);
- // make aother routes
- bus_route route1;
- route1.append(bs3);
- route1.append(bs2);
- route1.append(bs1);
- // add trips to schedule
- original_schedule.append("ted", 7, 17, &route1);
- original_schedule.append("ted", 9, 38, &route1);
- original_schedule.append("alice", 11, 47, &route1);
- // display the complete schedule
- std::cout << "original schedule";
- std::cout << original_schedule;
-
- std::string filename(boost::archive::tmpdir());
- filename += "/demo_save.xml";
- // save the schedule
- save_schedule(original_schedule, filename.c_str());
- delete bs0;
- delete bs1;
- delete bs2;
- delete bs3;
- return 0;
- }
|