 |
GNU Radio Manual and C++ API Reference
3.9.4.0
The Free & Open Software Radio Ecosystem
|
|
Go to the documentation of this file.
11 #ifndef RPCREGISTERHELPERS_H
12 #define RPCREGISTERHELPERS_H
22 typedef std::shared_ptr<rpcbasic_base> rpcbasic_sptr;
35 template <
typename T,
typename Tto>
49 throw std::runtime_error(
50 "rpcextractor_base: no post defined for this data type.");
55 void (T::*
_func)(Tto);
69 throw std::runtime_error(
70 "rpcextractor_base: no post defined for this data type.");
81 template <
typename T,
typename Tto>
101 template <
typename T,
typename Tfrom>
124 template <
typename T,
typename Tfrom>
156 template <
typename T>
180 template <
typename T>
199 template <
typename T>
220 template <
typename T>
241 template <
typename T>
262 template <
typename T>
283 template <
typename T>
304 template <
typename T>
325 template <
typename T>
346 template <
typename T>
367 template <
typename T>
381 std::complex<float> k =
static_cast<std::complex<float>
>(
pmt::to_complex(msg));
390 template <
typename T>
412 template <
typename T>
439 template <
typename T>
465 template <
typename T>
484 std::vector<signed char> vec(
494 template <
typename T>
522 template <
typename T>
550 template <
typename T>
569 std::vector<int64_t> vec(
579 template <
typename T>
598 std::vector<std::complex<float>> vec(
608 template <
typename T>
636 template <
typename T>
655 std::vector<uint8_t> vec(
665 template <
typename T>
693 template <
typename T>
712 std::complex<double> k(
722 template <
typename T>
776 template <
typename T,
typename Tto>
805 const char* functionbase,
806 void (T::*
function)(Tto),
810 const char* units_ =
"",
811 const char* desc_ =
"",
820 d_minpriv = minpriv_;
821 d_display = display_;
822 d_object =
dynamic_cast<T*
>(
824 #ifdef GR_RPCSERVER_ENABLED
834 std::ostringstream oss(std::ostringstream::out);
835 oss << block_alias <<
"::" << functionbase;
866 const char* functionbase,
868 void (T::*
function)(Tto),
872 const char* units_ =
"",
873 const char* desc_ =
"",
882 d_minpriv = minpriv_;
883 d_display = display_;
885 #ifdef GR_RPCSERVER_ENABLED
895 std::ostringstream oss(std::ostringstream::out);
896 oss << name <<
"::" << functionbase;
905 #ifdef GR_RPCSERVER_ENABLED
914 std::string
units()
const {
return d_units; }
922 void units(std::string u) { d_units = u; }
930 std::string d_units, d_desc;
961 template <
typename T>
985 const char* functionbase,
986 void (T::*
function)(),
987 const char* desc_ =
"",
991 d_minpriv = minpriv_;
992 d_object =
dynamic_cast<T*
>(
994 #ifdef GR_RPCSERVER_ENABLED
999 std::ostringstream oss(std::ostringstream::out);
1000 oss << block_alias <<
"::" << functionbase;
1026 const char* functionbase,
1028 void (T::*
function)(),
1029 const char* desc_ =
"",
1033 d_minpriv = minpriv_;
1035 #ifdef GR_RPCSERVER_ENABLED
1039 std::string(desc_));
1040 std::ostringstream oss(std::ostringstream::out);
1041 oss << name <<
"::" << functionbase;
1050 #ifdef GR_RPCSERVER_ENABLED
1056 std::string
description()
const {
return d_desc; }
1105 template <
typename T,
typename Tfrom>
1136 const char* functionbase,
1137 Tfrom (T::*
function)(),
1141 const char* units_ =
"",
1142 const char* desc_ =
"",
1151 d_minpriv = minpriv_;
1152 d_display = display_;
1153 d_object =
dynamic_cast<T*
>(
1155 #ifdef GR_RPCSERVER_ENABLED
1159 std::string(units_),
1165 std::ostringstream oss(std::ostringstream::out);
1166 oss << block_alias <<
"::" << functionbase;
1179 const char* functionbase,
1180 Tfrom (T::*
function)()
const,
1184 const char* units_ =
"",
1185 const char* desc_ =
"",
1194 d_minpriv = minpriv_;
1195 d_display = display_;
1196 d_object =
dynamic_cast<T*
>(
1198 #ifdef GR_RPCSERVER_ENABLED
1202 std::string(units_),
1208 std::ostringstream oss(std::ostringstream::out);
1209 oss << block_alias <<
"::" << functionbase;
1242 const char* functionbase,
1244 Tfrom (T::*
function)(),
1248 const char* units_ =
"",
1249 const char* desc_ =
"",
1258 d_minpriv = minpriv_;
1259 d_display = display_;
1261 #ifdef GR_RPCSERVER_ENABLED
1265 std::string(units_),
1271 std::ostringstream oss(std::ostringstream::out);
1272 oss << name <<
"::" << functionbase;
1285 const char* functionbase,
1287 Tfrom (T::*
function)()
const,
1291 const char* units_ =
"",
1292 const char* desc_ =
"",
1301 d_minpriv = minpriv_;
1302 d_display = display_;
1304 #ifdef GR_RPCSERVER_ENABLED
1308 std::string(units_),
1314 std::ostringstream oss(std::ostringstream::out);
1315 oss << name <<
"::" << functionbase;
1325 #ifdef GR_RPCSERVER_ENABLED
1333 std::string
units()
const {
return d_units; }
1341 void units(std::string u) { d_units = u; }
1349 std::string d_units, d_desc;
1393 template <
typename Tfrom>
1402 void setptr(Tfrom* _variable)
1424 throw std::runtime_error(
1425 "ERROR: rpcbasic_register_variable called with no args. If this happens, "
1426 "someone has tried to use rpcbasic_register_variable incorrectly.");
1448 const char* functionbase,
1453 const char* units_ =
"",
1454 const char* desc_ =
"",
1510 template <
typename Tfrom>
1521 : d_rpc_regset(
"FAIL",
1533 throw std::runtime_error(
1534 "ERROR: rpcbasic_register_variable_rw called with no args. if this happens "
1535 "someone used rpcbasic_register_variable_rw incorrectly.");
1562 const char* functionbase,
1567 const char* units_ =
"",
1568 const char* desc_ =
"",
1572 namebase, functionbase, variable,
min, max, def, units_, desc_),
1573 d_rpc_regset(namebase,
1594 template <
typename T>
1615 const char* handler,
1616 const char* units_ =
"",
1617 const char* desc_ =
"",
1623 d_minpriv = minpriv_;
1624 d_display = display_;
1625 d_object =
dynamic_cast<T*
>(
1627 #ifdef GR_RPCSERVER_ENABLED
1631 std::string(units_),
1637 std::ostringstream oss(std::ostringstream::out);
1638 oss << block_alias <<
"::" << handler;
1647 #ifdef GR_RPCSERVER_ENABLED
1652 std::string
units()
const {
return d_units; }
1657 void units(std::string u) { d_units = u; }
1664 std::string d_units, d_desc;
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:710
rpcinserter_base()
Definition: rpcregisterhelpers.h:108
priv_lvl_t
Definition: rpccallbackregister_base.h:34
void set_max(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:922
std::string units() const
Definition: rpcregisterhelpers.h:1652
~rpcbasic_register_get() override
Definition: rpcregisterhelpers.h:1325
@ RPC_PRIVLVL_MIN
Definition: rpccallbackregister_base.h:34
rpcbasic_inserter(T *source, std::vector< int64_t >(T::*func)() const)
Definition: rpcregisterhelpers.h:555
rpcbasic_handler(T *source, const char *handler)
Definition: rpcregisterhelpers.h:184
priv_lvl_t privilege_level() const
Definition: rpcregisterhelpers.h:1059
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:511
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:596
rpcbasic_inserter(T *source, std::vector< short >(T::*func)())
Definition: rpcregisterhelpers.h:505
Registers a 'get' function to get a parameter over ControlPort.
Definition: rpcregisterhelpers.h:1106
PMT_API double to_double(pmt_t x)
Convert pmt to double if possible.
DisplayType default_display() const
Definition: rpcregisterhelpers.h:919
pmt::pmt_t max() const
Definition: rpcregisterhelpers.h:1333
void set(Tfrom _variable)
Definition: rpcregisterhelpers.h:1538
~rpcbasic_register_handler() override
Definition: rpcregisterhelpers.h:1645
rpcbasic_inserter(T *source, std::complex< float >(T::*func)() const)
Definition: rpcregisterhelpers.h:670
pmt::pmt_t def() const
Definition: rpcregisterhelpers.h:1334
Virtual base class that produces messages.
Definition: msg_producer.h:24
Registers a 'set' function to set a parameter over ControlPort.
Definition: rpcregisterhelpers.h:777
~rpchandler_base() override
Definition: rpcregisterhelpers.h:166
~rpcbasic_register_set() override
Definition: rpcregisterhelpers.h:905
uint32_t DisplayType
Definition: rpccallbackregister_base.h:17
void unregisterQueryCallback(const std::string &id) override=0
std::string units() const
Definition: rpcregisterhelpers.h:1335
float min(float a, float b)
rpcbasic_register_variable_rw(const std::string &namebase, const char *functionbase, Tfrom *variable, const pmt::pmt_t &min, const pmt::pmt_t &max, const pmt::pmt_t &def, const char *units_="", const char *desc_="", priv_lvl_t minpriv=RPC_PRIVLVL_MIN, DisplayType display_=DISPNULL)
Adds the ability to set and get the variable over ControlPort.
Definition: rpcregisterhelpers.h:1561
const PMT_API std::string symbol_to_string(const pmt_t &sym)
PMT_API std::complex< double > to_complex(pmt_t z)
PMT_API bool to_bool(pmt_t val)
Return true if val is pmt::True, return false when val is pmt::PMT_F,.
void unregisterHandlerCallback(const std::string &id) override=0
std::string units() const
Definition: rpcregisterhelpers.h:916
rpcbasic_inserter(T *source, std::vector< uint8_t >(T::*func)() const)
Definition: rpcregisterhelpers.h:641
static int count
Definition: rpcregisterhelpers.h:727
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:567
rpchandler_base(T *source, const char *handler)
Definition: rpcregisterhelpers.h:162
Definition: rpccallbackregister_base.h:82
rpcbasic_inserter(T *source, std::vector< std::complex< float >>(T::*func)() const)
Definition: rpcregisterhelpers.h:584
std::string description() const
Definition: rpcregisterhelpers.h:1336
priv_lvl_t privilege_level() const
Definition: rpcregisterhelpers.h:918
rpcbasic_inserter(T *source, std::vector< signed char >(T::*func)() const)
Definition: rpcregisterhelpers.h:470
PMT_API pmt_t init_s64vector(size_t k, const int64_t *data)
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:140
virtual ~rpcbasic_base()
Definition: rpcregisterhelpers.h:737
void set_min(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:921
rpcbasic_register_variable()
Definition: rpcregisterhelpers.h:1412
Registers a read-only function to get a parameter over ControlPort.
Definition: rpcregisterhelpers.h:1394
PMT_API pmt_t init_f32vector(size_t k, const float *data)
rpcbasic_register_set(const std::string &block_alias, const char *functionbase, void(T::*function)(Tto), const pmt::pmt_t &min, const pmt::pmt_t &max, const pmt::pmt_t &def, const char *units_="", const char *desc_="", priv_lvl_t minpriv_=RPC_PRIVLVL_MIN, DisplayType display_=DISPNULL)
Adds the ability to set the variable over ControlPort.
Definition: rpcregisterhelpers.h:806
pmt::pmt_t def() const
Definition: rpcregisterhelpers.h:915
PMT_API pmt_t init_s32vector(size_t k, const int32_t *data)
rpcbasic_register_trigger(const std::string &block_alias, const char *functionbase, void(T::*function)(), const char *desc_="", priv_lvl_t minpriv_=RPC_PRIVLVL_MIN)
Adds the ability to trigger a function over ControlPort.
Definition: rpcregisterhelpers.h:986
const char * _handler
Definition: rpcregisterhelpers.h:175
priv_lvl_t privilege_level() const
Definition: rpcregisterhelpers.h:1654
void set_def(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:1342
rpcbasic_inserter(T *source, std::complex< double >(T::*func)())
Definition: rpcregisterhelpers.h:704
void units(std::string u)
Definition: rpcregisterhelpers.h:1657
pmt::pmt_t max() const
Definition: rpcregisterhelpers.h:914
void setptr(Tfrom *_variable)
Definition: rpcregisterhelpers.h:1404
#define PMT_NIL
Definition: pmt.h:122
rpcbasic_inserter(T *source, std::vector< std::complex< float >>(T::*func)())
Definition: rpcregisterhelpers.h:590
Base class for registering a ControlPort Handler. Acts as a message acceptor.
Definition: rpcregisterhelpers.h:157
std::string description() const
Definition: rpcregisterhelpers.h:1058
DisplayType default_display() const
Definition: rpcregisterhelpers.h:1338
rpcbasic_inserter(T *source, std::vector< float >(T::*func)())
Definition: rpcregisterhelpers.h:619
rpcbasic_register_handler(const std::string &block_alias, const char *handler, const char *units_="", const char *desc_="", priv_lvl_t minpriv_=RPC_PRIVLVL_MIN, DisplayType display_=DISPNULL)
Adds the ability to pass a message over ControlPort.
Definition: rpcregisterhelpers.h:1614
static pmt_t mp(const std::string &s)
Make pmt symbol.
Definition: pmt_sugar.h:24
Definition: rpcregisterhelpers.h:733
GR_RUNTIME_API gr::block_registry global_block_registry
std::string description() const
Definition: rpcregisterhelpers.h:917
Registers a read/write function to get and set a parameter over ControlPort.
Definition: rpcregisterhelpers.h:1511
rpcbasic_inserter(T *source, std::vector< short >(T::*func)() const)
Definition: rpcregisterhelpers.h:499
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:653
void default_display(DisplayType d)
Definition: rpcregisterhelpers.h:1660
virtual rpcserver_base * i()=0
pmt::pmt_t min() const
Definition: rpcregisterhelpers.h:913
rpcbasic_inserter(T *source, std::vector< int >(T::*func)() const)
Definition: rpcregisterhelpers.h:527
rpcbasic_inserter(T *source, std::vector< int >(T::*func)())
Definition: rpcregisterhelpers.h:533
rpcbasic_inserter(T *source, std::complex< float >(T::*func)())
Definition: rpcregisterhelpers.h:676
Base class for registering a ControlPort Inserter. Produces a message.
Definition: rpcregisterhelpers.h:102
void registerHandlerCallback(const std::string &id, const handlerCallback_t callback) override=0
rpcbasic_register_get< rpcbasic_register_variable< Tfrom >, Tfrom > d_rpc_reg
Definition: rpcregisterhelpers.h:1399
PMT_API pmt_t init_u8vector(size_t k, const uint8_t *data)
PMT_API pmt_t init_s16vector(size_t k, const int16_t *data)
pmt::pmt_t min() const
Definition: rpcregisterhelpers.h:1332
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:625
void registerQueryCallback(const std::string &id, const queryCallback_t callback) override=0
void set_min(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:1340
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:539
rpcbasic_inserter(T *source, std::vector< signed char >(T::*func)())
Definition: rpcregisterhelpers.h:476
Templated parent class for registering a ControlPort Inserter.
Definition: rpcregisterhelpers.h:125
std::shared_ptr< pmt_base > pmt_t
typedef for shared pointer (transparent reference counting).
Definition: pmt.h:84
PMT_API pmt_t from_complex(double re, double im)
Return a complex number constructed of the given real and imaginary parts.
void registerConfigureCallback(const std::string &id, const configureCallback_t callback) override=0
PMT_API long to_long(pmt_t x)
Convert pmt to long if possible.
void unregisterConfigureCallback(const std::string &id) override=0
rpcbasic_inserter(T *source, std::complex< double >(T::*func)() const)
Definition: rpcregisterhelpers.h:698
basic_block_sptr block_lookup(pmt::pmt_t symbol)
constexpr uint32_t DISPNULL
DisplayType Plotting types.
Definition: rpccallbackregister_base.h:20
priv_lvl_t privilege_level() const
Definition: rpcregisterhelpers.h:1337
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:682
void post(pmt::pmt_t which_port, pmt::pmt_t msg) override
send msg to msg_accepter on port which_port
Definition: rpcregisterhelpers.h:168
rpcbasic_inserter(T *source, Tfrom(T::*func)())
Definition: rpcregisterhelpers.h:134
rpcbasic_inserter(T *source, std::vector< int64_t >(T::*func)())
Definition: rpcregisterhelpers.h:561
rpcbasic_register_variable_rw()
Definition: rpcregisterhelpers.h:1520
~rpcbasic_register_trigger() override
Definition: rpcregisterhelpers.h:1050
Base class for registering a ControlPort function.
Definition: rpcregisterhelpers.h:723
Tfrom * d_variable
Definition: rpcregisterhelpers.h:1400
static rpcserver_booter_base * get()
void privilege_level(priv_lvl_t p)
Definition: rpcregisterhelpers.h:1659
PMT_API pmt_t from_uint64(uint64_t x)
Return the pmt value that represents the uint64 x.
rpcbasic_inserter(T *source, std::vector< uint8_t >(T::*func)())
Definition: rpcregisterhelpers.h:647
T * _source
Definition: rpcregisterhelpers.h:174
rpcbasic_inserter(T *source, std::vector< float >(T::*func)() const)
Definition: rpcregisterhelpers.h:613
DisplayType default_display() const
Definition: rpcregisterhelpers.h:1655
T * _source
Definition: rpcregisterhelpers.h:117
Registers a 'trigger' function to trigger an action over ControlPort.
Definition: rpcregisterhelpers.h:962
PMT_API pmt_t intern(const std::string &s)
Alias for pmt_string_to_symbol.
Tfrom get()
Definition: rpcregisterhelpers.h:1401
Virtual base class that accepts messages.
Definition: messages/msg_accepter.h:24
PMT_API pmt_t init_c32vector(size_t k, const std::complex< float > *data)
PMT_API pmt_t init_s8vector(size_t k, const int8_t *data)
rpcbasic_register_get(const std::string &block_alias, const char *functionbase, Tfrom(T::*function)(), const pmt::pmt_t &min, const pmt::pmt_t &max, const pmt::pmt_t &def, const char *units_="", const char *desc_="", priv_lvl_t minpriv_=RPC_PRIVLVL_MIN, DisplayType display_=DISPNULL)
Adds the ability to get the variable over ControlPort.
Definition: rpcregisterhelpers.h:1137
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:482
Tfrom(T::* _func)()
Definition: rpcregisterhelpers.h:118
std::string description() const
Definition: rpcregisterhelpers.h:1653
void description(std::string d)
Definition: rpcregisterhelpers.h:1658
Templated parent class for registering a ControlPort Extractor.
Definition: rpcregisterhelpers.h:181
rpcbasic_base()
Definition: rpcregisterhelpers.h:736
Registers a message handler function to post a message to a block's handler.
Definition: rpcregisterhelpers.h:1595
void set_max(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:1341
rpc_register_base()
Definition: rpcregisterhelpers.h:724
rpcbasic_inserter(T *source, Tfrom(T::*func)() const)
Definition: rpcregisterhelpers.h:128
pmt::pmt_t retrieve() override
send msg to msg_producer
Definition: rpcregisterhelpers.h:110
void set_def(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:923