Mailinglist Archive: zypp-commit (149 mails)

< Previous Next >
[zypp-commit] r5455 - in /trunk: ./ libzypp/zypp/capability/ libzypp/zypp2/cache/ libzypp/zypp2/cache/schema/
  • From: dmacvicar@xxxxxxxxxxxxxxxx
  • Date: Thu, 26 Apr 2007 16:32:42 -0000
  • Message-id: <20070426163242.881D7592E4@xxxxxxxxxxxxxxxx>
Author: dmacvicar
Date: Thu Apr 26 18:32:41 2007
New Revision: 5455

URL: http://svn.opensuse.org/viewcvs/zypp?rev=5455&view=rev
Log:
 r5158@piscola:  dmacvicar | 2007-04-26 13:50:43 +0200
 
 support for modalias caps
 
 r5159@piscola:  dmacvicar | 2007-04-26 13:51:25 +0200
 
 fix duplicate index
 
 r5160@piscola:  dmacvicar | 2007-04-26 16:11:51 +0200
 
 - support for HAL dependencies
 
 r5161@piscola:  dmacvicar | 2007-04-26 17:19:02 +0200
 
 - support storing hal dependencies, and unknown dependencies
 

Modified:
    trunk/   (props changed)
    trunk/libzypp/zypp/capability/FileCap.h
    trunk/libzypp/zypp/capability/FilesystemCap.cc
    trunk/libzypp/zypp/capability/FilesystemCap.h
    trunk/libzypp/zypp/capability/HalCap.cc
    trunk/libzypp/zypp/capability/HalCap.h
    trunk/libzypp/zypp/capability/ModaliasCap.cc
    trunk/libzypp/zypp/capability/ModaliasCap.h
    trunk/libzypp/zypp/capability/NamedCap.h
    trunk/libzypp/zypp/capability/NullCap.cc
    trunk/libzypp/zypp/capability/NullCap.h
    trunk/libzypp/zypp/capability/SplitCap.cc
    trunk/libzypp/zypp/capability/SplitCap.h
    trunk/libzypp/zypp/capability/VersionedCap.h
    trunk/libzypp/zypp2/cache/CacheStore.cpp
    trunk/libzypp/zypp2/cache/CacheStore.h
    trunk/libzypp/zypp2/cache/schema/schema.sql

