e3cf4ea82c3bf693d0dab20f9132fdb76a9292a2
[platform/upstream/libzypp-bindings.git] / swig / zypp.i
1 %module zypp
2
3 #ifdef SWIGPERL5
4 %{
5    #undef NORMAL
6    #undef readdir
7    #undef Fflush
8    #undef Mkdir
9    #undef strerror
10 %}
11 #endif
12
13 %{
14 /* Includes the header in the wrapper code */
15 #include <sstream>
16 #include "zypp/base/PtrTypes.h"
17 #include "zypp/Edition.h"
18 #include "zypp/ResTraits.h"
19 #include "zypp/ZYppFactory.h"
20 #include "zypp/ZYpp.h"
21 #include "zypp/Pathname.h"
22 #include "zypp/base/ReferenceCounted.h"
23 #include "zypp/ResObject.h"
24 #include "zypp/Target.h"
25 #include "zypp/target/TargetImpl.h"
26 #include "zypp/MediaSetAccess.h"
27 #include "zypp/TranslatedText.h"
28 #include "zypp/Package.h"
29 #include "zypp/Patch.h"
30 #include "zypp/Atom.h"
31 #include "zypp/SrcPackage.h"
32 #include "zypp/Script.h"
33 #include "zypp/Message.h"
34 #include "zypp/Pattern.h"
35 #include "zypp/Product.h"
36 #include "zypp/ResFilters.h"
37 #include "zypp/OnMediaLocation.h"
38 #include "zypp/Repository.h"
39 #include "zypp/RepoManager.h"
40 #include "zypp/repo/RepoType.h"
41 #include "zypp/TmpPath.h"
42 #include "zypp/Resolver.h"
43
44 using namespace boost;
45 using namespace zypp;
46 using namespace zypp::repo;
47 using namespace zypp::resfilter;
48 using namespace zypp::filesystem;
49
50 typedef std::set<Url> UrlSet;
51 typedef std::list<std::string> StringList;
52 %}
53
54 %nodefault ByKind;
55 %define DEFINE_PTR_TYPE(name)
56 %enddef
57
58 %rename("+") "operator+";
59 %rename("<<") "operator<<";
60 %rename("!=") "operator!=";
61 %rename("!") "operator!";
62 %rename("==") "operator==";
63
64
65 template < typename T >
66 class intrusive_ptr {
67   public:
68   T *operator->();
69 };
70
71
72 %include "std_string.i"
73 %include "stl.i"
74
75
76 #ifdef SWIGRUBY
77 %include "ruby/std_list.i"
78 %include "ruby/std_set.i"
79 %include "ruby/ruby.i"
80 #endif
81
82 #ifdef SWIGPYTHON
83 %include "std_list.i"
84 %include "std_set.i"
85 %include "python/python.i"
86 #endif
87
88 #ifdef SWIGPERL5
89 %include "std_list.i"
90 %include "perl5/perl.i"
91 #endif
92
93 %include "Pathname.i"
94 %include "Url.i"
95 %include "ResStatus.i"
96 %include "NeedAType.i"
97 %include "Arch.i"
98 %include "Edition.i"
99 %include "Kind.i"
100 %include "ResTraits.i"
101 %include "Date.i"
102 %include "Capability.i"
103 %include "Capabilities.i"
104 %include "Dependencies.i"
105 %include "Dep.i"
106 %include "Resolvable.i"
107 %include "ByteCount.i"
108 %include "RepoType.i"
109 %include "Repository.i"
110 %include "RepoInfo.i"
111 %include "RepoManager.i"
112 %include "RepoStatus.i"
113 %include "ResObject.i"
114 %include "TranslatedText.i"
115 %include "CheckSum.i"
116 %include "CapMatch.i"
117 %include "Package.i"
118 %include "Patch.i"
119 %include "Atom.i"
120 %include "SrcPackage.i"
121 %include "Script.i"
122 %include "Message.i"
123 %include "Pattern.i"
124 %include "Product.i"
125 %include "PublicKey.i"
126 %include "KeyRing.i"
127 %include "Target.i"
128 %include "MediaSetAccess.i"
129 %include "PoolItem.i"
130 %include "ResPool.i"
131 %include "ZYppCommitPolicy.i"
132 %include "ZYppCommitResult.i"
133 %include "TmpPath.i"
134 %include "Resolver.i"
135 #ifdef SWIGPYTHON
136 %include "python/callbacks.i"
137 #endif
138
139 class ZYpp
140 {
141   public:
142     typedef intrusive_ptr<ZYpp>       Ptr;
143     typedef intrusive_ptr<const ZYpp> constPtr;
144   public:
145
146     //ResPool pool() const;
147     //ResPoolProxy poolProxy() const;
148
149     /*
150     DiskUsageCounter::MountPointSet diskUsage();
151     void setPartitions(const DiskUsageCounter::MountPointSet &mp);
152     */
153     Target_Ptr target() const;
154     void initializeTarget(const zypp::Pathname & root);
155     void finishTarget();
156
157     typedef ZYppCommitResult CommitResult;
158     ZYppCommitResult commit( const ZYppCommitPolicy & policy_r );
159
160     Resolver_Ptr resolver() const;
161     KeyRing_Ptr keyRing() const;
162
163      /*
164     void setTextLocale( const Locale & textLocale_r );
165     Locale getTextLocale() const;
166     typedef std::set<Locale> LocaleSet;
167     void setRequestedLocales( const LocaleSet & locales_r );
168     LocaleSet getRequestedLocales() const;
169     LocaleSet getAvailableLocales() const;
170     void availableLocale( const Locale & locale_r );
171     */
172     zypp::Pathname homePath() const;
173     zypp::Pathname tmpPath() const;
174     void setHomePath( const zypp::Pathname & path );
175
176     Arch architecture() const;
177     void setArchitecture( const Arch & arch );
178
179    /**
180     * \short Apply persistant locks to current pool.
181     * Call this before solving
182     *
183     * \returns Number of items locked
184     */
185    int applyLocks();
186
187     protected:
188     virtual ~ZYpp();
189     private:
190     friend class ZYppFactory;
191     explicit ZYpp( const Impl_Ptr & impl_r );
192 };
193
194 %include "ZYppFactory.i"