fix linking... template specialization crazyness
authorDuncan Mac-Vicar P <dmacvicar@suse.de>
Mon, 23 Jan 2006 18:00:07 +0000 (18:00 +0000)
committerDuncan Mac-Vicar P <dmacvicar@suse.de>
Mon, 23 Jan 2006 18:00:07 +0000 (18:00 +0000)
testsuite/parser/Makefile.am
zypp/parser/tagfile/Makefile.am
zypp/target/store/Backend.h
zypp/target/store/PersistentStorage.cc
zypp/target/store/PersistentStorage.h
zypp/target/store/XMLFilesBackend.cc
zypp/target/store/XMLFilesBackend.h
zypp/target/store/serialize.cc
zypp/target/store/serialize.h

index c34488c..f661a51 100644 (file)
@@ -7,10 +7,12 @@ PACKAGE = parser
 
 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:
index 7eb822f..377873a 100644 (file)
@@ -13,7 +13,8 @@ parsertagfileinclude_HEADERS = \
        ParseException.h\
        Tags.h          \
        Grammar.h       \
-       Parser.h
+       Parser.h \
+  ProductMetadataParser.h      
 
 noinst_LTLIBRARIES =   lib@PACKAGE@_parser_tagfile.la
 
@@ -22,8 +23,9 @@ 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 = 
 
 ## ##################################################
index abe6aa1..4ed9264 100644 (file)
@@ -53,7 +53,7 @@ public:
   /**
   * 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.
   */
index cbd7d59..45d2cde 100644 (file)
@@ -73,7 +73,7 @@ void PersistentStorage::doTest()
 }
 
 void
-PersistentStorage::storeObject( Resolvable::Ptr resolvable )
+PersistentStorage::storeObject( Resolvable::constPtr resolvable )
 {
   d->backend->storeObject(resolvable);
 }
index 0163a99..cb400f2 100644 (file)
@@ -46,7 +46,7 @@ namespace zypp
       /**
        * Stores a Resolvable in the active backend.
        */
-      void storeObject( Resolvable::Ptr resolvable );
+      void storeObject( Resolvable::constPtr resolvable );
       /**
        * Deletes a Resolvable from the active backend.
        */
index bc5a17a..fe7810a 100644 (file)
@@ -163,13 +163,13 @@ XMLFilesBackend::dirForResolvableKind( Resolvable::Kind kind ) const
 }
 
 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) + "/";
@@ -178,7 +178,7 @@ XMLFilesBackend::fullPathForResolvable( Resolvable::Ptr resolvable ) const
 }
 
 void
-XMLFilesBackend::storeObject( Resolvable::Ptr resolvable )
+XMLFilesBackend::storeObject( Resolvable::constPtr resolvable )
 {
   std::string xml = castedToXML(resolvable);
   std::string filename = fullPathForResolvable(resolvable);
@@ -259,21 +259,6 @@ XMLFilesBackend::storedObjects(const Resolvable::Kind, const std::string & name,
   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
index 7bade33..7132c20 100644 (file)
@@ -54,7 +54,7 @@ public:
   /**
     * 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.
     */
@@ -77,11 +77,10 @@ public:
   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)
     */
@@ -90,7 +89,7 @@ public:
     * 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
index f7054d2..da698e2 100644 (file)
@@ -49,7 +49,7 @@ std::string xml_tag_enclose( const std::string &text, const std::string &tag, bo
 }
 
 template<class T>
-std::string toXML( obj ); //undefined
+std::string toXML( const T &obj ); //undefined
 
 template<> // or constPtr?
 std::string toXML( const Edition &edition )
@@ -69,7 +69,7 @@ std::string toXML( const Arch &arch )
 }
 
 template<> // or constPtr?
-std::string toXML( Capability &cap )
+std::string toXML( const Capability &cap )
 {
   stringstream out;
   CapFactory factory;
@@ -116,7 +116,7 @@ std::string toXML( const Dependencies &dep )
 }
 
 template<> // or constPtr?
-std::string toXML( Resolvable::constPtr obj )
+std::string toXML( const Resolvable::constPtr &obj )
 {
   stringstream out;
   
@@ -129,7 +129,7 @@ std::string toXML( Resolvable::constPtr obj )
 }
 
 template<> // or constPtr?
-std::string toXML( Package::constPtr obj )
+std::string toXML( const Package::constPtr &obj )
 {
   stringstream out;
   out << "<package>" << std::endl;
@@ -143,7 +143,7 @@ std::string toXML( Package::constPtr obj )
 }
 
 template<> // or constPtr?
-std::string toXML( Script::constPtr obj )
+std::string toXML( const Script::constPtr &obj )
 {
   stringstream out;
   out << "<script>" << std::endl;
@@ -165,7 +165,7 @@ std::string toXML( Script::constPtr obj )
 
 
 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;
@@ -177,22 +177,22 @@ std::string toXML( Message::constPtr obj )
 }
 
 // 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);
 }
@@ -211,7 +211,7 @@ std::string resolvableKindToString( Resolvable::Kind kind, bool plural)
 }
 
 template<> // or constPtr?
-std::string toXML( Patch::constPtr obj )
+std::string toXML( const Patch::constPtr &obj )
 {
   stringstream out;
   out << "<patch>" << std::endl;
index 13f55d8..029a03e 100644 (file)
@@ -42,7 +42,7 @@ namespace storage
 { /////////////////////////////////////////////////////////////////
 
 template<class T>
-std::string toXML( obj ); //undefined
+std::string toXML( const T &obj ); //undefined
 
 template<> // or constPtr?
 std::string toXML( const Edition &edition );
@@ -51,7 +51,7 @@ template<> // or constPtr?
 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 );
@@ -65,17 +65,17 @@ std::string toXML( const Dependencies &dep );
  * 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
@@ -83,16 +83,16 @@ std::string resolvableTypeToString( Resolvable::constPtr resolvable, bool plural
 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