 |
GNU Radio Manual and C++ API Reference
3.9.1.0
The Free & Open Software Radio Ecosystem
|
|
Go to the documentation of this file.
11 #ifndef RPCREGISTERHELPERS_H
12 #define RPCREGISTERHELPERS_H
24 typedef std::shared_ptr<rpcbasic_base> rpcbasic_sptr;
37 template <
typename T,
typename Tto>
51 throw std::runtime_error(
52 "rpcextractor_base: no post defined for this data type.");
57 void (T::*
_func)(Tto);
71 throw std::runtime_error(
72 "rpcextractor_base: no post defined for this data type.");
83 template <
typename T,
typename Tto>
103 template <
typename T,
typename Tfrom>
126 template <
typename T,
typename Tfrom>
158 template <
typename T>
182 template <
typename T>
201 template <
typename T>
222 template <
typename T>
243 template <
typename T>
264 template <
typename T>
285 template <
typename T>
306 template <
typename T>
327 template <
typename T>
348 template <
typename T>
369 template <
typename T>
383 std::complex<float> k =
static_cast<std::complex<float>
>(
pmt::to_complex(msg));
392 template <
typename T>
414 template <
typename T>
441 template <
typename T>
467 template <
typename T>
486 std::vector<signed char> vec(
496 template <
typename T>
524 template <
typename T>
552 template <
typename T>
571 std::vector<int64_t> vec(
581 template <
typename T>
600 std::vector<std::complex<float>> vec(
610 template <
typename T>
638 template <
typename T>
657 std::vector<uint8_t> vec(
667 template <
typename T>
695 template <
typename T>
714 std::complex<double> k(
724 template <
typename T>
778 template <
typename T,
typename Tto>
807 const char* functionbase,
808 void (T::*
function)(Tto),
812 const char* units_ =
"",
813 const char* desc_ =
"",
822 d_minpriv = minpriv_;
823 d_display = display_;
824 d_object =
dynamic_cast<T*
>(
826 #ifdef GR_RPCSERVER_ENABLED
836 std::ostringstream oss(std::ostringstream::out);
837 oss << block_alias <<
"::" << functionbase;
868 const char* functionbase,
870 void (T::*
function)(Tto),
874 const char* units_ =
"",
875 const char* desc_ =
"",
884 d_minpriv = minpriv_;
885 d_display = display_;
887 #ifdef GR_RPCSERVER_ENABLED
897 std::ostringstream oss(std::ostringstream::out);
898 oss << name <<
"::" << functionbase;
907 #ifdef GR_RPCSERVER_ENABLED
916 std::string
units()
const {
return d_units; }
924 void units(std::string u) { d_units = u; }
932 std::string d_units, d_desc;
963 template <
typename T>
987 const char* functionbase,
988 void (T::*
function)(),
989 const char* desc_ =
"",
993 d_minpriv = minpriv_;
994 d_object =
dynamic_cast<T*
>(
996 #ifdef GR_RPCSERVER_ENABLED
1000 std::string(desc_));
1001 std::ostringstream oss(std::ostringstream::out);
1002 oss << block_alias <<
"::" << functionbase;
1028 const char* functionbase,
1030 void (T::*
function)(),
1031 const char* desc_ =
"",
1035 d_minpriv = minpriv_;
1037 #ifdef GR_RPCSERVER_ENABLED
1041 std::string(desc_));
1042 std::ostringstream oss(std::ostringstream::out);
1043 oss << name <<
"::" << functionbase;
1052 #ifdef GR_RPCSERVER_ENABLED
1058 std::string
description()
const {
return d_desc; }
1107 template <
typename T,
typename Tfrom>
1138 const char* functionbase,
1139 Tfrom (T::*
function)(),
1143 const char* units_ =
"",
1144 const char* desc_ =
"",
1153 d_minpriv = minpriv_;
1154 d_display = display_;
1155 d_object =
dynamic_cast<T*
>(
1157 #ifdef GR_RPCSERVER_ENABLED
1161 std::string(units_),
1167 std::ostringstream oss(std::ostringstream::out);
1168 oss << block_alias <<
"::" << functionbase;
1181 const char* functionbase,
1182 Tfrom (T::*
function)()
const,
1186 const char* units_ =
"",
1187 const char* desc_ =
"",
1196 d_minpriv = minpriv_;
1197 d_display = display_;
1198 d_object =
dynamic_cast<T*
>(
1200 #ifdef GR_RPCSERVER_ENABLED
1204 std::string(units_),
1210 std::ostringstream oss(std::ostringstream::out);
1211 oss << block_alias <<
"::" << functionbase;
1244 const char* functionbase,
1246 Tfrom (T::*
function)(),
1250 const char* units_ =
"",
1251 const char* desc_ =
"",
1260 d_minpriv = minpriv_;
1261 d_display = display_;
1263 #ifdef GR_RPCSERVER_ENABLED
1267 std::string(units_),
1273 std::ostringstream oss(std::ostringstream::out);
1274 oss << name <<
"::" << functionbase;
1287 const char* functionbase,
1289 Tfrom (T::*
function)()
const,
1293 const char* units_ =
"",
1294 const char* desc_ =
"",
1303 d_minpriv = minpriv_;
1304 d_display = display_;
1306 #ifdef GR_RPCSERVER_ENABLED
1310 std::string(units_),
1316 std::ostringstream oss(std::ostringstream::out);
1317 oss << name <<
"::" << functionbase;
1327 #ifdef GR_RPCSERVER_ENABLED
1335 std::string
units()
const {
return d_units; }
1343 void units(std::string u) { d_units = u; }
1351 std::string d_units, d_desc;
1395 template <
typename Tfrom>
1404 void setptr(Tfrom* _variable)
1426 throw std::runtime_error(
1427 "ERROR: rpcbasic_register_variable called with no args. If this happens, "
1428 "someone has tried to use rpcbasic_register_variable incorrectly.");
1450 const char* functionbase,
1455 const char* units_ =
"",
1456 const char* desc_ =
"",
1512 template <
typename Tfrom>
1523 : d_rpc_regset(
"FAIL",
1535 throw std::runtime_error(
1536 "ERROR: rpcbasic_register_variable_rw called with no args. if this happens "
1537 "someone used rpcbasic_register_variable_rw incorrectly.");
1564 const char* functionbase,
1569 const char* units_ =
"",
1570 const char* desc_ =
"",
1574 namebase, functionbase, variable,
min, max, def, units_, desc_),
1575 d_rpc_regset(namebase,
1596 template <
typename T>
1617 const char* handler,
1618 const char* units_ =
"",
1619 const char* desc_ =
"",
1625 d_minpriv = minpriv_;
1626 d_display = display_;
1627 d_object =
dynamic_cast<T*
>(
1629 #ifdef GR_RPCSERVER_ENABLED
1633 std::string(units_),
1639 std::ostringstream oss(std::ostringstream::out);
1640 oss << block_alias <<
"::" << handler;
1649 #ifdef GR_RPCSERVER_ENABLED
1654 std::string
units()
const {
return d_units; }
1659 void units(std::string u) { d_units = u; }
1666 std::string d_units, d_desc;
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:712
rpcinserter_base()
Definition: rpcregisterhelpers.h:110
priv_lvl_t
Definition: rpccallbackregister_base.h:34
void set_max(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:924
std::string units() const
Definition: rpcregisterhelpers.h:1654
~rpcbasic_register_get() override
Definition: rpcregisterhelpers.h:1327
@ RPC_PRIVLVL_MIN
Definition: rpccallbackregister_base.h:34
rpcbasic_inserter(T *source, std::vector< int64_t >(T::*func)() const)
Definition: rpcregisterhelpers.h:557
rpcbasic_handler(T *source, const char *handler)
Definition: rpcregisterhelpers.h:186
priv_lvl_t privilege_level() const
Definition: rpcregisterhelpers.h:1061
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:513
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:598
rpcbasic_inserter(T *source, std::vector< short >(T::*func)())
Definition: rpcregisterhelpers.h:507
Registers a 'get' function to get a parameter over ControlPort.
Definition: rpcregisterhelpers.h:1108
PMT_API double to_double(pmt_t x)
Convert pmt to double if possible.
DisplayType default_display() const
Definition: rpcregisterhelpers.h:921
pmt::pmt_t max() const
Definition: rpcregisterhelpers.h:1335
void set(Tfrom _variable)
Definition: rpcregisterhelpers.h:1540
~rpcbasic_register_handler() override
Definition: rpcregisterhelpers.h:1647
rpcbasic_inserter(T *source, std::complex< float >(T::*func)() const)
Definition: rpcregisterhelpers.h:672
pmt::pmt_t def() const
Definition: rpcregisterhelpers.h:1336
Virtual base class that produces messages.
Definition: msg_producer.h:24
Registers a 'set' function to set a parameter over ControlPort.
Definition: rpcregisterhelpers.h:779
~rpchandler_base() override
Definition: rpcregisterhelpers.h:168
~rpcbasic_register_set() override
Definition: rpcregisterhelpers.h:907
uint32_t DisplayType
Definition: rpccallbackregister_base.h:17
void unregisterQueryCallback(const std::string &id) override=0
std::string units() const
Definition: rpcregisterhelpers.h:1337
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:1563
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:918
rpcbasic_inserter(T *source, std::vector< uint8_t >(T::*func)() const)
Definition: rpcregisterhelpers.h:643
static int count
Definition: rpcregisterhelpers.h:729
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:569
rpchandler_base(T *source, const char *handler)
Definition: rpcregisterhelpers.h:164
Definition: rpccallbackregister_base.h:82
rpcbasic_inserter(T *source, std::vector< std::complex< float >>(T::*func)() const)
Definition: rpcregisterhelpers.h:586
std::string description() const
Definition: rpcregisterhelpers.h:1338
priv_lvl_t privilege_level() const
Definition: rpcregisterhelpers.h:920
rpcbasic_inserter(T *source, std::vector< signed char >(T::*func)() const)
Definition: rpcregisterhelpers.h:472
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:142
virtual ~rpcbasic_base()
Definition: rpcregisterhelpers.h:739
void set_min(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:923
rpcbasic_register_variable()
Definition: rpcregisterhelpers.h:1414
Registers a read-only function to get a parameter over ControlPort.
Definition: rpcregisterhelpers.h:1396
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:808
pmt::pmt_t def() const
Definition: rpcregisterhelpers.h:917
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:988
const char * _handler
Definition: rpcregisterhelpers.h:177
priv_lvl_t privilege_level() const
Definition: rpcregisterhelpers.h:1656
void set_def(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:1344
rpcbasic_inserter(T *source, std::complex< double >(T::*func)())
Definition: rpcregisterhelpers.h:706
void units(std::string u)
Definition: rpcregisterhelpers.h:1659
pmt::pmt_t max() const
Definition: rpcregisterhelpers.h:916
void setptr(Tfrom *_variable)
Definition: rpcregisterhelpers.h:1406
#define PMT_NIL
Definition: pmt.h:122
rpcbasic_inserter(T *source, std::vector< std::complex< float >>(T::*func)())
Definition: rpcregisterhelpers.h:592
Base class for registering a ControlPort Handler. Acts as a message acceptor.
Definition: rpcregisterhelpers.h:159
std::string description() const
Definition: rpcregisterhelpers.h:1060
DisplayType default_display() const
Definition: rpcregisterhelpers.h:1340
rpcbasic_inserter(T *source, std::vector< float >(T::*func)())
Definition: rpcregisterhelpers.h:621
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:1616
static pmt_t mp(const std::string &s)
Make pmt symbol.
Definition: pmt_sugar.h:24
Definition: rpcregisterhelpers.h:735
GR_RUNTIME_API gr::block_registry global_block_registry
std::string description() const
Definition: rpcregisterhelpers.h:919
Registers a read/write function to get and set a parameter over ControlPort.
Definition: rpcregisterhelpers.h:1513
rpcbasic_inserter(T *source, std::vector< short >(T::*func)() const)
Definition: rpcregisterhelpers.h:501
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:655
void default_display(DisplayType d)
Definition: rpcregisterhelpers.h:1662
virtual rpcserver_base * i()=0
pmt::pmt_t min() const
Definition: rpcregisterhelpers.h:915
rpcbasic_inserter(T *source, std::vector< int >(T::*func)() const)
Definition: rpcregisterhelpers.h:529
rpcbasic_inserter(T *source, std::vector< int >(T::*func)())
Definition: rpcregisterhelpers.h:535
rpcbasic_inserter(T *source, std::complex< float >(T::*func)())
Definition: rpcregisterhelpers.h:678
Base class for registering a ControlPort Inserter. Produces a message.
Definition: rpcregisterhelpers.h:104
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:1401
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:1334
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:627
void registerQueryCallback(const std::string &id, const queryCallback_t callback) override=0
void set_min(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:1342
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:541
rpcbasic_inserter(T *source, std::vector< signed char >(T::*func)())
Definition: rpcregisterhelpers.h:478
Templated parent class for registering a ControlPort Inserter.
Definition: rpcregisterhelpers.h:127
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:700
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:1339
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:684
void post(pmt::pmt_t which_port, pmt::pmt_t msg) override
send msg to msg_accepter on port which_port
Definition: rpcregisterhelpers.h:170
rpcbasic_inserter(T *source, Tfrom(T::*func)())
Definition: rpcregisterhelpers.h:136
rpcbasic_inserter(T *source, std::vector< int64_t >(T::*func)())
Definition: rpcregisterhelpers.h:563
rpcbasic_register_variable_rw()
Definition: rpcregisterhelpers.h:1522
~rpcbasic_register_trigger() override
Definition: rpcregisterhelpers.h:1052
Base class for registering a ControlPort function.
Definition: rpcregisterhelpers.h:725
Tfrom * d_variable
Definition: rpcregisterhelpers.h:1402
static rpcserver_booter_base * get()
void privilege_level(priv_lvl_t p)
Definition: rpcregisterhelpers.h:1661
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:649
T * _source
Definition: rpcregisterhelpers.h:176
rpcbasic_inserter(T *source, std::vector< float >(T::*func)() const)
Definition: rpcregisterhelpers.h:615
DisplayType default_display() const
Definition: rpcregisterhelpers.h:1657
T * _source
Definition: rpcregisterhelpers.h:119
Registers a 'trigger' function to trigger an action over ControlPort.
Definition: rpcregisterhelpers.h:964
PMT_API pmt_t intern(const std::string &s)
Alias for pmt_string_to_symbol.
Tfrom get()
Definition: rpcregisterhelpers.h:1403
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:1139
pmt::pmt_t retrieve()
send msg to msg_producer
Definition: rpcregisterhelpers.h:484
Tfrom(T::* _func)()
Definition: rpcregisterhelpers.h:120
std::string description() const
Definition: rpcregisterhelpers.h:1655
void description(std::string d)
Definition: rpcregisterhelpers.h:1660
Templated parent class for registering a ControlPort Extractor.
Definition: rpcregisterhelpers.h:183
rpcbasic_base()
Definition: rpcregisterhelpers.h:738
Registers a message handler function to post a message to a block's handler.
Definition: rpcregisterhelpers.h:1597
void set_max(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:1343
rpc_register_base()
Definition: rpcregisterhelpers.h:726
rpcbasic_inserter(T *source, Tfrom(T::*func)() const)
Definition: rpcregisterhelpers.h:130
pmt::pmt_t retrieve() override
send msg to msg_producer
Definition: rpcregisterhelpers.h:112
void set_def(pmt::pmt_t p)
Definition: rpcregisterhelpers.h:925