From 0f90ae17548c89a9ccde112948a6b57b54c2a01c Mon Sep 17 00:00:00 2001 From: Eric Blossom Date: Tue, 18 Aug 2009 17:39:02 -0700 Subject: Add pmt type that wraps a gruel::msg_accepter. QA code doesn't link because pmt depends on msg and vice versa --- gruel/src/lib/pmt/pmt.cc | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) (limited to 'gruel/src/lib/pmt/pmt.cc') diff --git a/gruel/src/lib/pmt/pmt.cc b/gruel/src/lib/pmt/pmt.cc index f0e3c30a2..5301529b2 100644 --- a/gruel/src/lib/pmt/pmt.cc +++ b/gruel/src/lib/pmt/pmt.cc @@ -26,8 +26,9 @@ #include #include #include "pmt_int.h" -#include +#include #include +#include #include namespace pmt { @@ -881,6 +882,36 @@ pmt_any_set(pmt_t obj, const boost::any &any) _any(obj)->set(any); } +//////////////////////////////////////////////////////////////////////////// +// msg_accepter -- built from "any" +//////////////////////////////////////////////////////////////////////////// + +bool +pmt_is_msg_accepter(const pmt_t &obj) +{ + if (!pmt_is_any(obj)) + return false; + + boost::any r = pmt_any_ref(obj); + return boost::any_cast(&r) != 0; +} + +//! make a msg_accepter +pmt_t +pmt_make_msg_accepter(gruel::msg_accepter_sptr ma) +{ + return pmt_make_any(ma); +} + +//! Return underlying msg_accepter +gruel::msg_accepter_sptr +pmt_msg_accepter_ref(const pmt_t &obj) +{ + return boost::any_cast(pmt_any_ref(obj)); +} + + + //////////////////////////////////////////////////////////////////////////// // General Functions //////////////////////////////////////////////////////////////////////////// -- cgit