From 36bf0c04c8cb052c67e613eb051b0deb650eb216 Mon Sep 17 00:00:00 2001 From: Thomas Gubler Date: Fri, 28 Nov 2014 08:58:44 +0100 Subject: WIP, c++11 style callbacks for px4 --- src/platforms/px4_nodehandle.h | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/platforms/px4_nodehandle.h') diff --git a/src/platforms/px4_nodehandle.h b/src/platforms/px4_nodehandle.h index b665f3fe7..f473bf629 100644 --- a/src/platforms/px4_nodehandle.h +++ b/src/platforms/px4_nodehandle.h @@ -105,10 +105,12 @@ public: ~NodeHandle() {}; template - Subscriber * subscribe(const struct orb_metadata *meta, void(*fp)(M)) { + Subscriber * subscribe(const struct orb_metadata *meta, std::function callback) { + // Subscriber * subscribe(const struct orb_metadata *meta, std::function callback) { + // Subscriber * subscribe(const struct orb_metadata *meta, CallbackFunction callback) { unsigned interval = 0;//XXX decide how to wrap this, ros equivalent? //XXX - Subscriber *sub = new Subscriber(meta, interval, fp, &_subs); + Subscriber *sub = new SubscriberPX4(meta, interval, callback, &_subs); return sub; } @@ -118,7 +120,14 @@ public: Publisher * pub = new Publisher(meta, &_pubs); return pub; } + + void spinOnce(); + + void spin() { + //XXX: call callbacks and do not return until task is terminated + } private: + static const uint16_t kMaxSubscriptions = 100; List _subs; List _pubs; -- cgit v1.2.3