Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1332 connectés 

  FORUM HardWare.fr
  Programmation
  C

  [C-DBUS] gestion des erreurs

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C-DBUS] gestion des erreurs

n°1611877
ffomnislas​h
Posté le 15-09-2007 à 12:07:00  profilanswer
 

:hello:  
 
J'écrit actuellement un client utilisant dbus mais je rencontre un problème bête dans la gestion des erreurs.
 
Lorsque je récupère une réponse de type string je fait ceci:

Code :
  1. char* exalt_dbus_response_string(DBusMessage *msg)
  2. {
  3.     DBusMessageIter args;
  4.     char* res;
  5.     if(!dbus_message_iter_init(msg, &args))
  6.     {
  7.         exalt_dbus_print_error("WARNING", __FILE__, __LINE__,__func__, "no argument" );
  8.         return NULL;
  9.     }
  10.     if (DBUS_TYPE_STRING != dbus_message_iter_get_arg_type(&args))
  11.     {
  12.         exalt_dbus_print_error("ERROR", __FILE__, __LINE__,__func__, "the argument is not a string" );
  13.         return NULL;
  14.     }
  15.     else
  16.     {
  17.         dbus_message_iter_get_basic(&args, &res);
  18.         return strdup(res);
  19.     }
  20. }


 
Cela fonctionne très bien à l'exception que si le service n'existe pas, dbus ajoute comme premier résultat un string qui dit

Code :
  1. The name org.e.Exalt was not provided by any .service files


 
Mon problème est comment faire la différence entre un vrai résultat et un résultat de type erreur. J'ai beau cherché notamment du coté du type dbuserror je ne trouve rien en ce qui concerne un résultat :/

mood
Publicité
Posté le 15-09-2007 à 12:07:00  profilanswer
 

n°1611993
Emmanuel D​elahaye
C is a sharp tool
Posté le 16-09-2007 à 10:30:19  profilanswer
 

ffomnislash a écrit :

<...>
Mon problème est comment faire la différence entre un vrai résultat et un résultat de type erreur. J'ai beau cherché notamment du coté du type dbuserror je ne trouve rien en ce qui concerne un résultat :/


"This is hardly a C-question"
-- anonym in c.l.c.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1612003
ffomnislas​h
Posté le 16-09-2007 à 11:18:38  profilanswer
 

Emmanuel Delahaye a écrit :


"This is hardly a C-question"
-- anonym in c.l.c.


 
oui en effet :p

n°1613228
Dumbledore
Posté le 19-09-2007 à 22:36:29  profilanswer
 

Tu devrais utiliser une API de plus haut niveau pour faire joujou avec DBus, elles intègrent des systèmes de gestion d'erreur et fournissent une API plus stable (dans le temps) que l'API DBus de base.
Y a la couche GLib (en C) ou alors Qt4 (en C++)
 
Sinon, y a ptêt dans l'API un truc qui permet d'identifier si un message est une erreur ou non.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  [C-DBUS] gestion des erreurs

 

Sujets relatifs
Execution de progarmme en paralelle - gestion de memoireAide pour la gestion du temps et des applications
Gestion lock optimiste avc Hibernate et archi n-tiersrétablir la gestion des erreurs par défaut dans access
Choix d'un Système de gestion de contenu (CMS)Système de gestion de contenu
Gestion des données dans une base en Client/Serveur[C] gestion bus I2C sur MPLAB
DOM : gérer les erreurs de syntaxe 
Plus de sujets relatifs à : [C-DBUS] gestion des erreurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR