HalContext.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00013 #ifndef ZYPP_TARGET_HAL_HALCONTEXT_H
00014 #define ZYPP_TARGET_HAL_HALCONTEXT_H
00015
00016 #include <zypp/target/hal/HalException.h>
00017 #include <zypp/base/PtrTypes.h>
00018 #include <string>
00019 #include <vector>
00020 #include <stdint.h>
00021
00023 namespace zypp
00024 {
00025
00026 namespace target
00027 {
00028
00029 namespace hal
00030 {
00031
00032
00033
00037 class HalDrive;
00038 class HalVolume;
00039
00040 class HalDrive_Impl;
00041 class HalVolume_Impl;
00042 class HalContext_Impl;
00046
00047
00048
00049
00057 class HalContext
00058 {
00059 public:
00060 typedef
00061 zypp::RW_pointer<HalContext_Impl>::unspecified_bool_type bool_type;
00062
00063 HalContext(bool autoconnect=false);
00064 HalContext(const HalContext &context);
00065 ~HalContext();
00066
00067 HalContext&
00068 operator=(const HalContext &context);
00069
00073 operator bool_type() const;
00074
00077 void
00078 connect();
00079
00084 std::vector<std::string>
00085 getAllDevices() const;
00086
00092 HalDrive
00093 getDriveFromUDI(const std::string &udi) const;
00094
00100 HalVolume
00101 getVolumeFromUDI(const std::string &udi) const;
00102
00103 HalVolume
00104 getVolumeFromDeviceFile(const std::string &device_file) const;
00105
00111 std::vector<std::string>
00112 findDevicesByCapability(const std::string &capability) const;
00113
00114 bool
00115 getDevicePropertyBool (const std::string &udi,
00116 const std::string &key) const;
00117
00118 int32_t
00119 getDevicePropertyInt32 (const std::string &udi,
00120 const std::string &key) const;
00121
00122 uint64_t
00123 getDevicePropertyUInt64(const std::string &udi,
00124 const std::string &key) const;
00125
00126 double
00127 getDevicePropertyDouble(const std::string &udi,
00128 const std::string &key) const;
00129
00130 std::string
00131 getDevicePropertyString(const std::string &udi,
00132 const std::string &key) const;
00133
00134 void
00135 setDevicePropertyBool (const std::string &udi,
00136 const std::string &key,
00137 bool value);
00138
00139 void
00140 setDevicePropertyInt32 (const std::string &udi,
00141 const std::string &key,
00142 int32_t value);
00143
00144 void
00145 setDevicePropertyUInt64(const std::string &udi,
00146 const std::string &key,
00147 uint64_t value);
00148
00149 void
00150 setDevicePropertyDouble(const std::string &udi,
00151 const std::string &key,
00152 double value);
00153
00154 void
00155 setDevicePropertyString(const std::string &udi,
00156 const std::string &key,
00157 const std::string &value);
00158
00159 void
00160 removeDeviceProperty(const std::string &udi,
00161 const std::string &key);
00162
00163 private:
00164
00165 zypp::RW_pointer<HalContext_Impl> h_impl;
00166 };
00167
00168
00170
00171
00172
00177 class HalDrive
00178 {
00179 public:
00180 typedef
00181 zypp::RW_pointer<HalDrive_Impl>::unspecified_bool_type bool_type;
00182
00183 HalDrive();
00184 HalDrive(const HalDrive &drive);
00185 ~HalDrive();
00186
00187 HalDrive&
00188 operator=(const HalDrive &drive);
00189
00190 operator bool_type() const;
00191
00192 std::string
00193 getUDI() const;
00194
00195 std::string
00196 getTypeName() const;
00197
00201 std::string
00202 getDeviceFile() const;
00203
00207 unsigned int
00208 getDeviceMajor() const;
00209
00213 unsigned int
00214 getDeviceMinor() const;
00215
00219 bool
00220 usesRemovableMedia() const;
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233 std::vector<std::string>
00234 getCdromCapabilityNames() const;
00235
00240 std::vector<std::string>
00241 findAllVolumes() const;
00242
00243 private:
00244 friend class HalContext;
00245
00246 HalDrive(HalDrive_Impl *impl);
00247
00248 zypp::RW_pointer<HalDrive_Impl> d_impl;
00249 };
00250
00251
00253
00254
00255
00260 class HalVolume
00261 {
00262 public:
00263 typedef
00264 zypp::RW_pointer<HalVolume_Impl>::unspecified_bool_type bool_type;
00265
00266 HalVolume();
00267 HalVolume(const HalVolume &volume);
00268 ~HalVolume();
00269
00270 HalVolume&
00271 operator=(const HalVolume &volume);
00272
00273 operator bool_type() const;
00274
00275 std::string
00276 getUDI() const;
00277
00281 std::string
00282 getDeviceFile() const;
00283
00287 unsigned int
00288 getDeviceMajor() const;
00289
00293 unsigned int
00294 getDeviceMinor() const;
00295
00296 bool
00297 isDisc() const;
00298
00299 bool
00300 isPartition() const;
00301
00302 bool
00303 isMounted() const;
00304
00308 std::string
00309 getFSType() const;
00310
00314 std::string
00315 getFSUsage() const;
00316
00320 std::string
00321 getMountPoint() const;
00322
00323 private:
00324 friend class HalContext;
00325 friend class HalDrive;
00326 HalVolume(HalVolume_Impl *impl);
00327
00328 zypp::RW_pointer<HalVolume_Impl> v_impl;
00329 };
00330
00331
00333 }
00336 }
00339 }
00341
00342 #endif // ZYPP_TARGET_HAL_HALCONTEXT_H
00343
00344
00345
00346