refactor orb: uORB::Manager is responsible for the DeviceMaster objects

This has the following benefits:
- Manager can ensure that there is at most one instance of DeviceMaster
  per Flavor
- The Manager needs access to (static) data of DeviceMaster already.
  This will make it easier to access this data in a non-static way, and
  does not introduce new dependencies.
This commit is contained in:
Beat Küng
2016-04-29 13:01:01 +02:00
committed by Lorenz Meier
parent 2dd29ec4a1
commit 45a0a7c5ab
6 changed files with 59 additions and 12 deletions
+2 -10
View File
@@ -72,18 +72,10 @@ uorb_main(int argc, char *argv[])
}
/* create the driver */
g_dev = new uORB::DeviceMaster(uORB::PUBSUB);
g_dev = uORB::Manager::get_instance()->get_device_master(uORB::PUBSUB);
if (g_dev == nullptr) {
PX4_ERR("driver alloc failed");
return -ENOMEM;
}
if (OK != g_dev->init()) {
PX4_ERR("driver init failed");
delete g_dev;
g_dev = nullptr;
return -EIO;
return -errno;
}
return OK;