|
|
|
@ -48,6 +48,24 @@
@@ -48,6 +48,24 @@
|
|
|
|
|
namespace uORB |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
template <typename U> class DefaultQueueSize |
|
|
|
|
{ |
|
|
|
|
private: |
|
|
|
|
template <typename T> |
|
|
|
|
static constexpr uint8_t get_queue_size(decltype(T::ORB_QUEUE_LENGTH) *) |
|
|
|
|
{ |
|
|
|
|
return T::ORB_QUEUE_LENGTH; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template <typename T> static constexpr uint8_t get_queue_size(...) |
|
|
|
|
{ |
|
|
|
|
return 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public: |
|
|
|
|
static constexpr unsigned value = get_queue_size<U>(nullptr); |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
class PublicationBase |
|
|
|
|
{ |
|
|
|
|
public: |
|
|
|
@ -79,7 +97,7 @@ protected:
@@ -79,7 +97,7 @@ protected:
|
|
|
|
|
/**
|
|
|
|
|
* uORB publication wrapper class
|
|
|
|
|
*/ |
|
|
|
|
template<typename T, uint8_t ORB_QSIZE = 1> |
|
|
|
|
template<typename T, uint8_t ORB_QSIZE = DefaultQueueSize<T>::value> |
|
|
|
|
class Publication : public PublicationBase |
|
|
|
|
{ |
|
|
|
|
public: |
|
|
|
|