blob: a501bba5a22f944c09f723c25152d331700d2b3d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
#include "resources.hpp"
#include "interfaces/mount_point_state_machine.hpp"
namespace resource
{
Process::~Process()
{
if (spawned)
{
process->stop([& machine = *machine] {
boost::asio::post(machine.getIoc(), [&machine]() {
machine.emitSubprocessStoppedEvent();
});
});
}
}
Gadget::Gadget(interfaces::MountPointStateMachine& machine,
StateChange devState) :
machine(&machine)
{
status = UsbGadget::configure(
std::string(machine.getName()), machine.getConfig().nbdDevice, devState,
machine.getTarget() ? machine.getTarget()->rw : false);
}
Gadget::~Gadget()
{
int32_t ret = UsbGadget::configure(std::string(machine->getName()),
machine->getConfig().nbdDevice,
StateChange::removed);
if (ret != 0)
{
// This shouldn't ever happen, perhaps best is to restart
// app
LogMsg(Logger::Critical, machine->getName(),
" Some serious failure happened!");
boost::asio::post(machine->getIoc(), [& machine = *machine]() {
machine.emitUdevStateChangeEvent(machine.getConfig().nbdDevice,
StateChange::unknown);
});
}
}
} // namespace resource
|