libzypp  17.14.0
RepoInfoBase.h
Go to the documentation of this file.
1 /*---------------------------------------------------------------------\
2 | ____ _ __ __ ___ |
3 | |__ / \ / / . \ . \ |
4 | / / \ V /| _/ _/ |
5 | / /__ | | | | | | |
6 | /_____||_| |_| |_| |
7 | |
8 \---------------------------------------------------------------------*/
12 #ifndef REPOINFOBASE_H_
13 #define REPOINFOBASE_H_
14 
15 #include <iosfwd>
16 
17 #include "zypp/base/PtrTypes.h"
18 #include "zypp/APIConfig.h"
19 #include "zypp/Pathname.h"
20 
22 namespace zypp
23 {
24 
25  namespace repo
26  {
27 
29  //
30  // CLASS NAME : RepoInfoBase
31  //
40  {
41  friend std::ostream & operator<<( std::ostream & str, const RepoInfoBase & obj );
42 
43  public:
44  RepoInfoBase();
45  RepoInfoBase(const std::string & alias);
46  virtual ~RepoInfoBase();
47 
55  std::string alias() const;
56 
60  std::string escaped_alias() const;
61 
69  std::string name() const;
70 
72  std::string rawName() const;
73 
79  std::string label() const;
80 
82  std::string asUserString() const
83  { return label(); }
84 
89  bool enabled() const;
90 
95  bool autorefresh() const;
96 
103  Pathname filepath() const;
104 
105 
106  public:
107 
112  void setAlias( const std::string &alias );
113 
118  void setName( const std::string &name );
119 
124  void setEnabled( bool enabled );
125 
130  void setAutorefresh( bool autorefresh );
131 
140  void setFilepath( const Pathname &filename );
141 
146  virtual std::ostream & dumpOn( std::ostream & str ) const;
147 
152  virtual std::ostream & dumpAsIniOn( std::ostream & str ) const;
153 
158  virtual std::ostream & dumpAsXmlOn( std::ostream & str, const std::string & content = "" ) const;
159 
160  struct Impl;
161  private:
164  };
166 
168  inline bool operator==( const RepoInfoBase & lhs, const RepoInfoBase & rhs )
169  { return lhs.alias() == rhs.alias(); }
170 
172  inline bool operator!=( const RepoInfoBase & lhs, const RepoInfoBase & rhs )
173  { return lhs.alias() != rhs.alias(); }
174 
175  inline bool operator<( const RepoInfoBase & lhs, const RepoInfoBase & rhs )
176  { return lhs.alias() < rhs.alias(); }
177 
179  std::ostream & operator<<( std::ostream & str, const RepoInfoBase & obj );
180 
182  typedef shared_ptr<RepoInfoBase> RepoInfoBase_Ptr;
184  typedef shared_ptr<const RepoInfoBase> RepoInfoBase_constPtr;
185 
186 
188  } // namespace repo
191 } // namespace zypp
193 
194 #endif /*REPOINFOBASE_H_*/