Преглед на файлове

Add DeviceSet.HasActivatedDevice()

This lets you see if a device has been activated
Alexander Larsson преди 11 години
родител
ревизия
395bce4c41
променени са 2 файла, в които са добавени 22 реда и са изтрити 0 реда
  1. 5 0
      deviceset.go
  2. 17 0
      devmapper/deviceset_devmapper.go

+ 5 - 0
deviceset.go

@@ -9,6 +9,7 @@ type DeviceSet interface {
 	UnmountDevice(hash, path string) error
 	UnmountDevice(hash, path string) error
 	HasDevice(hash string) bool
 	HasDevice(hash string) bool
 	HasInitializedDevice(hash string) bool
 	HasInitializedDevice(hash string) bool
+	HasActivatedDevice(hash string) bool
 	Shutdown() error
 	Shutdown() error
 }
 }
 
 
@@ -61,6 +62,10 @@ func (wrapper *DeviceSetWrapper) HasInitializedDevice(hash string) bool {
 	return wrapper.wrapped.HasInitializedDevice(wrapper.wrap(hash))
 	return wrapper.wrapped.HasInitializedDevice(wrapper.wrap(hash))
 }
 }
 
 
+func (wrapper *DeviceSetWrapper) HasActivatedDevice(hash string) bool {
+	return wrapper.wrapped.HasActivatedDevice(wrapper.wrap(hash))
+}
+
 func NewDeviceSetWrapper(wrapped DeviceSet, prefix string) DeviceSet {
 func NewDeviceSetWrapper(wrapped DeviceSet, prefix string) DeviceSet {
 	wrapper := &DeviceSetWrapper{
 	wrapper := &DeviceSetWrapper{
 		wrapped: wrapped,
 		wrapped: wrapped,

+ 17 - 0
devmapper/deviceset_devmapper.go

@@ -851,6 +851,23 @@ func (devices *DeviceSetDM) HasInitializedDevice(hash string) bool {
 	return info != nil && info.Initialized
 	return info != nil && info.Initialized
 }
 }
 
 
+func (devices *DeviceSetDM) HasActivatedDevice(hash string) bool {
+	if err := devices.ensureInit(); err != nil {
+		return false
+	}
+
+	info := devices.Devices[hash]
+	if info == nil {
+		return false
+	}
+	name := info.Name()
+	devinfo, _ := devices.getInfo(name)
+	if devinfo != nil && devinfo.Exists != 0 {
+		return true
+	}
+	return false
+}
+
 func (devices *DeviceSetDM) SetInitialized(hash string) error {
 func (devices *DeviceSetDM) SetInitialized(hash string) error {
 	if err := devices.ensureInit(); err != nil {
 	if err := devices.ensureInit(); err != nil {
 		return err
 		return err