Changeset 98
- Timestamp:
- 06/04/10 16:18:34 (14 years ago)
- Location:
- XMLIO_V2/dev/trunk/src/XMLIO
- Files:
-
- 11 added
- 10 deleted
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/trunk/src/XMLIO/attribut.hpp
r79 r98 1 #ifndef ATTRIBUT_HPP2 #define ATTRIBUT_HPP1 #ifndef __ATTRIBUT__ 2 #define __ATTRIBUT__ 3 3 4 4 #include "base_attribut.hpp" 5 #include "xmlio_std.hpp"6 5 7 template <class Ctype> 8 class CAttribut : public CBaseAttribut 6 using XMLIOSERVER::BaseAttribut; 7 using XMLIOSERVER::XMLIOUndefinedValueException; 8 using std::ostringstream; 9 10 namespace XMLIOSERVER 9 11 { 10 public : 11 12 bool hasValue ; 13 Ctype value ; 14 15 virtual const char * getName(void) const = 0 ; 16 CAttribut(void) : hasValue(false) {} ; 17 CAttribut(const Ctype& value_) : value(value_), hasValue(true) {} ; 18 CAttribut(const CAttribut& attr) : hasValue(attr.hasValue) 19 { 20 if (hasValue) value=attr.value ; 21 } ; 22 23 CAttribut& operator = (const CAttribut & attr) 24 { 25 hasValue=attr.hasValue ; 26 if (hasValue) value=attr.value ; 27 return *this ; 28 } ; 29 30 operator Ctype() 31 { 32 if (!hasValue) error("CAttribut& CAttribut<Ctype>::operator Ctype")<<"access to undefined value of attribut <<" 33 <<this->getName()<<">>"<<endl; 34 return value ; 35 } ; 36 37 virtual ostream& print(ostream & o) const 38 { 39 o<<"Attribut : "<<getName()<<" ---->" ; 40 if (hasValue) o<<" value = "<<value ; 41 else o<<" undefined value" ; 42 return o ; 43 } 44 45 virtual void setValue(const Ctype & value_) 46 { 47 hasValue=true ; 48 value=value_ ; 49 } 50 51 virtual void getValue(Ctype & value_) const 52 { 53 if (!hasValue) error("void CAttribut<Ctype>::getValue")<<"access to undefined value of attribut <<" 54 <<this->getName()<<">>"<<endl; 55 value_=value ; 56 } 57 58 } ; 12 class IStringStream_alt 13 { 14 public : 15 IStringStream_alt(const std::string& str) : iss(str) 16 { /* Ne rien faire de plus */} 17 18 istream& operator>> (std::string& s) {s.assign(this->iss.str()); return (this->iss);} 19 istream& operator>> (int& s) { return (iss>>s); } 20 istream& operator>> (bool& s) 21 { 22 if(!this->iss.str().compare(string(".TRUE."))) s = true; 23 else s = false; 24 return (this->iss); 25 } 26 27 private : 28 istringstream iss; 29 30 }; // class IStringStream_alt 59 31 60 32 33 template <class Ctype> 34 class Attribut : public BaseAttribut 35 { 36 public : 37 38 bool hasValue ; 39 Ctype value ; 40 41 virtual const char * getName(void) const = 0 ; 42 43 Attribut(void) : hasValue(false) {} ; 44 Attribut(const Ctype& value_) : hasValue(true), value(value_) {} ; 45 46 Attribut(const Attribut& attr) : hasValue(attr.hasValue) 47 { if (hasValue) value=attr.value ; } 48 49 Attribut& operator = (const Attribut & attr) 50 { 51 hasValue=attr.hasValue ; 52 if (hasValue) value=attr.value ; 53 return *this ; 54 } 55 56 virtual const char * getType(void) const = 0; 57 58 virtual void setFromString(const std::string str) 59 { 60 IStringStream_alt iss(str); Ctype val; 61 iss >> val; 62 this->setValue(val); 63 } 64 65 operator Ctype() 66 { 67 if (!hasValue) 68 { 69 ostringstream oss; 70 oss << "CAttribut& CAttribut<Ctype>::operator Ctype , access to undefined value of attribut <<" << this->getName() <<">>"; 71 72 throw XMLIOUndefinedValueException(oss.str()); 73 } 74 return value ; 75 } 76 77 virtual ostream& print(ostream & o) const 78 { 79 o<<"Attribut : "<<getName()<<" ---->" ; 80 if (hasValue) o<< boolalpha <<" value = "<< value ; 81 else o<< "/" ; 82 return o ; 83 } 84 85 virtual void setValue(const Ctype & value_) 86 { hasValue=true ; value=value_ ; } 87 88 virtual void getValue(Ctype & value_) const 89 { 90 if (!hasValue) 91 { 92 ostringstream oss; 93 oss << "CAttribut& CAttribut<Ctype>::operator Ctype , access to undefined value of attribut <<" << this->getName() <<">>"; 94 95 throw XMLIOUndefinedValueException(oss.str()); 96 } 97 value_=value ; 98 } 99 100 }; // class Attribut 101 }; // namespace XMLIOSERVER 61 102 62 #endif 103 #endif //__ATTRIBUT__ -
XMLIO_V2/dev/trunk/src/XMLIO/attribut_registrar.hpp
r79 r98 1 #ifndef ATTRIBUT_REGISTRAR_HPP2 #define ATTRIBUT_REGISTRAR_HPP1 #ifndef __ATTRIBUT_REGISTRAR__ 2 #define __ATTRIBUT_REGISTRAR__ 3 3 4 #include "base_attribut.hpp" 5 #include "xmlio_std.hpp" 4 #include "attribut.hpp" 6 5 7 class CAttributRegistrar 6 namespace XMLIOSERVER 8 7 { 9 public : 10 11 12 void RegisterAttribut(CBaseAttribut & attribut) ; 13 ostream & PrintAttribut(ostream & o) ; 8 class AttributRegistrar 9 { 10 public : 11 12 AttributRegistrar():attrList() 13 {/* Ne rien faire de plus */} 14 15 void RegisterAttribut(BaseAttribut* attribut){ attrList.addObject(attribut); } 16 StrHashMap<BaseAttribut>& getAttributList(void) { return (attrList); } 17 size_t getNbAttributes() const {return (attrList.getSize()); } 18 bool hasAttribut(const string _id) { return (attrList.hasMappedValue(_id)); } 19 20 BaseAttribut* getAttribut(const string _id) throw (XMLIOUndefinedValueException) { return (attrList[_id]); } 21 22 void setSAttribut(const string& att_name, const std::string& value) 23 { 24 //std::cout << "Attribut :" << att_name<< ", " << value<< std::endl; 14 25 15 unordered_map<string,CBaseAttribut *> attrMap ; 16 vector<CBaseAttribut *> attrVector ; 17 18 bool hasAttribut(const string& att_name) 19 { 20 if (attrMap.find(att_name)!=attrMap.end()) return true ; 21 else return false ; 22 } 23 24 template <class ValueType> 25 void setAttribut(const string& att_name, ValueType value) 26 { 27 unordered_map<string,CBaseAttribut *>::iterator it ; 28 29 it=attrMap.find(att_name) ; 30 if (it!=attrMap.end()) (*it).second->setValue(value) ; 31 else error("CAttributRegistrar::setAttribut<ValueType>") 32 <<"Could not find <<"<<att_name<<">> attribut in registred list"<<endl ; 33 34 } 35 36 } ; 37 38 inline void CAttributRegistrar::RegisterAttribut(CBaseAttribut& Attribut) 39 { 40 attrMap.insert(make_pair(Attribut.getName(),&Attribut)) ; 41 attrVector.push_back(&Attribut) ; 42 } 43 44 inline ostream & CAttributRegistrar::PrintAttribut(ostream& o) 45 { 46 vector<CBaseAttribut *>::iterator it ; 47 o<<"List of attribut"<<IncIndent ; 48 for(it=attrVector.begin(); it!=attrVector.end();it++) 49 { 50 o<<iendl ; 51 (*it)->print(o) ; 52 } 53 o<<DecIndent ; 54 return o ; 55 } 26 if (hasAttribut(att_name)) 27 { getAttribut(att_name)->setFromString(value) ; } 28 else 29 { 30 ostringstream oss; 31 oss << "CAttributRegistrar::setAttribut<ValueType>, could not find <<" << att_name <<">> attribut in registred list" <<">>"; 32 throw XMLIOUndefinedValueException(oss.str()); 33 } 34 } 35 36 friend ostream& operator<< (ostream& out, const AttributRegistrar& c) 37 { out << c.toString(); return (out);} 38 39 protected : 40 41 string toString(void) const 42 { 43 ostringstream st("A réimplémenter"); 44 // A compléter 45 return (st.str()); 46 } 47 48 public : 49 50 ~AttributRegistrar(void) 51 {/* Ne rien faire de plus */} 52 53 private : 54 StrHashMap<BaseAttribut> attrList; 55 56 }; // class AttributRegistrar 57 }; // namespace XMLIOSERVER 56 58 57 59 58 #endif 60 #endif //__ATTRIBUT_REGISTRAR__ -
XMLIO_V2/dev/trunk/src/XMLIO/base_attribut.hpp
r79 r98 1 #ifndef BASE_ATTRIBUT_HPP 2 #define BASE_ATTRIBUT_HPP 3 #include "xmlio_std.hpp" 1 #ifndef __BASE_ATTRIBUT__ 2 #define __BASE_ATTRIBUT__ 4 3 5 class CBaseAttribut 6 { 7 public: 8 9 virtual const char * getName(void) const = 0 ; 10 11 virtual ostream & print(ostream& o) const = 0 ; 12 13 friend ostream& operator <<(ostream& o,const CBaseAttribut& Attr) 14 { 15 return Attr.print(o) ; 16 } 17 18 19 virtual void setValue(const int & value) { error_set() ; } 20 virtual void setValue(const Array<int,1>& value) { error_set() ; } 21 virtual void setValue(const Array<int,2>& value) { error_set() ; } 22 virtual void setValue(const Array<int,3>& value) { error_set() ; } 23 24 virtual void setValue(const double & value) { error_set() ; } 25 virtual void setValue(const Array<double,1>& value) { error_set() ; } 26 virtual void setValue(const Array<double,2>& value) { error_set() ; } 27 virtual void setValue(const Array<double,3>& value) { error_set() ; } 28 29 virtual void setValue(const bool & value) { error_set() ; } 30 virtual void setValue(const Array<bool,1>& value) { error_set() ; } 31 virtual void setValue(const Array<bool,2>& value) { error_set() ; } 32 virtual void setValue(const Array<bool,3>& value) { error_set() ; } 33 34 virtual void setValue(const char * value) { error_set() ; } 35 virtual void setValue(const string & value) { error_set() ; } 36 virtual void setValue(const Array<string,1>& value) { error_set() ; } 37 virtual void setValue(const Array<string,2>& value) { error_set() ; } 38 virtual void setValue(const Array<string,3>& value) { error_set() ; } 39 40 virtual void setValue(const char & value) { error_set() ; } 41 virtual void setValue(const Array<char,1>& value) { error_set() ; } 42 virtual void setValue(const Array<char,2>& value) { error_set() ; } 43 virtual void setValue(const Array<char,3>& value) { error_set() ; } 4 using std::ostream; 5 using namespace blitz ; 44 6 45 7 46 virtual void getValue(int & value) const { error_get() ; } 47 virtual void getValue(Array<int,1>& value) const { error_get() ; } 48 virtual void getValue(Array<int,2>& value) const { error_get() ; } 49 virtual void getValue(Array<int,3>& value) const { error_get() ; } 8 using XMLIOSERVER::XMLIOIncompatibeTypeException; 9 10 namespace XMLIOSERVER 11 { 12 class BaseAttribut 13 { 14 public: 15 16 virtual const char * getName(void) const = 0 ; 17 18 virtual ostream & print(ostream& o) const = 0 ; 19 20 friend ostream& operator <<(ostream& o,const BaseAttribut& Attr) 21 {return Attr.print(o) ; } 22 23 virtual const char * getId(void) {return getName();} ; 24 bool hasId(void){return (true);} 25 26 virtual void setFromString(const std::string str) = 0; 27 28 virtual void setValue(const int & value) { error_set() ; } 29 virtual void setValue(const Array<int,1>& value) { error_set() ; } 30 virtual void setValue(const Array<int,2>& value) { error_set() ; } 31 virtual void setValue(const Array<int,3>& value) { error_set() ; } 32 33 virtual void setValue(const double & value) { error_set() ; } 34 virtual void setValue(const Array<double,1>& value) { error_set() ; } 35 virtual void setValue(const Array<double,2>& value) { error_set() ; } 36 virtual void setValue(const Array<double,3>& value) { error_set() ; } 37 38 virtual void setValue(const bool & value) { error_set() ; } 39 virtual void setValue(const Array<bool,1>& value) { error_set() ; } 40 virtual void setValue(const Array<bool,2>& value) { error_set() ; } 41 virtual void setValue(const Array<bool,3>& value) { error_set() ; } 42 43 virtual void setValue(const char * value) { error_set() ; } 44 virtual void setValue(const string & value) { error_set() ; } 45 virtual void setValue(const Array<string,1>& value) { error_set() ; } 46 virtual void setValue(const Array<string,2>& value) { error_set() ; } 47 virtual void setValue(const Array<string,3>& value) { error_set() ; } 48 49 virtual void setValue(const char & value) { error_set() ; } 50 virtual void setValue(const Array<char,1>& value) { error_set() ; } 51 virtual void setValue(const Array<char,2>& value) { error_set() ; } 52 virtual void setValue(const Array<char,3>& value) { error_set() ; } 53 54 55 virtual void getValue(int & value) const { error_get() ; } 56 virtual void getValue(Array<int,1>& value) const { error_get() ; } 57 virtual void getValue(Array<int,2>& value) const { error_get() ; } 58 virtual void getValue(Array<int,3>& value) const { error_get() ; } 59 60 virtual void getValue(double & value) const { error_get() ; } 61 virtual void getValue(Array<double,1>& value) const { error_get() ; } 62 virtual void getValue(Array<double,2>& value) const { error_get() ; } 63 virtual void getValue(Array<double,3>& value) const { error_get() ; } 64 65 virtual void getValue(bool & value) const { error_get() ; } 66 virtual void getValue(Array<bool,1>& value) const { error_get() ; } 67 virtual void getValue(Array<bool,2>& value) const { error_get() ; } 68 virtual void getValue(Array<bool,3>& value) const { error_get() ; } 69 70 virtual void getValue(char * value) const { error_get() ; } 71 virtual void getValue(string & value) const { error_get() ; } 72 virtual void getValue(Array<string,1>& value) const { error_get() ; } 73 virtual void getValue(Array<string,2>& value) const { error_get() ; } 74 virtual void getValue(Array<string,3>& value) const { error_get() ; } 75 76 virtual void getValue(char & value) const { error_get() ; } 77 virtual void getValue(Array<char,1>& value) const { error_get() ; } 78 virtual void getValue(Array<char,2>& value) const { error_get() ; } 79 virtual void getValue(Array<char,3>& value) const { error_get() ; } 80 81 static void error_set(void) 82 { 83 throw XMLIOIncompatibeTypeException("BaseAttribut::set<type> > Setting value type is incompatible with attribut type"); 84 } 85 86 static void error_get(void) 87 { 88 throw XMLIOIncompatibeTypeException("BaseAttribut::set<type> >Getting value type is incompatible with attribut type"); 89 } 90 }; //class BaseAttribut 91 } // namespace XMLIOSERVER 92 93 #endif //__BASE_ATTRIBUT__ 50 94 51 virtual void getValue(double & value) const { error_get() ; }52 virtual void getValue(Array<double,1>& value) const { error_get() ; }53 virtual void getValue(Array<double,2>& value) const { error_get() ; }54 virtual void getValue(Array<double,3>& value) const { error_get() ; }55 56 virtual void getValue(bool & value) const { error_get() ; }57 virtual void getValue(Array<bool,1>& value) const { error_get() ; }58 virtual void getValue(Array<bool,2>& value) const { error_get() ; }59 virtual void getValue(Array<bool,3>& value) const { error_get() ; }60 61 virtual void getValue(char * value) const { error_get() ; }62 virtual void getValue(string & value) const { error_get() ; }63 virtual void getValue(Array<string,1>& value) const { error_get() ; }64 virtual void getValue(Array<string,2>& value) const { error_get() ; }65 virtual void getValue(Array<string,3>& value) const { error_get() ; }66 67 virtual void getValue(char & value) const { error_get() ; }68 virtual void getValue(Array<char,1>& value) const { error_get() ; }69 virtual void getValue(Array<char,2>& value) const { error_get() ; }70 virtual void getValue(Array<char,3>& value) const { error_get() ; }71 72 static void error_set(void)73 {74 error("CBaseAttribut::set<type>")<<"Setting value type is incompatible"75 <<" with attribut type"<<endl ;76 }77 78 static void error_get(void)79 {80 error("CBaseAttribut::set<type>")<<"Getting value type is incompatible"81 <<" with attribut type"<<endl ;82 }83 } ;84 85 #endif86 -
XMLIO_V2/dev/trunk/src/XMLIO/context.hpp
r79 r98 1 #ifndef CONTEXT_HPP2 #define CONTEXT_HPP1 #ifndef __CONTEXT__ 2 #define __CONTEXT__ 3 3 4 5 namespace XMLIOSERVER 6 { 7 class Context : public ObjectTemplate<Context> 8 { 9 public: 10 11 Context(void) : ObjectTemplate<Context>() 12 {/* Ne rien faire de plus */} 13 Context(const string& _id) : ObjectTemplate<Context>(_id) 14 {/* Ne rien faire de plus */} 15 16 static void SetCurrentContext(const string& id) 17 { 18 // On modifie le context courrant pour tout les ObjectTemplate 19 Context::SetContext(id); 20 FieldGroup::SetContext(id); 21 Field::SetContext(id); 22 } 23 24 void parse (XMLNode& _node) 25 { 26 THashAttributes attributes; 27 28 /// PARSING POUR GESTION DES ENFANTS 29 if (_node.getElementName().compare(string("context"))) 30 WARNING("Le noeud est mal nommé mais sera traité comme un context !"); 31 32 if (!(_node.goToChildElement())) 33 WARNING("Le context ne contient pas d'enfant !"); 34 else 35 { 36 ////////////////////////////////////// 37 do { // Parcours des contexts pour traitement. 38 39 string name = _node.getElementName(); 40 attributes.clear(); 41 _node.getAttributes(attributes); 42 43 if (attributes.end() != attributes.find("id")) 44 { WARNING("Le noeud de définition possÚde un identifiant, ce dernier ne sera pas pris en compte lors du traitement !"); } 45 46 if (name.compare("field_definition") == 0) 47 { // Parsing pour la définition des champs. 48 49 if (FieldDefinition::HasObject("field_definition")) 50 WARNING("Le context possÚde déjà un noeud de définition de champs, le dernier défini complétera le premier !"); 51 52 fieldDef = (FieldDefinition*)&FieldDefinition::CreateObject("field_definition"); // << Conversion possible car la classe Field n'a pas de propriétés. 53 fieldDef->parse(_node); 4 54 55 continue; 56 } 57 else if (name.compare("file_definition") == 0) 58 { // Parsing pour la définition des fichiers. 59 INFO("Le parsing des définitions de fichiers n'est pas encore implémenté"); 60 } 61 else if (name.compare("axis_definition") == 0) 62 { // Parsing pour la définition des axes. 63 INFO("Le parsing des définitions d'axes n'est pas encore implémenté"); 64 } 65 else if (name.compare("grid_definition") == 0) 66 { // Parsing pour la définition des grilles. 67 INFO("Le parsing des définitions de grilles n'est pas encore implémenté"); 68 } 69 else 70 WARNING("La définition est invalide, seules les champs, grilles, axes et fichiers peuvent être définis !"); 71 72 73 // Traitement file, grid et axis à compléter. 74 } while (_node.goToNextElement()); 75 ////////////////////////////////////// 76 _node.goToParentElement(); // Retour au parent 77 } 78 79 return; 80 } 81 82 virtual const char* getName(void) const {return ("Context"); } 83 84 FieldDefinition* getFieldDefinition(void) { return (this->fieldDef); } 85 86 ~Context() 87 { delete fieldDef; } 88 89 protected: 90 91 private: 92 93 FieldDefinition* fieldDef; 94 /*FileDefinition* fileDef; 95 AxisDefinition* axisDef; 96 GridDefinition* gridDef;*/ 5 97 98 99 }; //class Context 100 }// namespace XMLIOSERVER 6 101 7 8 9 10 11 12 13 14 #endif 102 #endif // __CONTEXT__ -
XMLIO_V2/dev/trunk/src/XMLIO/declare_attribut.hpp
r79 r98 1 #ifndef DECLARE_ATTRIBUT_HPP 2 #define DECLARE_ATTRIBUT_HPP 1 #ifndef __DECLARE_ATTRIBUT__ 2 #define __DECLARE_ATTRIBUT__ 3 3 4 #include "attribut.hpp" 4 5 5 #define DECLARE_ATTR(att_name,att_type) \ 6 class attr_##att_name : public CAttribut<att_type> \ 7 { \ 8 public: \ 9 const char * getName(void) const { return #att_name ;} ; \ 10 attr_##att_name(void) : CAttribut<att_type>() {} ; \ 11 attr_##att_name(const att_type& value_) : CAttribut<att_type>(value_) {} ; \ 12 attr_##att_name(const attr_##att_name & att) : CAttribut<att_type>(att) {} ; \ 13 } att_name 6 #define DECLARE_ATTR(att_name,att_type) \ 7 class attr_##att_name : public Attribut<att_type> \ 8 { \ 9 public: \ 10 const char * getName(void) const { return #att_name ;} \ 11 virtual const char * getType(void) const { return #att_type ;} \ 12 attr_##att_name(void) : Attribut<att_type>() {} \ 13 attr_##att_name(const att_type& value_) : Attribut<att_type>(value_) {} \ 14 attr_##att_name(const attr_##att_name & att) : Attribut<att_type>(att) {} \ 15 } att_name 14 16 15 #endif 17 #endif // __DECLARE_ATTRIBUT__ -
XMLIO_V2/dev/trunk/src/XMLIO/field.hpp
r79 r98 1 #ifndef FIELD_HPP2 #define FIELD_HPP1 #ifndef __FIELD__ 2 #define __FIELD__ 3 3 4 #include "base_object.hpp" 5 #include "object_template.hpp" 6 #include "xmlio_std.hpp" 4 using XMLIOSERVER::XML::XMLNode; 5 using XMLIOSERVER::XML::THashAttributes; 7 6 7 namespace XMLIOSERVER 8 { 9 class Field : public ObjectTemplate<Field>, public FieldAttribut 10 { 11 public: 12 Field(void) : ObjectTemplate<Field>(), FieldAttribut() 13 {/* Ne rien faire de plus */} 14 Field(const string& _id) : ObjectTemplate<Field>(_id), FieldAttribut() 15 {/* Ne rien faire de plus */} 16 17 void setAttributes(const THashAttributes& attr) 18 { 19 for (THashAttributes::ConstIterator it = attr.begin(); it != attr.end(); it++) 20 if ((*it).first.compare(string("id"))) // Non prise en compte de l'identifiant lors de l'affectation des attributs. 21 this->setSAttribut((*it).first, (*it).second); 22 23 return; 24 } 25 26 virtual const char* getName(void) const {return ("Field"); } 8 27 9 class Field : public CObjectTemplate<Field>, public CFieldAttribut 10 { 11 public: 12 13 Field(void) : CObjectTemplate<Field>() {} ; 14 Field(const string & Id) : CObjectTemplate<Field>(Id) {} ; 15 static const char * getName(void) { return "field" ; } 16 }; 17 18 19 #endif 28 void parse (XMLNode& _node) 29 { 30 string name = _node.getElementName(); 31 THashAttributes attributes; 32 33 /// PARSING GESTION DES ATTRIBUTS /// 34 _node.getAttributes(attributes); 35 this->setAttributes(attributes); 36 attributes.clear(); 37 38 /// PARSING POUR GESION DES ENFANTS 39 // Rien à faire. 40 41 return; 42 } 43 44 ~Field(void) 45 { /* Ne rien faire de plus */ } 46 47 }; // class Field 48 49 }; // namespace XMLIOSERVER 50 51 #endif // __FIELD__ -
XMLIO_V2/dev/trunk/src/XMLIO/field_attribut.hpp
r79 r98 1 #ifndef FIELD_ATTRIBUT_HPP2 #define FIELD_ATTRIBUT_HPP1 #ifndef __FIELD_ATTRIBUT__ 2 #define __FIELD_ATTRIBUT__ 3 3 4 #include "declare_attribut.hpp" 4 5 #include "attribut_registrar.hpp" 5 #include "attribut.hpp"6 #include "declare_attribut.hpp"7 6 8 class CFieldAttribut : public virtual CAttributRegistrar 7 namespace XMLIOSERVER 9 8 { 10 public : 9 class FieldAttribut : public virtual AttributRegistrar 10 { 11 public : 12 13 DECLARE_ATTR(name, string) ; 14 DECLARE_ATTR(description, string) ; 15 DECLARE_ATTR(unit, string) ; 16 DECLARE_ATTR(operation, string); 17 18 DECLARE_ATTR(freq_op, int) ; 19 DECLARE_ATTR(level, int) ; 20 DECLARE_ATTR(prec, int) ; 21 22 DECLARE_ATTR(src, string) ; // TEMPORAIRE, pour fieldgroup uniquement 23 24 DECLARE_ATTR(enabled, bool); 25 26 DECLARE_ATTR(axis_ref, string); 27 DECLARE_ATTR(grid_ref, string); 28 DECLARE_ATTR(zoom_ref, string); 29 DECLARE_ATTR(field_ref, string); 30 31 FieldAttribut(void) 32 { registerAllAttributes(); } 33 34 void registerAllAttributes(void) 35 { 36 RegisterAttribut(&name) ; 37 RegisterAttribut(&description) ; 38 RegisterAttribut(&unit) ; 39 RegisterAttribut(&operation); 40 41 RegisterAttribut(&src);// TEMPORAIRE, pour fieldgroup uniquement 42 43 RegisterAttribut(&freq_op) ; 44 RegisterAttribut(&level) ; 45 RegisterAttribut(&prec) ; 46 RegisterAttribut(&enabled); 47 48 RegisterAttribut(&axis_ref); 49 RegisterAttribut(&grid_ref); 50 RegisterAttribut(&zoom_ref); 51 RegisterAttribut(&field_ref); 52 } 53 54 } ; // class CFieldAttribut 11 55 12 DECLARE_ATTR(name,string) ; 13 DECLARE_ATTR(level,int) ; 14 15 CFieldAttribut(void) 16 { 17 RegisterAttribut(name) ; 18 RegisterAttribut(level) ; 19 } 20 21 } ; 56 }// namespace XMLIOSERVER 22 57 23 #endif 58 #endif //__FIELD_ATTRIBUT__ -
XMLIO_V2/dev/trunk/src/XMLIO/main_cpp.cpp
r79 r98 1 #include "field_attribut.hpp" 2 #include "field.hpp" 3 #include "group_template.hpp" 4 #include "xmlio_std.hpp" 1 #include "xmlio.hpp" 5 2 3 using namespace XMLIOSERVER; 4 using namespace XMLIOSERVER::XML; 5 using namespace std; 6 6 7 7 extern "C" void main_c_(void) ; 8 8 9 10 void main_c_(void) 9 void main_c_ (void) 11 10 { 12 try 13 { 14 group<Field>* FirstGroup=new group<Field>("1") ; 15 group<Field> * MyGroup=FirstGroup->getNewGroup("group"); 16 Field* MyField=MyGroup->getNewChild("toto") ; 17 MyField->setAttribut("name",string("titi")) ; 18 MyField->setAttribut("level",10) ; 19 20 MyField=MyGroup->getNewChild("tata") ; 21 MyField->setAttribut("name",string("tutu")) ; 22 MyField->setAttribut("level",25) ; 23 24 MyField=MyGroup->getOrAppendChild("tete") ; 25 MyField->setAttribut("level",1) ; 26 27 MyField=MyGroup->getChild("toto") ; 28 MyField->setAttribut("level",11) ; 29 30 MyField->level=1 ; 31 32 FirstGroup->Print() ; 33 StdOut<<iendl; 34 StdOut<<"This is the end"<<iendl ; 35 } 36 catch(ex_error x) 37 { 38 StdOut<<x.what<<endl ; 39 } 40 } 11 try 12 { 13 XMLParser::CLASS_TEST(); 14 // Code à executer ici 15 } 16 catch(const XMLIOException &exc) 17 { // Pour tout type d'exceptions, on note les informations sur la sortie paramétrée. 18 ERROR(exc.displayText()); 19 // On retourne le code d'erreur en fin d'application pour traitements éventuels. 20 // return (exc.code()); 21 } 22 23 // return (0); 24 } -
XMLIO_V2/dev/trunk/src/XMLIO/xmlio_exception.hpp
r79 r98 1 #ifndef XMLIO_EXCEPTION_HPP2 #define XMLIO_EXCEPTION_HPP1 #ifndef __XMLIO_EXCEPTION__ 2 #define __XMLIO_EXCEPTION__ 3 3 4 #include <sstream> 5 #include "xmlio_std.hpp" 6 using namespace std ; 4 // Classes utilisées issues de la STL 5 using std::string; 7 6 8 class ex_error 7 // Classes utilisées issues de Poco 8 using Poco::Exception; 9 10 namespace XMLIOSERVER 9 11 { 10 public : 11 string what ; 12 ex_error(const string & what_ ) : what(what_) {} ; 13 } ; 12 class XMLIOException : public Exception 13 { 14 public : 15 16 XMLIOException(int _code): Exception(_code) 17 { /* Ne rien faire de plus */ } 18 XMLIOException(const std::string& _msg, int _code): Exception(_msg, _code) 19 { /* Ne rien faire de plus */ } 20 XMLIOException(const std::string& _msg, const std::string& _arg, int _code): Exception(_msg, _arg, _code) 21 { /* Ne rien faire de plus */ } 22 XMLIOException(const std::string& _msg, const Poco::Exception& _exc, int _code): Exception(_msg, _exc, _code) 23 { /* Ne rien faire de plus */ } 24 25 26 XMLIOException(const XMLIOException& _exc): Exception(_exc) 27 { /* Ne rien faire de plus */ } 28 29 ~XMLIOException() throw() 30 { /* Ne rien faire de plus */ } 31 32 XMLIOException& operator = (const XMLIOException& _exc) 33 { Exception::operator = (_exc); return *this; } 34 35 virtual const char* name(void) const throw() { return ("XMLIO>XMLIOException"); } 36 virtual const char* className(void) const throw() { return (typeid(*this).name()); } 37 38 virtual Exception* clone(void) const { return new XMLIOException(*this); } 39 virtual void rethrow(void) const { throw *this; } 40 41 };// class XMLIOException 42 43 class XMLIOUndefinedValueException : public XMLIOException 44 { 45 public : 46 XMLIOUndefinedValueException(const std::string& _msg): XMLIOException(_msg, 1001) {} 47 const char* name(void) const throw() { return ("XMLIO>UndefinedValueException"); } 48 49 }; //class XMLIOUndefinedException 50 51 class XMLIOStreamException : public XMLIOException 52 { 53 public : 54 XMLIOStreamException(const std::string& _msg): XMLIOException(_msg, 1002) {} 55 const char* name(void) const throw() { return ("XMLIO>StreamException"); } 56 57 }; //class XMLIOStreamException 58 59 class XMLParsingException : public XMLIOException 60 { 61 public : 62 XMLParsingException(const std::string& _msg): XMLIOException(_msg, 1003) {} 63 const char* name(void) const throw() { return ("XMLIO>XMLParsingException"); } 64 65 }; //class XMLParsingException 66 67 class XMLIOIncompatibeTypeException : public XMLIOException 68 { 69 public : 70 XMLIOIncompatibeTypeException(const std::string& _msg): XMLIOException(_msg, 1003) {} 71 const char* name(void) const throw() { return ("XMLIO>XMLIOIncompatibeTypeException"); } 72 73 }; //class XMLIOIncompatibeTypeException 74 75 // A compléter. 76 77 };// namespace XMLIOSERVER 14 78 15 //class error; 16 //ostringstream & operator << (const error & err,char const * str) ; 17 //ostringstream & operator << (const error & err,const string & str) ; 18 19 20 class error : public ostringstream 21 { 22 public : 23 24 error(const string & where) : ostringstream() 25 { 26 *this<<"*** Error **** in function : "<<where<<endl<<"------> "<<string("toto") ; 27 } ; 28 29 error(const char * where) : ostringstream() 30 { 31 *this<<"Error in function : "<<where<<endl<<"------> " ; 32 } ; 33 34 ~error() 35 { 36 StdErr<< this->str() <<endl ; 37 throw(ex_error(this->str())) ; 38 } ; 39 40 ostringstream & operator << (char const * str) const 41 { 42 ostringstream * tmp=const_cast <error *>(this) ; 43 *tmp<<str ; 44 return *tmp ; 45 } ; 46 47 ostringstream & operator << (const string& str) const 48 { 49 ostringstream * tmp=const_cast <error *>(this) ; 50 *tmp<<str ; 51 return *tmp ; 52 } ; 53 54 } ; 55 56 class warning : public ostringstream 57 { 58 public : 59 60 warning(const string & where) : ostringstream() 61 { 62 *this<<"*** Warning **** in function : "<<where<<endl<<"------> "; 63 } ; 64 65 warning(const char * where) : ostringstream() 66 { 67 *this<<"Error in function : "<<where<<endl<<"------> " ; 68 } ; 69 70 ~warning() 71 { 72 StdErr<< this->str() <<endl ; 73 } ; 74 75 ostringstream & operator << (char const * str) const 76 { 77 ostringstream * tmp=const_cast <warning *>(this) ; 78 *tmp<<str ; 79 return *tmp ; 80 } ; 81 82 ostringstream & operator << (const string& str) const 83 { 84 ostringstream * tmp=const_cast <warning *>(this) ; 85 *tmp<<str ; 86 return *tmp ; 87 } ; 88 89 } ; 90 91 92 #endif 79 #endif // __XMLIO_EXCEPTION__
Note: See TracChangeset
for help on using the changeset viewer.