6cd792d86a84bac811dc9a95c08d27fdbb7cc83a
[platform/upstream/libzypp.git] / zypp / target / store / PersistentStorage.cc
1 /*---------------------------------------------------------------------\
2 |                          ____ _   __ __ ___                          |
3 |                         |__  / \ / / . \ . \                         |
4 |                           / / \ V /|  _/  _/                         |
5 |                          / /__ | | | | | |                           |
6 |                         /_____||_| |_| |_|                           |
7 |                                                                      |
8 \---------------------------------------------------------------------*/
9 /** \file       zypp/target/store/PersistentStorage.cc
10 *
11 */
12 #include <iostream>
13 #include "zypp/base/Logger.h"
14
15 #include "PersistentStorage.h"
16 #include "Backend.h"
17 #include "XMLFilesBackend.h"
18
19 using std::endl;
20
21 ///////////////////////////////////////////////////////////////////
22 namespace zypp
23 { /////////////////////////////////////////////////////////////////
24 ///////////////////////////////////////////////////////////////////
25 namespace storage
26 {
27 ///////////////////////////////////////////////////////////////////
28 //
29 //      CLASS NAME : PersistentStoragePrivate
30 //
31 ///////////////////////////////////////////////////////////////////
32 class PersistentStorage::Private
33 {
34   public:
35   Backend *backend;
36 };
37
38 ///////////////////////////////////////////////////////////////////
39 //
40 //      CLASS NAME : PersistentStorage
41 //
42 ///////////////////////////////////////////////////////////////////
43
44 ///////////////////////////////////////////////////////////////////
45 //
46 //      METHOD NAME : PersistentStorage::PersistentStorage
47 //      METHOD TYPE : Ctor
48 //
49 PersistentStorage::PersistentStorage()
50 {
51   d = new Private;
52   DBG << "  Creating XML Files backend" << endl;
53   d->backend = 0L;
54 }
55
56 void PersistentStorage::init(const Pathname &root)
57 {
58   d->backend = new XMLFilesBackend(root);
59 }
60
61 bool PersistentStorage::isInitalized()
62 {
63   return ! (d->backend == 0L);
64 }
65
66 ///////////////////////////////////////////////////////////////////
67 //
68 //      METHOD NAME : PersistentStorage::~PersistentStorage
69 //      METHOD TYPE : Dtor
70 //
71 PersistentStorage::~PersistentStorage()
72 {}
73
74     ///////////////////////////////////////////////////////////////////
75 //
76 //      METHOD NAME : PersistentStorage::~PersistentStorage
77 //      METHOD TYPE : Dtor
78 //
79 void PersistentStorage::doTest()
80 {
81   d->backend->doTest();
82 }
83
84 void
85 PersistentStorage::storeObject( ResObject::constPtr resolvable )
86 {
87   d->backend->storeObject(resolvable);
88 }
89
90 void
91 PersistentStorage::deleteObject( ResObject::constPtr resolvable )
92 {
93
94 }
95
96 std::list<ResObject::Ptr>
97 PersistentStorage::storedObjects() const
98 {
99   return d->backend->storedObjects();
100 }
101
102 std::list<ResObject::Ptr>
103 PersistentStorage::storedObjects(const Resolvable::Kind kind) const
104 {
105   //list<ResObject::Ptr>::iterator it;
106   //it = find(nums.begin(), nums.end(), 3); // Search the list.
107   return d->backend->storedObjects(kind);
108 }
109
110 std::list<ResObject::Ptr>
111 PersistentStorage::storedObjects(const Resolvable::Kind kind, const std::string & name, bool partial_match) const
112 {
113   return d->backend->storedObjects(kind, name, partial_match);
114 }
115
116 /////////////////////////////////////////////////////////
117 // SOURCES API
118 ////////////////////////////////////////////////////////
119
120 std::list<PersistentStorage::SourceData>
121 PersistentStorage::storedSources() const
122 {
123   return d->backend->storedSources();
124 }
125
126 void
127 PersistentStorage::storeSource(const PersistentStorage::SourceData &data)
128 {
129   d->backend->storeSource(data);
130 }
131
132 void
133 PersistentStorage::deleteSource(const std::string &alias)
134 {
135   d->backend->deleteSource(alias);
136 }
137
138 /******************************************************************
139 **
140 **      FUNCTION NAME : operator<<
141 **      FUNCTION TYPE : std::ostream &
142 */
143 std::ostream & operator<<( std::ostream & str, const PersistentStorage & obj )
144 {
145   //return str << *obj._pimpl;
146   return str;
147 }
148   /////////////////////////////////////////////////////////////////
149 } // namespace storage
150 ///////////////////////////////////////////////////////////////////
151 /////////////////////////////////////////////////////////////////
152 } // namespace zypp
153 ///////////////////////////////////////////////////////////////////