diff --git a/src/modules/uORB/uORB.cpp b/src/modules/uORB/uORB.cpp index 8a0bf0bdfc..f962ed3e5d 100644 --- a/src/modules/uORB/uORB.cpp +++ b/src/modules/uORB/uORB.cpp @@ -67,23 +67,6 @@ int orb_unadvertise(orb_advert_t handle) return uORB::Manager::get_instance()->orb_unadvertise(handle); } -int orb_publish_auto(const struct orb_metadata *meta, orb_advert_t *handle, const void *data, int *instance, - int priority) -{ - if (*handle == nullptr) { - *handle = orb_advertise_multi(meta, data, instance, priority); - - if (*handle != nullptr) { - return 0; - } - - } else { - return orb_publish(meta, *handle, data); - } - - return -1; -} - int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data) { return uORB::Manager::get_instance()->orb_publish(meta, handle, data); diff --git a/src/modules/uORB/uORB.h b/src/modules/uORB/uORB.h index f4b1794e66..a75dfb1f07 100644 --- a/src/modules/uORB/uORB.h +++ b/src/modules/uORB/uORB.h @@ -161,6 +161,11 @@ extern orb_advert_t orb_advertise_multi_queue(const struct orb_metadata *meta, c */ extern int orb_unadvertise(orb_advert_t handle) __EXPORT; +/** + * @see uORB::Manager::orb_publish() + */ +extern int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data) __EXPORT; + /** * Advertise as the publisher of a topic. * @@ -169,13 +174,23 @@ extern int orb_unadvertise(orb_advert_t handle) __EXPORT; * * @see uORB::Manager::orb_advertise_multi() for meaning of the individual parameters */ -extern int orb_publish_auto(const struct orb_metadata *meta, orb_advert_t *handle, const void *data, int *instance, - int priority); - -/** - * @see uORB::Manager::orb_publish() - */ -extern int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data) __EXPORT; +static inline int orb_publish_auto(const struct orb_metadata *meta, orb_advert_t *handle, const void *data, + int *instance, + int priority) +{ + if (!*handle) { + *handle = orb_advertise_multi(meta, data, instance, priority); + + if (*handle) { + return 0; + } + + } else { + return orb_publish(meta, *handle, data); + } + + return -1; +} /** * @see uORB::Manager::orb_subscribe()