|
Boost Users : |
Subject: Re: [Boost-users] [serialization] empty xml output
From: Olivier Tournaire (olitour_at_[hidden])
Date: 2011-03-27 09:58:41
Hi,
2011/3/27 François Mauger <mauger_at_[hidden]>
> Hi Olivier,
>
> Your code looks ok.
> On my system (Linux Ubuntu 9.10,gcc 4.4.1, Boost 1.44) I can check
> that the following files 'parameters.hpp' and 'p1.cpp' compile, link and
> execute properly:
> {{{
> #ifndef PARAMETERS_HPP
> #define PARAMETERS_HPP
>
> //no need to include archives here:
> #include <boost/serialization/nvp.hpp>
>
>
> class rss_feeds_to_parse
> {
> public:
>
> bool all;
> template<class Archive> void serialize(Archive & ar, const unsigned int
> file_version)
> {
> ar & BOOST_SERIALIZATION_NVP(all);
> }
> };
>
> class parameters
> {
> public:
> rss_feeds_to_parse feeds; template<class Archive> void
> serialize(Archive & ar, const unsigned int file_version)
> {
> ar & BOOST_SERIALIZATION_NVP(feeds);
> }
> };
>
> #endif // PARAMETERS_HPP
> }}}
> and
> {{{
> #include <fstream>
> #include <assert.h>
> #include <boost/archive/xml_oarchive.hpp> // archive is included here
> #include <boost/serialization/nvp.hpp>
>
> #include "parameters.hpp"
>
> int main (void)
>
> {
> parameters p;
> p.feeds.all = true;
> std::ofstream ofs ("test_parameters.xml");
> assert (ofs.good ());
> boost::archive::xml_oarchive oa (ofs);
> oa << BOOST_SERIALIZATION_NVP (p);
> return 0;
> }
> }}}
>
> the output is:
> {{{
> shell> cat test_parameters.xml
> <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
> <!DOCTYPE boost_serialization>
> <boost_serialization signature="serialization::archive" version="7">
> <p class_id="0" tracking_level="0" version="0">
> <feeds class_id="1" tracking_level="0" version="0">
> <all>1</all>
> </feeds>
> </p>
> </boost_serialization>
> }}}
> which is correct.
>
> I suspect you have some other bits in your main that blanks the
> test_parameters.xml file...
>
Yes, probably. I tried my code removing all the other code in the main, and
it works. What can cause this?
Regards,
Olivier
>
> regards
> frc
> --
>
>
>
> >>> Olivier Tournaire a écrit :
>
>> Hi all,
>>
>> I am trying to introduce XML serialization in my project, but even with
>> the simplest test, I cannot get something to work. Here is what I did:
>>
>> #define PARAMETERS_HPP
>> #include <boost/archive/xml_iarchive.hpp>
>> #include <boost/archive/xml_oarchive.hpp>
>> #include <iostream>
>> class rss_feeds_to_parse
>> {
>> public:
>> bool all;
>> template<class Archive> void serialize(Archive & ar, const unsigned int
>> file_version)
>> {
>> ar & BOOST_SERIALIZATION_NVP(all);
>> }
>> };
>> class parameters
>> {
>> public:
>> rss_feeds_to_parse feeds;
>> template<class Archive> void serialize(Archive & ar, const unsigned int
>> file_version)
>> {
>> ar & BOOST_SERIALIZATION_NVP(feeds);
>> }
>> };
>> #endif // PARAMETERS_HPP
>>
>> Later, in my main, I have:
>>
>> parameters p;
>> p.feeds.all = true;
>> std::ofstream ofs("test_parameters.xml");
>> assert(ofs.good());
>> boost::archive::xml_oarchive oa(ofs);
>> oa << BOOST_SERIALIZATION_NVP(p);
>>
>> It compiles, links and executes well, the file test_parameters.xml is
>> created ... but empty !
>>
>> What am I doing wrong?
>>
>> Hope you could help.
>>
>> Best regards,
>>
>> Olivier
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Boost-users mailing list
>> Boost-users_at_[hidden]
>> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>>
>
>
> --
> François Mauger Groupe "Interactions Fondamentales et Nature du Neutrino"
> NEMO-3/SuperNEMO Collaboration
> LPC Caen-CNRS/IN2P3-UCBN-ENSICAEN
> Département de Physique -- Université de Caen Basse-Normandie
> Adresse/address:
> Laboratoire de Physique Corpusculaire de Caen (UMR 6534)
> ENSICAEN 6, Boulevard du Marechal Juin
> 14050 CAEN Cedex
> FRANCE
> Courriel/e-mail: mauger_at_[hidden] Tél./phone: 02 31 45 25 12 /
> (+33) 2 31 45 25 12
> Fax: 02 31 45 25 49 / (+33) 2 31 45 25 49
>
>
> _______________________________________________
> Boost-users mailing list
> Boost-users_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-users
>
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net