Skip to content

Commit e7d79f7

Browse files
committed
refactor: Use callback-based OpenKey method for registry key read/write operations
1 parent 6b9ecd5 commit e7d79f7

File tree

1 file changed

+23
-22
lines changed

1 file changed

+23
-22
lines changed

pkg/registry_repository/registry_repository.go

+23-22
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,29 @@ func New() *RegistryRepository {
1111
return &RegistryRepository{}
1212
}
1313

14-
func (r *RegistryRepository) GetStringValue(k registry.Key, path string, valueName string) (string, error) {
15-
key, err := registry.OpenKey(k, path, registry.QUERY_VALUE)
14+
func (r *RegistryRepository) OpenKey(k registry.Key, path string, access uint32, cb func(key registry.Key) error) error {
15+
key, err := registry.OpenKey(k, path, access)
1616
if err != nil {
17-
return "", err
17+
return err
1818
}
1919
defer func(key registry.Key) {
2020
_ = key.Close()
2121
}(key)
2222

23-
value, _, err := key.GetStringValue(valueName)
23+
return cb(key)
24+
}
25+
26+
func (r *RegistryRepository) GetStringValue(k registry.Key, path string, valueName string) (string, error) {
27+
var value string
28+
err := r.OpenKey(k, path, registry.QUERY_VALUE, func(key registry.Key) error {
29+
var err error
30+
value, _, err = key.GetStringValue(valueName)
31+
if err != nil {
32+
return err
33+
}
34+
35+
return nil
36+
})
2437
if err != nil {
2538
return "", err
2639
}
@@ -29,27 +42,15 @@ func (r *RegistryRepository) GetStringValue(k registry.Key, path string, valueNa
2942
}
3043

3144
func (r *RegistryRepository) SetStringValue(k registry.Key, path string, valueName string, value string) error {
32-
key, err := registry.OpenKey(k, path, registry.QUERY_VALUE|registry.SET_VALUE)
33-
if err != nil {
34-
return err
35-
}
36-
defer func(key registry.Key) {
37-
_ = key.Close()
38-
}(key)
39-
40-
return key.SetStringValue(valueName, value)
45+
return r.OpenKey(k, path, registry.QUERY_VALUE|registry.SET_VALUE, func(key registry.Key) error {
46+
return key.SetStringValue(valueName, value)
47+
})
4148
}
4249

4350
func (r *RegistryRepository) DeleteValue(k registry.Key, path string, valueName string) error {
44-
key, err := registry.OpenKey(k, path, registry.QUERY_VALUE|registry.SET_VALUE)
45-
if err != nil {
46-
return err
47-
}
48-
defer func(key registry.Key) {
49-
_ = key.Close()
50-
}(key)
51-
52-
return key.DeleteValue(valueName)
51+
return r.OpenKey(k, path, registry.QUERY_VALUE|registry.SET_VALUE, func(key registry.Key) error {
52+
return key.DeleteValue(valueName)
53+
})
5354
}
5455

5556
func (r *RegistryRepository) CreateKey(k registry.Key, path string) error {

0 commit comments

Comments
 (0)