mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-14 06:33:34 +08:00
Added simple method binder and system clock getter for dispatcher
This commit is contained in:
@@ -89,6 +89,9 @@ public:
|
||||
IOutgoingTransferRegistry& getOutgoingTransferRegistry() { return outgoing_transfer_reg_; }
|
||||
|
||||
NodeID getSelfNodeID() const { return self_node_id_; }
|
||||
|
||||
const ISystemClock& getSystemClock() const { return sysclock_; }
|
||||
ISystemClock& getSystemClock() { return sysclock_; }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -74,6 +74,27 @@ template<bool> struct BooleanType { };
|
||||
typedef BooleanType<true> TrueType;
|
||||
typedef BooleanType<false> FalseType;
|
||||
|
||||
/**
|
||||
* Makeshift binder
|
||||
*/
|
||||
template <typename ObjectPtr, typename MemFunPtr>
|
||||
class MethodBinder
|
||||
{
|
||||
ObjectPtr obj_;
|
||||
MemFunPtr fun_;
|
||||
|
||||
public:
|
||||
MethodBinder(ObjectPtr o, MemFunPtr f) : obj_(o), fun_(f) { }
|
||||
|
||||
void operator()() { (obj_->*fun_)(); }
|
||||
|
||||
template <typename Par1>
|
||||
void operator()(Par1 p1) { (obj_->*fun_)(p1); }
|
||||
|
||||
template <typename Par1, typename Par2>
|
||||
void operator()(Par1 p1, Par2 p2) { (obj_->*fun_)(p1, p2); }
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
/// Ensure that conditional comilation macros are present
|
||||
|
||||
Reference in New Issue
Block a user