LDADD = $(top_srcdir)/zypp/lib@PACKAGE@.la
-noinst_PROGRAMS = YUMtest
+noinst_PROGRAMS = YUMtest ProductMetadataParserTest
YUMtest_SOURCES = YUMtest.cc
+ProductMetadataTest_SOURCES = ProductMetadataParserTest.cc
+
EXTRA_DIST = lib/*.exp config/*.exp $(PACKAGE).test/*.exp
clean-local:
ParseException.h\
Tags.h \
Grammar.h \
- Parser.h
+ Parser.h \
+ ProductMetadataParser.h
noinst_LTLIBRARIES = lib@PACKAGE@_parser_tagfile.la
lib@PACKAGE@_parser_tagfile_la_SOURCES = \
ParseException.cc\
Tags.cc \
- Parser.cc
+ Parser.cc \
+ ProductMetadataParser.cc
-lib@PACKAGE@_parser_tagfile_la_LIBADD =
+lib@PACKAGE@_parser_tagfile_la_LIBADD =
## ##################################################
/**
* Stores a Resolvable in the active backend.
*/
- virtual void storeObject( Resolvable::Ptr resolvable ) = 0;
+ virtual void storeObject( Resolvable::constPtr resolvable ) = 0;
/**
* Deletes a Resolvable from the active backend.
*/
}
void
-PersistentStorage::storeObject( Resolvable::Ptr resolvable )
+PersistentStorage::storeObject( Resolvable::constPtr resolvable )
{
d->backend->storeObject(resolvable);
}
/**
* Stores a Resolvable in the active backend.
*/
- void storeObject( Resolvable::Ptr resolvable );
+ void storeObject( Resolvable::constPtr resolvable );
/**
* Deletes a Resolvable from the active backend.
*/
}
std::string
-XMLFilesBackend::dirForResolvable( Resolvable::Ptr resolvable ) const
+XMLFilesBackend::dirForResolvable( Resolvable::constPtr resolvable ) const
{
return dirForResolvableKind(resolvable->kind());
}
std::string
-XMLFilesBackend::fullPathForResolvable( Resolvable::Ptr resolvable ) const
+XMLFilesBackend::fullPathForResolvable( Resolvable::constPtr resolvable ) const
{
std::string filename;
filename = dirForResolvable(resolvable) + "/";
}
void
-XMLFilesBackend::storeObject( Resolvable::Ptr resolvable )
+XMLFilesBackend::storeObject( Resolvable::constPtr resolvable )
{
std::string xml = castedToXML(resolvable);
std::string filename = fullPathForResolvable(resolvable);
return storedObjects();
}
-std::string
-XMLFilesBackend::randomFileName() const
-{
- FILE *fp;
- char puffer[49];
- if ( (fp = popen("openssl rand -base64 48", "r")) == 0)
- {
- DBG << "mierda!" << std::endl;
- //ZYPP_THROW("put some message here");
- }
- fscanf(fp, "%s", &puffer);
- pclose(fp);
- return "blah";
-}
-
///////////////////////////////////////////////////////////////////
//
// METHOD NAME : XMLFilesBackend::~XMLFilesBackend
/**
* Stores a Resolvable in the active backend.
*/
- virtual void storeObject( Resolvable::Ptr resolvable ) ;
+ virtual void storeObject( Resolvable::constPtr resolvable ) ;
/**
* Deletes a Resolvable from the active backend.
*/
std::string randomString(int length) const;
int random() const;
- std::string randomFileName() const;
/**
* Directory where the xml file is stored (for the given resolvable)
*/
- std::string dirForResolvable( Resolvable::Ptr resolvable ) const;
+ std::string dirForResolvable( Resolvable::constPtr resolvable ) const;
/**
* Directory where the xml file is stored (for the given resolvable kind)
*/
* Full path to the xml file for a given resolvable
* Does not care if the resolvable is yet stored or not
*/
- std::string fullPathForResolvable( Resolvable::Ptr resolvable ) const;
+ std::string fullPathForResolvable( Resolvable::constPtr resolvable ) const;
/**
* Full path to the xml file for a given resolvable
* Does not care if the resolvable is yet stored or not
}
template<class T>
-std::string toXML( T obj ); //undefined
+std::string toXML( const T &obj ); //undefined
template<> // or constPtr?
std::string toXML( const Edition &edition )
}
template<> // or constPtr?
-std::string toXML( Capability &cap )
+std::string toXML( const Capability &cap )
{
stringstream out;
CapFactory factory;
}
template<> // or constPtr?
-std::string toXML( Resolvable::constPtr obj )
+std::string toXML( const Resolvable::constPtr &obj )
{
stringstream out;
}
template<> // or constPtr?
-std::string toXML( Package::constPtr obj )
+std::string toXML( const Package::constPtr &obj )
{
stringstream out;
out << "<package>" << std::endl;
}
template<> // or constPtr?
-std::string toXML( Script::constPtr obj )
+std::string toXML( const Script::constPtr &obj )
{
stringstream out;
out << "<script>" << std::endl;
template<> // or constPtr?
-std::string toXML( Message::constPtr obj )
+std::string toXML( const Message::constPtr &obj )
{
stringstream out;
out << "<message type=\"" << obj->type() << "\">" << std::endl;
}
// or constPtr?
-std::string castedToXML( Resolvable::constPtr resolvable )
+std::string castedToXML( const Resolvable::constPtr &resolvable )
{
stringstream out;
- if ( isKind<const Package>(resolvable) )
+ if ( isKind<Package>(resolvable) )
out << toXML(asKind<const Package>(resolvable)) << std::endl;
- if ( isKind<const Patch>(resolvable) )
+ if ( isKind<Patch>(resolvable) )
out << toXML(asKind<const Patch>(resolvable)) << std::endl;
- if ( isKind<const Message>(resolvable) )
+ if ( isKind<Message>(resolvable) )
out << toXML(asKind<const Message>(resolvable)) << std::endl;
- if ( isKind<const Script>(resolvable) )
+ if ( isKind<Script>(resolvable) )
out << toXML(asKind<const Script>(resolvable)) << std::endl;
return out.str();
}
// or constPtr?
-std::string resolvableTypeToString( Resolvable::constPtr resolvable, bool plural )
+std::string resolvableTypeToString( const Resolvable::constPtr &resolvable, bool plural )
{
return resolvableKindToString(resolvable->kind(), plural);
}
}
template<> // or constPtr?
-std::string toXML( Patch::constPtr obj )
+std::string toXML( const Patch::constPtr &obj )
{
stringstream out;
out << "<patch>" << std::endl;
{ /////////////////////////////////////////////////////////////////
template<class T>
-std::string toXML( T obj ); //undefined
+std::string toXML( const T &obj ); //undefined
template<> // or constPtr?
std::string toXML( const Edition &edition );
std::string toXML( const Arch &arch );
template<> // or constPtr?
-std::string toXML( Capability &cap );
+std::string toXML( const Capability &cap );
template<> // or constPtr?
std::string toXML( const CapSet &caps );
* Use castedToXML for that.
*/
template<> // or constPtr?
-std::string toXML( Resolvable::constPtr obj );
+std::string toXML( const Resolvable::constPtr &obj );
/**
* Serialize properties based in the specific kind of the Resolvable
*/
-std::string castedToXML( Resolvable::constPtr ret );
+std::string castedToXML( const Resolvable::constPtr &ret );
/**
* lack of instrospection sucks
*/
-std::string resolvableTypeToString( Resolvable::constPtr resolvable, bool plural = false );
+std::string resolvableTypeToString( const Resolvable::constPtr &resolvable, bool plural = false );
/**
* lack of instrospection sucks
std::string resolvableKindToString( Resolvable::Kind kind, bool plural = false );
template<> // or constPtr?
-std::string toXML( Package::constPtr obj );
+std::string toXML( const Package::constPtr &obj );
template<> // or constPtr?
-std::string toXML( Script::constPtr obj );
+std::string toXML( const Script::constPtr &obj );
template<> // or constPtr?
-std::string toXML( Message::constPtr obj );
+std::string toXML( const Message::constPtr &obj );
template<> // or constPtr?
-std::string toXML( Patch::constPtr obj );
+std::string toXML( const Patch::constPtr &obj );
/////////////////////////////////////////////////////////////////
} // namespace devel.dmacvicar