Modified: trunk/libzypp/zypp/capability/FileCap.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/FileCap.h?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/FileCap.h (original)
+++ trunk/libzypp/zypp/capability/FileCap.h Thu Apr 26 18:32:41 2007
@@ -35,9 +35,9 @@
     {
     public:
       typedef FileCap Self;
-      typedef FileCap_Ptr       Ptr;
-      typedef FileCap_constPtr  constPtr;
-
+      typedef FileCap_Ptr Ptr;
+      typedef FileCap_constPtr constPtr;
+      
       /** Ctor */
       FileCap( const Resolvable::Kind & refers_r, const std::string & fname_r )
       : CapabilityImpl( refers_r )

Modified: trunk/libzypp/zypp/capability/FilesystemCap.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/FilesystemCap.cc?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/FilesystemCap.cc (original)
+++ trunk/libzypp/zypp/capability/FilesystemCap.cc Thu Apr 26 18:32:41 2007
@@ -26,6 +26,8 @@
   namespace capability
   { /////////////////////////////////////////////////////////////////
 
+    IMPL_PTR_TYPE(FilesystemCap)
+    
     /** Ctor */
     FilesystemCap::FilesystemCap( const Resolvable::Kind & refers_r,
                                  const std::string & name_r )
@@ -36,7 +38,7 @@
     const CapabilityImpl::Kind & FilesystemCap::kind() const
     { return CapTraits<Self>::kind; }
 
-    CapMatch FilesystemCap::matches( const constPtr & rhs ) const
+    CapMatch FilesystemCap::matches( const CapabilityImpl::constPtr & rhs ) const
     {
       if ( sameKindAndRefers( rhs ) )
         {

Modified: trunk/libzypp/zypp/capability/FilesystemCap.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/FilesystemCap.h?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/FilesystemCap.h (original)
+++ trunk/libzypp/zypp/capability/FilesystemCap.h Thu Apr 26 18:32:41 2007
@@ -21,6 +21,8 @@
   namespace capability
   { /////////////////////////////////////////////////////////////////
 
+    DEFINE_PTR_TYPE(FilesystemCap)
+    
     ///////////////////////////////////////////////////////////////////
     //
     // CLASS NAME : FilesystemCap
@@ -42,7 +44,9 @@
     {
     public:
       typedef FilesystemCap Self;
-
+      typedef FilesystemCap_Ptr Ptr;
+      typedef FilesystemCap_constPtr constPtr;
+      
     public:
       /** Ctor */
       FilesystemCap( const Resolvable::Kind & refers_r, const std::string & name_r );
@@ -52,7 +56,7 @@
       virtual const Kind & kind() const;
 
       /** Query USED_FS_LIST. */
-      virtual CapMatch matches( const constPtr & rhs ) const;
+      virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const;
 
       /** <tt>filesystem(name)</tt> */
       virtual std::string encode() const;

Modified: trunk/libzypp/zypp/capability/HalCap.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/HalCap.cc?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/HalCap.cc (original)
+++ trunk/libzypp/zypp/capability/HalCap.cc Thu Apr 26 18:32:41 2007
@@ -21,10 +21,12 @@
   namespace capability
   { /////////////////////////////////////////////////////////////////
 
+    IMPL_PTR_TYPE(HalCap)
+    
     const CapabilityImpl::Kind & HalCap::kind() const
     { return CapTraits<Self>::kind; }
 
-    CapMatch HalCap::matches( const constPtr & rhs ) const
+    CapMatch HalCap::matches( const CapabilityImpl::constPtr & rhs ) const
     {
       if ( sameKindAndRefers( rhs ) )
         {

Modified: trunk/libzypp/zypp/capability/HalCap.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/HalCap.h?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/HalCap.h (original)
+++ trunk/libzypp/zypp/capability/HalCap.h Thu Apr 26 18:32:41 2007
@@ -21,6 +21,8 @@
   namespace capability
   { /////////////////////////////////////////////////////////////////
 
+    DEFINE_PTR_TYPE(HalCap)
+    
     ///////////////////////////////////////////////////////////////////
     //
     // CLASS NAME : HalCap
@@ -42,6 +44,8 @@
     {
     public:
       typedef HalCap Self;
+      typedef HalCap_Ptr       Ptr;
+      typedef HalCap_constPtr  constPtr;
 
     public:
       /** Ctor */
@@ -66,13 +70,23 @@
       virtual const Kind & kind() const;
 
       /** Query target::Hal. */
-      virtual CapMatch matches( const constPtr & rhs ) const;
+      virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const;
 
       /** <tt>hal(name) [op value]</tt> */
       virtual std::string encode() const;
 
       /** <tt>hal(name)</tt> */
       virtual std::string index() const;
+      
+    public:
+      const std::string & name() const
+      { return _name; }
+      
+      Rel op() const
+      { return _op; }
+      
+      const std::string & value() const
+      { return _value; }
 
     private:
       /** Empty HalCap <tt>hal()</tt> */

Modified: trunk/libzypp/zypp/capability/ModaliasCap.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/ModaliasCap.cc?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/ModaliasCap.cc (original)
+++ trunk/libzypp/zypp/capability/ModaliasCap.cc Thu Apr 26 18:32:41 2007
@@ -24,6 +24,8 @@
   namespace capability
   { /////////////////////////////////////////////////////////////////
 
+    IMPL_PTR_TYPE(ModaliasCap)
+    
     /** If name_r contains 2 ':', the 1st part is a package name. */
     inline void modsplit( std::string & name_r, std::string & pkgname_r )
     {
@@ -57,7 +59,7 @@
     const CapabilityImpl::Kind & ModaliasCap::kind() const
     { return CapTraits<Self>::kind; }
 
-    CapMatch ModaliasCap::matches( const constPtr & rhs ) const
+    CapMatch ModaliasCap::matches( const CapabilityImpl::constPtr & rhs ) const
     {
       if ( sameKindAndRefers( rhs ) )
         {

Modified: trunk/libzypp/zypp/capability/ModaliasCap.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/ModaliasCap.h?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/ModaliasCap.h (original)
+++ trunk/libzypp/zypp/capability/ModaliasCap.h Thu Apr 26 18:32:41 2007
@@ -12,6 +12,7 @@
 #ifndef ZYPP_CAPABILITY_MODALIASCAP_H
 #define ZYPP_CAPABILITY_MODALIASCAP_H
 
+#include "zypp/base/Deprecated.h"
 #include "zypp/capability/CapabilityImpl.h"
 
 ///////////////////////////////////////////////////////////////////
@@ -21,6 +22,8 @@
   namespace capability
   { /////////////////////////////////////////////////////////////////
 
+    DEFINE_PTR_TYPE(ModaliasCap)
+    
     ///////////////////////////////////////////////////////////////////
     //
     // CLASS NAME : ModaliasCap
@@ -42,7 +45,9 @@
     {
     public:
       typedef ModaliasCap Self;
-
+      typedef ModaliasCap_Ptr Ptr;
+      typedef ModaliasCap_constPtr constPtr;
+      
     public:
       /** Ctor */
       ModaliasCap( const Resolvable::Kind & refers_r, const std::string & name_r );
@@ -58,7 +63,7 @@
       virtual const Kind & kind() const;
 
       /** Query target::Modalias. */
-      virtual CapMatch matches( const constPtr & rhs ) const;
+      virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const;
 
       /** <tt>modalias(name) [op value]</tt> */
       virtual std::string encode() const;
@@ -70,9 +75,18 @@
       const std::string & pkgname() const
       { return _pkgname; }
 
-      const std::string & querystring() const
+      ZYPP_DEPRECATED const std::string & querystring() const
       { return _name; }
 
+      const std::string & name() const
+      { return _name; }
+      
+      Rel op() const
+      { return _op; }
+      
+      const std::string & value() const
+      { return _value; }
+      
     private:
       /** Empty ModaliasCap <tt>modalias()</tt> */
       bool isEvalCmd() const;

Modified: trunk/libzypp/zypp/capability/NamedCap.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/NamedCap.h?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/NamedCap.h (original)
+++ trunk/libzypp/zypp/capability/NamedCap.h Thu Apr 26 18:32:41 2007
@@ -34,9 +34,9 @@
     {
     public:
       typedef NamedCap Self;
-      typedef NamedCap_Ptr       Ptr;
-      typedef NamedCap_constPtr  constPtr;
-
+      typedef NamedCap_Ptr Ptr;
+      typedef NamedCap_constPtr constPtr;
+      
       /** Ctor */
       NamedCap( const Resolvable::Kind & refers_r, const std::string & name_r )
       : CapabilityImpl( refers_r )

Modified: trunk/libzypp/zypp/capability/NullCap.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/NullCap.cc?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/NullCap.cc (original)
+++ trunk/libzypp/zypp/capability/NullCap.cc Thu Apr 26 18:32:41 2007
@@ -41,7 +41,7 @@
     bool NullCap::relevant() const
     { return false; }
 
-    CapMatch NullCap::matches( const constPtr & rhs ) const
+    CapMatch NullCap::matches( const CapabilityImpl::constPtr & rhs ) const
     { return CapMatch::irrelevant; }
 
     std::string NullCap::encode() const

Modified: trunk/libzypp/zypp/capability/NullCap.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/NullCap.h?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/NullCap.h (original)
+++ trunk/libzypp/zypp/capability/NullCap.h Thu Apr 26 18:32:41 2007
@@ -52,7 +52,7 @@
       virtual bool relevant() const;
 
       /** Iirrelevant. */
-      virtual CapMatch matches( const constPtr & rhs ) const;
+      virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const;
 
       /** Empty string. */
       virtual std::string encode() const;

Modified: trunk/libzypp/zypp/capability/SplitCap.cc
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/SplitCap.cc?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/SplitCap.cc (original)
+++ trunk/libzypp/zypp/capability/SplitCap.cc Thu Apr 26 18:32:41 2007
@@ -20,10 +20,12 @@
   namespace capability
   { /////////////////////////////////////////////////////////////////
 
+    IMPL_PTR_TYPE(SplitCap)
+    
     const CapabilityImpl::Kind & SplitCap::kind() const
     { return CapTraits<Self>::kind; }
 
-    CapMatch SplitCap::matches( const constPtr & rhs ) const
+    CapMatch SplitCap::matches( const CapabilityImpl::constPtr & rhs ) const
     {
       return CapMatch::irrelevant;
     }

Modified: trunk/libzypp/zypp/capability/SplitCap.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/SplitCap.h?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/SplitCap.h (original)
+++ trunk/libzypp/zypp/capability/SplitCap.h Thu Apr 26 18:32:41 2007
@@ -21,6 +21,8 @@
   namespace capability
   { /////////////////////////////////////////////////////////////////
 
+    DEFINE_PTR_TYPE(SplitCap)
+    
     ///////////////////////////////////////////////////////////////////
     //
     // CLASS NAME : SplitCap
@@ -42,7 +44,9 @@
     {
     public:
       typedef SplitCap Self;
-
+      typedef SplitCap_Ptr Ptr;
+      typedef SplitCap_constPtr constPtr;
+      
       /** Ctor */
       SplitCap( const Resolvable::Kind & refers_r,
                 const std::string & name_r,
@@ -59,7 +63,7 @@
       { return false; }
 
       /** */
-      virtual CapMatch matches( const constPtr & rhs ) const;
+      virtual CapMatch matches( const CapabilityImpl::constPtr & rhs ) const;
 
       /**  <tt>name:/path</tt> */
       virtual std::string encode() const;

Modified: trunk/libzypp/zypp/capability/VersionedCap.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp/capability/VersionedCap.h?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp/capability/VersionedCap.h (original)
+++ trunk/libzypp/zypp/capability/VersionedCap.h Thu Apr 26 18:32:41 2007
@@ -35,9 +35,7 @@
     {
       public:
       typedef VersionedCap Self;
-      typedef VersionedCap_Ptr       Ptr;
-      typedef VersionedCap_constPtr  constPtr;
-
+      
       /** Ctor */
       VersionedCap( const Resolvable::Kind & refers_r,
                     const std::string & name_r,

Modified: trunk/libzypp/zypp2/cache/CacheStore.cpp
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/cache/CacheStore.cpp?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp2/cache/CacheStore.cpp (original)
+++ trunk/libzypp/zypp2/cache/CacheStore.cpp Thu Apr 26 18:32:41 2007
@@ -62,6 +62,9 @@
   
   sqlite3_command_ptr append_file_dependency_cmd;
   sqlite3_command_ptr append_named_dependency_cmd;
+  sqlite3_command_ptr append_modalias_dependency_cmd;
+  sqlite3_command_ptr append_hal_dependency_cmd;
+  sqlite3_command_ptr append_other_dependency_cmd;
   
   sqlite3_command_ptr append_resolvable_cmd;
   
@@ -114,6 +117,12 @@
   _pimpl->append_file_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into file_capabilities ( resolvable_id, dependency_type, refers_kind, file_id ) values ( :resolvable_id, :dependency_type, :refers_kind, :file_id );" ));
   _pimpl->append_named_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into named_capabilities ( resolvable_id, dependency_type, refers_kind, name_id, version, release, epoch, relation ) values ( :resolvable_id, :dependency_type, :refers_kind, :name_id, :version, :release, :epoch, :relation );" ));
   
+   _pimpl->append_modalias_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into modalias_capabilities ( resolvable_id, dependency_type, refers_kind, name, value, relation ) values ( :resolvable_id, :dependency_type, :refers_kind, :name, :value, :relation );" ));
+  
+   _pimpl->append_hal_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into hal_capabilities ( resolvable_id, dependency_type, refers_kind, name, value, relation ) values ( :resolvable_id, :dependency_type, :refers_kind, :name, :value, :relation );" ));
+   
+   _pimpl->append_other_dependency_cmd.reset( new sqlite3_command( _pimpl->con, "insert into other_capabilities ( resolvable_id, dependency_type, refers_kind, value ) values ( :resolvable_id, :dependency_type, :refers_kind, :value );" ));
+   
   _pimpl->append_resolvable_cmd.reset( new sqlite3_command( _pimpl->con, "insert into resolvables ( name, version, release, epoch, arch, kind, catalog_id ) values ( :name, :version, :release, :epoch, :arch, :kind, :catalog_id );" ));
   
   // disable autocommit
@@ -181,27 +190,32 @@
 
 void CacheStore::appendDependency( const data::RecordId &resolvable_id, zypp::Dep deptype, capability::CapabilityImpl::Ptr cap )
 {
-  //DBG << cap << endl;
-  if ( cap->refers() != ResTraits<Package>::kind )
+  if ( cap == 0 )
   {
     DBG << "invalid capability" << endl;
     return;
   }
   
-  if ( cap == 0 )
+  if ( capability::isKind<NamedCap>(cap) )
   {
-    DBG << "invalid capability" << endl;
-    return;
+      appendNamedDependency( resolvable_id, deptype, capability::asKind<NamedCap>(cap) );
   }
-  
-  if ( capability::isKind<FileCap>(cap) )
+  else if ( capability::isKind<FileCap>(cap) )
   {
     appendFileDependency( resolvable_id, deptype, capability::asKind<FileCap>(cap) );
     return;
   }
-  else if ( capability::isKind<NamedCap>(cap) )
+  else if ( capability::isKind<ModaliasCap>(cap) )
   {
-      appendNamedDependency( resolvable_id, deptype, capability::asKind<NamedCap>(cap) );
+      appendModaliasDependency( resolvable_id, deptype, capability::asKind<ModaliasCap>(cap) );
+  }
+  else if ( capability::isKind<HalCap>(cap) )
+  {
+      appendHalDependency( resolvable_id, deptype, capability::asKind<HalCap>(cap) );
+  }
+  else
+  {
+      appendUnknownDependency( resolvable_id, deptype, cap );
   }
 }
 
@@ -255,10 +269,51 @@
   //delete cmd;
 }
 
-void CacheStore::appendFileDependency( const data::RecordId &resolvable_id, zypp::Dep deptype, capability::FileCap::Ptr cap )
+void CacheStore::appendModaliasDependency( const data::RecordId &resolvable_id,
+                                                 zypp::Dep deptype,
+                                                 capability::ModaliasCap::Ptr cap )
+{
+  if ( !cap )
+    ZYPP_THROW(Exception("Null modalias capability"));
+
+  _pimpl->append_modalias_dependency_cmd->bind( ":resolvable_id", resolvable_id );
+  _pimpl->append_modalias_dependency_cmd->bind( ":dependency_type", zypp_deptype2db_deptype(deptype) );
+  _pimpl->append_modalias_dependency_cmd->bind( ":refers_kind", zypp_kind2db_kind(cap->refers()) );
+  
+  //_pimpl->append_modalias_dependency_cmd->bind( ":capability_id", capability_id);
+  _pimpl->append_modalias_dependency_cmd->bind( ":name", cap->name());
+  _pimpl->append_modalias_dependency_cmd->bind( ":value", cap->value());
+  _pimpl->append_modalias_dependency_cmd->bind( ":relation", zypp_rel2db_rel( cap->op() ) );
+  
+  _pimpl->append_modalias_dependency_cmd->executenonquery();
+  //delete cmd;
+}
+
+void CacheStore::appendHalDependency( const data::RecordId &resolvable_id,
+                                                 zypp::Dep deptype,
+                                                 capability::HalCap::Ptr cap )
+{
+  if ( !cap )
+    ZYPP_THROW(Exception("Null HAL capability"));
+
+  _pimpl->append_hal_dependency_cmd->bind( ":resolvable_id", resolvable_id );
+  _pimpl->append_hal_dependency_cmd->bind( ":dependency_type", zypp_deptype2db_deptype(deptype) );
+  _pimpl->append_hal_dependency_cmd->bind( ":refers_kind", zypp_kind2db_kind(cap->refers()) );
+  
+  //_pimpl->append_hal_dependency_cmd->bind( ":capability_id", capability_id);
+  _pimpl->append_hal_dependency_cmd->bind( ":name", cap->name());
+  _pimpl->append_hal_dependency_cmd->bind( ":value", cap->value());
+  _pimpl->append_hal_dependency_cmd->bind( ":relation", zypp_rel2db_rel( cap->op() ) );
+  
+  _pimpl->append_hal_dependency_cmd->executenonquery();
+  //delete cmd;
+}
+
+void CacheStore::appendFileDependency( const data::RecordId &resolvable_id, zypp::Dep deptype,
+                                       capability::FileCap::Ptr cap )
 {
   if ( !cap )
-    ZYPP_THROW(Exception("bad file cap"));
+    ZYPP_THROW(Exception("Null file capability"));
 
   //data::RecordId capability_id = appendDependencyEntry( resolvable_id, deptype, cap->refers() );
   data::RecordId file_id = lookupOrAppendFile(cap->filename());
@@ -274,6 +329,23 @@
   //delete cmd;
 }
 
+void CacheStore::appendUnknownDependency( const data::RecordId &resolvable_id,
+                                               zypp::Dep deptype,
+                                               capability::CapabilityImpl::Ptr cap )
+{
+  if ( !cap )
+    ZYPP_THROW(Exception("Null unknown capability"));
+
+  _pimpl->append_other_dependency_cmd->bind( ":resolvable_id", resolvable_id );
+  _pimpl->append_other_dependency_cmd->bind( ":dependency_type", zypp_deptype2db_deptype(deptype) );
+  _pimpl->append_other_dependency_cmd->bind( ":refers_kind", zypp_kind2db_kind(cap->refers()) );
+  _pimpl->append_other_dependency_cmd->bind( ":value", cap->encode());
+  
+  _pimpl->append_hal_dependency_cmd->executenonquery();
+  //delete cmd;
+}
+
+
 // data::RecordId CacheStore::appendDependencyEntry( const data::RecordId &resolvable_id, zypp::Dep deptype, const Resolvable::Kind &refers )
 // {
 //   //DBG << "rid: " << resolvable_id << " deptype: " << deptype << " " << "refers: " << refers << endl;

Modified: trunk/libzypp/zypp2/cache/CacheStore.h
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/cache/CacheStore.h?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp2/cache/CacheStore.h (original)
+++ trunk/libzypp/zypp2/cache/CacheStore.h Thu Apr 26 18:32:41 2007
@@ -173,6 +173,63 @@
                                  capability::FileCap::Ptr);
       
       /**
+       * Adds a Modalias dependency to the store.
+       *
+       * A \ref ModaliasCap::Ptr \a cap to be specified. Among
+       * which type of dependency \ref zypp::Dep it is as
+       * the \a deptype argument.
+       * 
+       * \a resolvable_id is the resolvable Id in the CacheStore
+       * that will own the capability
+       *
+       * You can create the modalias capability using either
+       * \ref capability::parse or \ref capability::buildModalias
+       *
+       * FIXME should it \throw if the resolvable does not exist?
+       */
+      void appendModaliasDependency( const data::RecordId &resolvable_id,
+                                     zypp::Dep deptype,
+                                     capability::ModaliasCap::Ptr cap);
+      
+      /**
+       * Adds a Hal dependency to the store.
+       *
+       * A \ref HalCap::Ptr \a cap to be specified. Among
+       * which type of dependency \ref zypp::Dep it is as
+       * the \a deptype argument.
+       * 
+       * \a resolvable_id is the resolvable Id in the CacheStore
+       * that will own the capability
+       *
+       * You can create the modalias capability using either
+       * \ref capability::parse or \ref capability::buildHal
+       *
+       * FIXME should it \throw if the resolvable does not exist?
+       */
+      void appendHalDependency( const data::RecordId &resolvable_id,
+                                      zypp::Dep deptype,
+                                      capability::HalCap::Ptr cap );
+      
+      /**
+       * Adds a unknown dependency to the store.
+       *
+       * A \ref Capability::Ptr \a cap to be specified. Among
+       * which type of dependency \ref zypp::Dep it is as
+       * the \a deptype argument.
+       * 
+       * \a resolvable_id is the resolvable Id in the CacheStore
+       * that will own the capability
+       *
+       * You can create the capability using either
+       * \ref capability::parse
+       *
+       * FIXME should it \throw if the resolvable does not exist?
+       */
+      void appendUnknownDependency( const data::RecordId &resolvable_id,
+                                          zypp::Dep deptype,
+                                          capability::CapabilityImpl::Ptr cap );
+      
+      /**
        * Returns the record id of a catalog (Source) \a path
        *
        * \note If the catalog entry does not exist, it will

Modified: trunk/libzypp/zypp2/cache/schema/schema.sql
URL: http://svn.opensuse.org/viewcvs/zypp/trunk/libzypp/zypp2/cache/schema/schema.sql?rev=5455&r1=5454&r2=5455&view=diff
==============================================================================
--- trunk/libzypp/zypp2/cache/schema/schema.sql (original)
+++ trunk/libzypp/zypp2/cache/schema/schema.sql Thu Apr 26 18:32:41 2007
@@ -4,42 +4,6 @@
 -- cat schema.sql | grep "^CREATE" | awk '{print "DROP " $2 " IF EXISTS " $3 ";"}' | sort -r
 ------------------------------------------------
 
-DROP VIEW IF EXISTS scripts;
-DROP VIEW IF EXISTS products;
-DROP VIEW IF EXISTS patterns;
-DROP VIEW IF EXISTS patches;
-DROP VIEW IF EXISTS packages;
-DROP VIEW IF EXISTS messages;
-DROP TRIGGER IF EXISTS remove_resolvables;
-DROP TRIGGER IF EXISTS remove_patch_packages_baseversions;
-DROP TABLE IF EXISTS named_capabilities;
-DROP TABLE IF EXISTS translated_texts;
-DROP TABLE IF EXISTS script_details;
-DROP TABLE IF EXISTS resolvable_texts;
-DROP TABLE IF EXISTS resolvables_catalogs;
-DROP TABLE IF EXISTS resolvables;
-DROP TABLE IF EXISTS product_details;
-DROP TABLE IF EXISTS pattern_details;
-DROP TABLE IF EXISTS patch_packages_baseversions;
-DROP TABLE IF EXISTS patch_packages;
-DROP TABLE IF EXISTS patch_details;
-DROP TABLE IF EXISTS package_details;
-DROP TABLE IF EXISTS names;
-DROP TABLE IF EXISTS message_details;
-DROP TABLE IF EXISTS locks;
-DROP TABLE IF EXISTS files;
-DROP TABLE IF EXISTS file_names;
-DROP TABLE IF EXISTS file_capabilities;
-DROP TABLE IF EXISTS split_capabilities;
-DROP TABLE IF EXISTS dir_names;
-DROP TABLE IF EXISTS delta_packages;
-DROP TABLE IF EXISTS db_info;
-DROP TABLE IF EXISTS catalogs;
-DROP TABLE IF EXISTS capabilities;
-DROP INDEX IF EXISTS package_details_resolvable_id;
-DROP INDEX IF EXISTS capability_resolvable;
-DROP INDEX IF EXISTS named_capabilities_capability_id;
-
 ------------------------------------------------
 -- version metadata, probably not needed, there
 -- is pragma user_version
@@ -322,6 +286,26 @@
 );
 CREATE INDEX named_capabilities_name ON named_capabilities(name_id);
 
+CREATE TABLE modalias_capabilities (
+   id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL 
+  , resolvable_id INTEGER REFERENCES resolvables(id)
+  , dependency_type INTEGER
+  , refers_kind INTEGER
+  , name TEXT
+  , value TEXT
+  , relation INTEGER
+);
+
+CREATE TABLE hal_capabilities (
+   id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL 
+  , resolvable_id INTEGER REFERENCES resolvables(id)
+  , dependency_type INTEGER
+  , refers_kind INTEGER
+  , name TEXT
+  , value TEXT
+  , relation INTEGER
+);
+
 CREATE TABLE file_capabilities (
    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL 
   , resolvable_id INTEGER REFERENCES resolvables(id)
@@ -330,6 +314,14 @@
   , file_id INTEGER REFERENCES files(id)
 );
 
+CREATE TABLE other_capabilities (
+   id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL 
+  , resolvable_id INTEGER REFERENCES resolvables(id)
+  , dependency_type INTEGER
+  , refers_kind INTEGER
+  , value TEXT
+);
+
 CREATE TABLE split_capabilities (
    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL 
   , resolvable_id INTEGER REFERENCES resolvables(id)

--
To unsubscribe, e-mail: zypp-commit+unsubscribe@xxxxxxxxxxxx
For additional commands, e-mail: zypp-commit+help@xxxxxxxxxxxx

< Previous Next >
This Thread
  • No further messages