Changeset 274 for XMLIO_V2/dev/common/src/xmlio/node/variable.cpp
- Timestamp:
- 09/15/11 10:19:26 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XMLIO_V2/dev/common/src/xmlio/node/variable.cpp
r268 r274 16 16 : CObjectTemplate<CVariable>() 17 17 , CVariableAttributes() 18 , content() 18 19 { /* Ne rien faire de plus */ } 19 20 … … 21 22 : CObjectTemplate<CVariable>(id) 22 23 , CVariableAttributes() 24 , content() 23 25 { /* Ne rien faire de plus */ } 24 26 … … 30 32 ENodeType CVariable::GetType(void) { return (eVariable); } 31 33 34 void CVariable::parse(xml::CXMLNode & node) 35 { 36 SuperClass::parse(node); 37 StdString id = (this->hasId()) ? this->getId() : StdString("undefined"); 38 if (!node.getContent(this->content)) 39 { 40 ERROR("CVariable::parse(xml::CXMLNode & node)", 41 << "[ variable id = " << id 42 << " ] variable is not defined !"); 43 } 44 } 45 46 const StdString & CVariable::getContent (void) const 47 { 48 return (this->content); 49 } 50 51 StdString CVariable::toString(void) const 52 { 53 StdOStringStream oss; 54 55 oss << "<" << CVariable::GetName() << " "; 56 if (this->hasId()) 57 oss << " id=\"" << this->getId() << "\" "; 58 oss << SuperClassAttribute::toString() << ">" << std::endl 59 << this->content /*<< std::endl*/; 60 oss << "</" << CVariable::GetName() << " >"; 61 return (oss.str()); 62 } 63 64 void CVariable::toBinary(StdOStream & os) const 65 { 66 const StdString & content = this->content; 67 const StdSize size = content.size(); 68 SuperClass::toBinary(os); 69 70 os.write (reinterpret_cast<const char*>(&size), sizeof(StdSize)); 71 os.write (content.data(), size * sizeof(char)); 72 } 73 74 void CVariable::fromBinary(StdIStream & is) 75 { 76 SuperClass::fromBinary(is); 77 StdSize size = 0; 78 is.read (reinterpret_cast<char*>(&size), sizeof(StdSize)); 79 this->content.assign(size, ' '); 80 is.read (const_cast<char *>(this->content.data()), size * sizeof(char)); 81 } 82 83 void CVariableGroup::parse(xml::CXMLNode & node, bool withAttr) 84 { 85 boost::shared_ptr<CVariableGroup> group_ptr = (this->hasId()) 86 ? CObjectFactory::GetObject<CVariableGroup>(this->getId()) 87 : CObjectFactory::GetObject(this); 88 89 StdString content; 90 if (this->getId().compare(CVariableGroup::GetDefName()) != 0 && node.getContent(content)) 91 { 92 StdSize beginid = 0, endid = 0, begindata = 0, enddata = 0; 93 StdString subdata, subid; 94 95 while ((beginid = content.find_first_not_of ( " \r\n\t;", enddata)) != StdString::npos) 96 { 97 endid = content.find_first_of ( " \r\n\t=", beginid ); 98 subid = content.substr ( beginid, endid-beginid); 99 100 begindata = content.find_first_of ( "=", endid ) + 1; 101 enddata = content.find_first_of ( ";", begindata ); 102 subdata = content.substr ( begindata, enddata-begindata); 103 104 //std::cout << "\"" << subid << "\":\"" << subdata << "\"" << std::endl; 105 CGroupFactory::CreateChild(group_ptr, subid)->content = subdata; 106 } 107 } 108 else 109 { 110 SuperClass::parse(node, withAttr); 111 } 112 //SuperClass::parse(node, withAttr); 113 114 } 115 32 116 } // namespace tree 33 117 } // namespace xmlioserver
Note: See TracChangeset
for help on using the changeset viewer.