diff options
author | James Goppert <james.goppert@gmail.com> | 2014-03-16 17:01:03 -0400 |
---|---|---|
committer | James Goppert <james.goppert@gmail.com> | 2014-03-20 12:12:42 -0400 |
commit | afb2c37bfc20150718114c4ef56e40a7c4d4722f (patch) | |
tree | 593fdec377ee6f0a6364a2a62783e868e59ba821 /src/modules/uORB/Subscription.cpp | |
parent | da9dab27998fa9e8b7a66d53a00aa3cae93573ec (diff) | |
download | px4-firmware-afb2c37bfc20150718114c4ef56e40a7c4d4722f.tar.gz px4-firmware-afb2c37bfc20150718114c4ef56e40a7c4d4722f.tar.bz2 px4-firmware-afb2c37bfc20150718114c4ef56e40a7c4d4722f.zip |
Fixed uORB Pub/Sub templates for GCC 4.7
Diffstat (limited to 'src/modules/uORB/Subscription.cpp')
-rw-r--r-- | src/modules/uORB/Subscription.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/modules/uORB/Subscription.cpp b/src/modules/uORB/Subscription.cpp index 6e8830708..16da3b66f 100644 --- a/src/modules/uORB/Subscription.cpp +++ b/src/modules/uORB/Subscription.cpp @@ -37,6 +37,10 @@ */ #include "Subscription.hpp" +#include "topics/parameter_update.h" +#include "topics/actuator_controls.h" +#include "topics/vehicle_gps_position.h" +#include "topics/sensor_combined.h" namespace uORB { @@ -48,4 +52,32 @@ bool __EXPORT SubscriptionBase::updated() return isUpdated; } +template<class T> +Subscription<T>::Subscription( + List<SubscriptionBase *> * list, + const struct orb_metadata *meta, unsigned interval) : + T(), // initialize data structure to zero + SubscriptionBase(list, meta) { + setHandle(orb_subscribe(getMeta())); + orb_set_interval(getHandle(), interval); +} + +template<class T> +Subscription<T>::~Subscription() {} + +template<class T> +void * Subscription<T>::getDataVoidPtr() { + return (void *)(T *)(this); +} + +template<class T> +T Subscription<T>::getData() { + return T(*this); +} + +template class __EXPORT Subscription<parameter_update_s>; +template class __EXPORT Subscription<actuator_controls_s>; +template class __EXPORT Subscription<vehicle_gps_position_s>; +template class __EXPORT Subscription<sensor_combined_s>; + } // namespace uORB |