1 /////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
5 // (C) Copyright 2002-4 Robert Ramey - http://www.rrsd.com .
6 // Use, modification and distribution is subject to the Boost Software
7 // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
8 // http://www.boost.org/LICENSE_1_0.txt)
12 #include <boost/archive/tmpdir.hpp>
14 #include <boost/archive/xml_oarchive.hpp>
16 #include "demo_gps.hpp"
18 void save_schedule(const bus_schedule
&s
, const char * filename
){
20 std::ofstream
ofs(filename
);
22 boost::archive::xml_oarchive
oa(ofs
);
23 oa
<< BOOST_SERIALIZATION_NVP(s
);
26 int main(int argc
, char *argv
[])
29 bus_schedule original_schedule
;
33 bus_stop
*bs0
= new bus_stop_corner(
34 gps_position(34, 135, 52.560f
),
35 gps_position(134, 22, 78.30f
),
36 "24th Street", "10th Avenue"
38 bus_stop
*bs1
= new bus_stop_corner(
39 gps_position(35, 137, 23.456f
),
40 gps_position(133, 35, 54.12f
),
41 "State street", "Cathedral Vista Lane"
43 bus_stop
*bs2
= new bus_stop_destination(
44 gps_position(35, 136, 15.456f
),
45 gps_position(133, 32, 15.300f
),
48 bus_stop
*bs3
= new bus_stop_destination(
49 gps_position(35, 134, 48.789f
),
50 gps_position(133, 32, 16.230f
),
60 // add trips to schedule
61 original_schedule
.append("bob", 6, 24, &route0
);
62 original_schedule
.append("bob", 9, 57, &route0
);
63 original_schedule
.append("alice", 11, 02, &route0
);
71 // add trips to schedule
72 original_schedule
.append("ted", 7, 17, &route1
);
73 original_schedule
.append("ted", 9, 38, &route1
);
74 original_schedule
.append("alice", 11, 47, &route1
);
76 // display the complete schedule
77 std::cout
<< "original schedule";
78 std::cout
<< original_schedule
;
80 std::string
filename(boost::archive::tmpdir());
81 filename
+= "/demo_save.xml";
84 save_schedule(original_schedule
, filename
.c_str());