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 struct PersistentStorage::Private
00033 {
00034 shared_ptr<Backend> backend;
00035 };
00036
00038
00039
00040
00042
00044
00045
00046
00047
00048 PersistentStorage::PersistentStorage()
00049 : d( new Private )
00050 {
00051 DBG << " Creating XML Files backend" << endl;
00052 }
00053
00054 void PersistentStorage::init(const Pathname &root)
00055 {
00056 d->backend.reset( new XMLFilesBackend(root) );
00057 }
00058
00059 bool PersistentStorage::isInitialized() const
00060 {
00061 return d->backend;
00062 }
00063
00065
00066
00067
00068
00069 PersistentStorage::~PersistentStorage()
00070 {}
00071
00073
00074
00075
00076
00077 void PersistentStorage::doTest()
00078 {
00079 d->backend->doTest();
00080 }
00081
00082 void
00083 PersistentStorage::storeObject( ResObject::constPtr resolvable )
00084 {
00085 d->backend->storeObject(resolvable);
00086 }
00087
00088 void
00089 PersistentStorage::deleteObject( ResObject::constPtr resolvable )
00090 {
00091 d->backend->deleteObject(resolvable);
00092 }
00093
00094 std::list<ResObject::Ptr>
00095 PersistentStorage::storedObjects() const
00096 {
00097 return d->backend->storedObjects();
00098 }
00099
00100 std::list<ResObject::Ptr>
00101 PersistentStorage::storedObjects(const Resolvable::Kind kind) const
00102 {
00103
00104
00105 return d->backend->storedObjects(kind);
00106 }
00107
00108 std::list<ResObject::Ptr>
00109 PersistentStorage::storedObjects(const Resolvable::Kind kind, const std::string & name, bool partial_match) const
00110 {
00111 return d->backend->storedObjects(kind, name, partial_match);
00112 }
00113
00115
00117
00118 void
00119 PersistentStorage::setObjectFlag( ResObject::constPtr resolvable, const std::string &flag )
00120 { d->backend->setObjectFlag(resolvable, flag); }
00121
00122 void
00123 PersistentStorage::removeObjectFlag( ResObject::constPtr resolvable, const std::string &flag )
00124 { d->backend->removeObjectFlag(resolvable, flag); }
00125
00126 std::set<std::string>
00127 PersistentStorage::objectFlags( ResObject::constPtr resolvable ) const
00128 { return d->backend->objectFlags(resolvable); }
00129
00130 bool
00131 PersistentStorage::doesObjectHasFlag( ResObject::constPtr resolvable, const std::string &flag ) const
00132 { return d->backend->doesObjectHasFlag(resolvable, flag); }
00133
00135
00137
00138 void
00139 PersistentStorage::setFlag( const std::string &key, const std::string &flag )
00140 {
00141 d->backend->setFlag(key, flag);
00142 }
00143
00144 void
00145 PersistentStorage::removeFlag( const std::string &key, const std::string &flag )
00146 {
00147 d->backend->removeFlag(key, flag);
00148 }
00149
00150 std::set<std::string>
00151 PersistentStorage::flags( const std::string &key ) const
00152 {
00153 return d->backend->flags(key);
00154 }
00155
00156 bool
00157 PersistentStorage::hasFlag( const std::string &key, const std::string &flag ) const
00158 {
00159 return d->backend->hasFlag(key, flag);
00160 }
00161
00163
00165
00166 std::list<PersistentStorage::SourceData>
00167 PersistentStorage::storedSources() const
00168 {
00169 return d->backend->storedSources();
00170 }
00171
00172 void
00173 PersistentStorage::storeSource(const PersistentStorage::SourceData &data)
00174 {
00175 d->backend->storeSource(data);
00176 }
00177
00178 void
00179 PersistentStorage::deleteSource(const std::string &alias)
00180 {
00181 d->backend->deleteSource(alias);
00182 }
00183
00184
00185
00186
00187
00188
00189 std::ostream & operator<<( std::ostream & str, const PersistentStorage & obj )
00190 {
00191
00192 return str;
00193 }
00195 }
00198 }