YUMPrimaryParser.cc

Go to the documentation of this file.
00001 /*---------------------------------------------------------------------\
00002 |                          ____ _   __ __ ___                          |
00003 |                         |__  / \ / / . \ . \                         |
00004 |                           / / \ V /|  _/  _/                         |
00005 |                          / /__ | | | | | |                           |
00006 |                         /_____||_| |_| |_|                           |
00007 |                                                                      |
00008 \---------------------------------------------------------------------*/
00009 
00010 
00011 #include "zypp/parser/yum2/YUMPrimaryParser.h"
00012 #include "zypp/data/ResolvableData.h"
00013 
00015 namespace zypp
00016 { 
00017 namespace parser
00018 { 
00019 namespace yum2
00020 { 
00021 
00022     YUMPrimaryParser::YUMPrimaryParser( zypp::data::ResolvableDataConsumer &consumer )
00023     {
00024       _consumer.reset(&consumer);
00025     }
00026     
00027     void YUMPrimaryParser::startElement(const std::string name, const xmlChar **atts)
00028     {
00029       if ( name == "package" )
00030         _package.reset(new zypp::data::Package());
00031     }
00032   
00033     void YUMPrimaryParser::characters(const xmlChar *ch, int len)
00034     {
00035       //MIL << "append buffer :" << len << " [" << ( (len < 20) ? string((const char *)(ch), len) : "" ) << "]" << std::endl;
00036       _buffer.append( (const char *)ch, len);
00037     }
00038   
00039     void YUMPrimaryParser::endElement(const std::string name)
00040     {
00041       if ( name == "name" )
00042         _package->name = _buffer;
00043       if ( name == "arch" )
00044         _package->arch = Arch(_buffer);
00045   
00046       if ( name == "package" )
00047       {
00048         _consumer->consumePackage(*_package);
00049       }
00050   
00051       _buffer.clear();
00052     }
00053  
00054 
00055 } // namespace yum2
00056 } // namespace parser
00057 } // namespace zypp
00059 

Generated on Tue Nov 28 16:49:30 2006 for zypp by  doxygen 1.5.0