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

C++ Discussion :

Sérialisation d'objets en c++


Sujet :

C++

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Sérialisation d'objets en c++
    Bonjour,

    Pour un projet informatique mon groupe et moi devons coder (entre autre) une technique qui nous permettrait de sérialiser des objets et de les envoyer sur un socket.

    Nous avons déjà implémenter la couche socket pour notre projet mais il manque la transmission d'objet...

    Quelqu'un a un idée? On a déjà essayer pas mal de choses mais sans succès.

    Nos objects n'auront aucun attribut dynamique (pas de poiteur vers des structures). On ne peut utiliser à priori que la STL et IOstream library...

    On pensait (mais pas encore testé) de faire des InputStream et OutputStream qui serait composés de ifstream et ofstream sur lesquels on sérializerait les object et puis lire le fichier et l'envoyer sur le réseau... Ca devrait marcher mais c assez lourd...

    Merci d'avance...

    Oxy

  2. #2
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    http://www.boost.org/libs/serialization/doc/index.html ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Boost ne fait pas partie de STL et IOstream library ...
    Nous devont implémenter ce que fait boost nous même mais en plus simpliste...

  4. #4
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Tiens je suis tomé sur ceci, cela risque de t'intéresser.

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Sans utiliser d'autres bibliothèques que la SL, bonne chance pour envoyer des données sur des sockets : Les sockets ne sont en effet pas gérés par le C++ standard...


    Maintenant, si vous savez sérialiser sur un ostream (sinon, j'ai pas compris, il faut mieux m'expliquer votre problème), il vous est possible de créer un streambuf qui gère le réseau. En effet, les streams du C++ sont basés sur deux aspects :
    - La mise en forme, gérée par les classes stream
    - Le lieu où l'on écrit, géré par les classes streambuf

    Ainsi, un ofstream n'est rien d'autre qu'un ostream avec un streambuf écrivant dans un fichier (nommé basic_filebuf).
    En dérivant de streambuf, vous pouvez donc faire ce que vous cherchez.

    Voir par exemple http://www.cmla.ens-cachan.fr/Utilisateurs/dosreis/C++/FAQ/#flux_entree_sortie

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Notre problème est que nous devons envoyer des objets par le réseau via notre interface C++ maison pour les socket qui font en fait abstraction des sycalls...

    le but serait donc comme tu dis d'envoyer les objets sérialisés sur un stream.

    j'ai essayer la sérialisation sur des ofstream et ca fonctionne cependant je n'ai pas réussi avec streambuf et autres...

    Ce que tu raconte sur les streambuf m'intéresse car j'ai essayé mais sans grand succes, j'ai du mal m'y prendre... tu pourrais m'expliquer plus en détails?
    une petit code exemple?

    Merci pour ta réponse.

  7. #7
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    On ne peut utiliser à priori que la STL et IOstream library...
    Je ne comprends jamais ce genre de choix.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Etant étudiant en informatique c juste pour qu'on apprenne a fabriquer des solutions...

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Quel est le problème ? Tu peux prendre les headers de boost dont tu as besoin et voilà !

  10. #10
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par OxyLin
    Ce que tu raconte sur les streambuf m'intéresse car j'ai essayé mais sans grand succes, j'ai du mal m'y prendre... tu pourrais m'expliquer plus en détails?
    une petit code exemple?
    2 références :
    http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#6
    http://www.inf.uni-konstanz.de/~kuehl/c++/iostream/

    J'en avais trouvé une meilleure, mais j'ai l'impression que le délestage l'a supprimée du forum.

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/12/2006, 10h22
  2. Sérialisation d'objets sans Boost
    Par Alp dans le forum Boost
    Réponses: 7
    Dernier message: 24/09/2006, 11h43
  3. [POO] Sérialisation d'objet en PHP
    Par Invité(e) dans le forum Langage
    Réponses: 4
    Dernier message: 29/08/2006, 15h37
  4. [C#] Comment sérialiser un objet Font ?
    Par djmanu dans le forum C#
    Réponses: 5
    Dernier message: 20/01/2006, 09h51
  5. [Sérialisation] d'objets de types différents
    Par Amnesiak dans le forum Général Java
    Réponses: 3
    Dernier message: 08/12/2004, 22h28

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