Introduce a new class to manage devices, `DeviceManger` and move the code to open devices from the `Device` here. The main insight of why the logic should be place here is that certain information is needed to open the devices, independently of specific type: the path to the device node directory, `devpath`, the actual `tree` and the service manager instance to start the actual service. Instead of passing all this information again and again to the `Device` class, we now have a specialized (service) manager class for devices that has all the needed information all the time. Additionally, the special handling of parent devices is moved from the pipeline to the service manager, which is where it belongs. This will make even more sense for mounts, where the `DeviceManger` can then be passed to access the individual devices. Port the test to use the `DeviceManager`. |
||
|---|---|---|
| .. | ||
| data | ||
| mod | ||
| pipelines | ||
| run | ||
| src | ||
| .gitignore | ||
| __init__.py | ||
| initrd.py | ||
| test.py | ||