00001
00002
00003
00004
00005
00006
00007
00008
00012 #include <iostream>
00013 #include "zypp/base/Logger.h"
00014
00015 #include "PersistentStorage.h"
00016 #include "Backend.h"
00017 #include "XMLFilesBackend.h"
00018
00019 using std::endl;
00020
00022 namespace zypp
00023 {
00024
00025 namespace storage
00026 {
00028
00029
00030
00032 class PersistentStorage::Private
00033 {
00034 public:
00035 Backend *backend;
00036 };
00037
00039
00040
00041
00043
00045
00046
00047
00048
00049 PersistentStorage::PersistentStorage()
00050 {
00051 d = new Private;
00052 DBG << " Creating XML Files backend" << endl;
00053 d->backend = 0L;
00054 }
00055
00056 void PersistentStorage::init(const Pathname &root)
00057 {
00058 d->backend = new XMLFilesBackend(root);
00059 }
00060
00061 bool PersistentStorage::isInitialized() const
00062 {
00063 return ! (d->backend == 0L);
00064 }
00065
00067
00068
00069
00070
00071 PersistentStorage::~PersistentStorage()
00072 {}
00073
00075
00076
00077
00078
00079 void PersistentStorage::doTest()
00080 {
00081 d->backend->doTest();
00082 }
00083
00084 void
00085 PersistentStorage::storeObject( ResObject::constPtr resolvable )
00086 {
00087 d->backend->storeObject(resolvable);
00088 }
00089
00090 void
00091 PersistentStorage::deleteObject( ResObject::constPtr resolvable )
00092 {
00093 d->backend->deleteObject(resolvable);
00094 }
00095
00096 std::list<ResObject::Ptr>
00097 PersistentStorage::storedObjects() const
00098 {
00099 return d->backend->storedObjects();
00100 }
00101
00102 std::list<ResObject::Ptr>
00103 PersistentStorage::storedObjects(const Resolvable::Kind kind) const
00104 {
00105
00106
00107 return d->backend->storedObjects(kind);
00108 }
00109
00110 std::list<ResObject::Ptr>
00111 PersistentStorage::storedObjects(const Resolvable::Kind kind, const std::string & name, bool partial_match) const
00112 {
00113 return d->backend->storedObjects(kind, name, partial_match);
00114 }
00115
00117
00119
00120 void
00121 PersistentStorage::setObjectFlag( ResObject::constPtr resolvable, const std::string &flag )
00122 { d->backend->setObjectFlag(resolvable, flag); }
00123
00124 void
00125 PersistentStorage::removeObjectFlag( ResObject::constPtr resolvable, const std::string &flag )
00126 { d->backend->removeObjectFlag(resolvable, flag); }
00127
00128 std::set<std::string>
00129 PersistentStorage::objectFlags( ResObject::constPtr resolvable ) const
00130 { return d->backend->objectFlags(resolvable); }
00131
00132 bool
00133 PersistentStorage::doesObjectHasFlag( ResObject::constPtr resolvable, const std::string &flag ) const
00134 { return d->backend->doesObjectHasFlag(resolvable, flag); }
00135
00137
00139
00140 void
00141 PersistentStorage::setFlag( const std::string &key, const std::string &flag )
00142 {
00143 d->backend->setFlag(key, flag);
00144 }
00145
00146 void
00147 PersistentStorage::removeFlag( const std::string &key, const std::string &flag )
00148 {
00149 d->backend->removeFlag(key, flag);
00150 }
00151
00152 std::set<std::string>
00153 PersistentStorage::flags( const std::string &key ) const
00154 {
00155 return d->backend->flags(key);
00156 }
00157
00158 bool
00159 PersistentStorage::hasFlag( const std::string &key, const std::string &flag ) const
00160 {
00161 return d->backend->hasFlag(key, flag);
00162 }
00163
00165
00167
00168 std::list<PersistentStorage::SourceData>
00169 PersistentStorage::storedSources() const
00170 {
00171 return d->backend->storedSources();
00172 }
00173
00174 void
00175 PersistentStorage::storeSource(const PersistentStorage::SourceData &data)
00176 {
00177 d->backend->storeSource(data);
00178 }
00179
00180 void
00181 PersistentStorage::deleteSource(const std::string &alias)
00182 {
00183 d->backend->deleteSource(alias);
00184 }
00185
00186
00187
00188
00189
00190
00191 std::ostream & operator<<( std::ostream & str, const PersistentStorage & obj )
00192 {
00193
00194 return str;
00195 }
00197 }
00200 }