IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage C++ Discussion :

Serialization avec Boost


Sujet :

Langage C++

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Par défaut Serialization avec Boost
    Bonjour a tous,


    Je viens a vous pour un soucis de serialization avec boost,


    Actuellement, je dois pour mon projet en C++ m'occupez de sauvegarder une partie de notre jeux,

    et pour tout vous avouez je suis completement paume,

    j'ai reussis a serialiser des int, des strings, vector et lists mais je ne vois pas comment sauvegarder une classe entiere (ce qui serait plus pratique pour la sauvegarde du jeux)


    Est ce quelqu'un a deja travailler dessus et a une idee ?



    Merci,

    ps : je peux poster le code de ma serialization pour montrer bien sur

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut,

    tu as cet exemple là : http://www.boost.org/doc/libs/1_49_0...ample/demo.cpp

    C'est pas compliqué, il suffit de regarder spécifiquement ces deux fonctions :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    std::ostream & operator<<(std::ostream &os, const bus_schedule &bs)
    {
        std::list<std::pair<bus_schedule::trip_info, bus_route *> >::const_iterator it;
        for(it = bs.schedule.begin(); it != bs.schedule.end(); it++){
            os << it->first << *(it->second);
        }
        return os;
    }
     
    void save_schedule(const bus_schedule &s, const char * filename){
        // make an archive
        std::ofstream ofs(filename);
        boost::archive::text_oarchive oa(ofs);
        oa << s;
    }
    Dans ton main tu appelles save_schedule. Comme tu vois il fait : oa << s; ça veut dire que tu surcharger l'opérateur << comme fait ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    std::ostream & operator<<(std::ostream &os, const bus_schedule::trip_info &ti)
    {
        return os << '\n' << ti.hour << ':' << ti.minute << ' ' << ti.driver << ' ';
    }
    std::ostream & operator<<(std::ostream &os, const bus_schedule &bs)
    {
        std::list<std::pair<bus_schedule::trip_info, bus_route *> >::const_iterator it;
        for(it = bs.schedule.begin(); it != bs.schedule.end(); it++){
            os << it->first << *(it->second);
        }
        return os;
    }
    L'opérateur "<<" n'est pas membre de la classe, alors dans ta classe tu devras déclarer ces fonctions "amies" pour qu'elles puissent accéder aux membres de ta classe.

    Bien entendu, pour chaque membre de ta classe tu devras surcharger l'opérateur <<. Bien entendu si c'est des types primitifs ou des classes de la STL, c'est pris en compte par boost Mais bien entendu si un container de la STL contiens une de tes propres classes, tu dois quand même redéfinir l'opérateur pour cette classe !

    Bon il y a aussi la méthode "serialize" dans les classes, je ne sais pas trop à quoi elle sert donc a toi d'investiguer, la doc complète avec de nombreux exemple : http://www.boost.org/doc/libs/1_49_0...doc/index.html

  3. #3
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    A lire, pour bien débuter avec Boost.Serialization : La sérialisation avec Boost. La sérialisation des classes est abordée.

    Bonne lecture

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Par défaut
    Merci bien de vos reponses


    je vais continuer de lire de tutos et de finir ma serialization,


    Merci

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 3
    Par défaut
    J'ai reussis


    Merci encore

    ps : j'ai mis en resolu le post du coup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. serialisation d'iterateur de liste avec Boost::serialization
    Par CedricMocquillon dans le forum Boost
    Réponses: 2
    Dernier message: 22/08/2008, 18h02
  2. Serialization avec Boost : Experiences?
    Par Klaim dans le forum Boost
    Réponses: 3
    Dernier message: 03/12/2007, 21h08
  3. probleme de compilation avec boost
    Par doof dans le forum Bibliothèques
    Réponses: 7
    Dernier message: 07/06/2005, 21h38
  4. Calculer un inverse de matrice avec boost?
    Par Clad3 dans le forum Bibliothèques
    Réponses: 6
    Dernier message: 02/06/2005, 18h38
  5. probleme avec boost et devcpp
    Par Krost dans le forum Dev-C++
    Réponses: 12
    Dernier message: 02/01/2005, 19h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo