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 Date
00083 PersistentStorage::timestamp() const
00084 {
00085 return d->backend->timestamp();
00086 }
00087
00088 void
00089 PersistentStorage::storeObject( ResObject::constPtr resolvable )
00090 {
00091 d->backend->storeObject(resolvable);
00092 }
00093
00094 void
00095 PersistentStorage::deleteObject( ResObject::constPtr resolvable )
00096 {
00097 d->backend->deleteObject(resolvable);
00098 }
00099
00100 std::list<ResObject::Ptr>
00101 PersistentStorage::storedObjects() const
00102 {
00103 return d->backend->storedObjects();
00104 }
00105
00106 std::list<ResObject::Ptr>
00107 PersistentStorage::storedObjects(const Resolvable::Kind kind) const
00108 {
00109
00110
00111 return d->backend->storedObjects(kind);
00112 }
00113
00114 std::list<ResObject::Ptr>
00115 PersistentStorage::storedObjects(const Resolvable::Kind kind, const std::string & name, bool partial_match) const
00116 {
00117 return d->backend->storedObjects(kind, name, partial_match);
00118 }
00119
00121
00123
00124 void
00125 PersistentStorage::setObjectFlag( ResObject::constPtr resolvable, const std::string &flag )
00126 { d->backend->setObjectFlag(resolvable, flag); }
00127
00128 void
00129 PersistentStorage::removeObjectFlag( ResObject::constPtr resolvable, const std::string &flag )
00130 { d->backend->removeObjectFlag(resolvable, flag); }
00131
00132 std::set<std::string>
00133 PersistentStorage::objectFlags( ResObject::constPtr resolvable ) const
00134 { return d->backend->objectFlags(resolvable); }
00135
00136 bool
00137 PersistentStorage::doesObjectHasFlag( ResObject::constPtr resolvable, const std::string &flag ) const
00138 { return d->backend->doesObjectHasFlag(resolvable, flag); }
00139
00141
00143
00144 void
00145 PersistentStorage::setFlag( const std::string &key, const std::string &flag )
00146 {
00147 d->backend->setFlag(key, flag);
00148 }
00149
00150 void
00151 PersistentStorage::removeFlag( const std::string &key, const std::string &flag )
00152 {
00153 d->backend->removeFlag(key, flag);
00154 }
00155
00156 std::set<std::string>
00157 PersistentStorage::flags( const std::string &key ) const
00158 {
00159 return d->backend->flags(key);
00160 }
00161
00162 bool
00163 PersistentStorage::hasFlag( const std::string &key, const std::string &flag ) const
00164 {
00165 return d->backend->hasFlag(key, flag);
00166 }
00167
00168
00169
00170
00171
00172
00173 std::ostream & operator<<( std::ostream & str, const PersistentStorage & obj )
00174 {
00175
00176 return str;
00177 }
00179 }
00182 }