uc_generic_subscriber.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
3  */
4 
6 
7 namespace uavcan
8 {
9 
11  bool (Dispatcher::*registration_method)(TransferListener*))
12 {
13  if (listener == UAVCAN_NULLPTR)
14  {
15  UAVCAN_ASSERT(0);
16  return -ErrLogic;
17  }
18  stop(listener);
19  if (!(node_.getDispatcher().*registration_method)(listener))
20  {
21  UAVCAN_TRACE("GenericSubscriber", "Failed to register transfer listener");
22  return -ErrInvalidTransferListener;
23  }
24  return 0;
25 }
26 
28 {
29  if (listener != UAVCAN_NULLPTR)
30  {
34  }
35 }
36 
37 }
UAVCAN_NULLPTR
#define UAVCAN_NULLPTR
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:51
uavcan::INode::getDispatcher
Dispatcher & getDispatcher()
Definition: abstract_node.hpp:28
generic_subscriber.hpp
uavcan::GenericSubscriberBase::stop
void stop(TransferListener *listener)
Definition: uc_generic_subscriber.cpp:27
UAVCAN_TRACE
#define UAVCAN_TRACE(...)
Definition: libuavcan/libuavcan/include/uavcan/debug.hpp:31
uavcan::Dispatcher
Definition: dispatcher.hpp:80
uavcan_kinetis::ErrLogic
static const uavcan::int16_t ErrLogic
Internal logic error.
Definition: platform_specific_components/kinetis/libuavcan/driver/include/uavcan_kinetis/can.hpp:22
uavcan::GenericSubscriberBase::genericStart
int genericStart(TransferListener *listener, bool(Dispatcher::*registration_method)(TransferListener *))
Definition: uc_generic_subscriber.cpp:10
uavcan::Dispatcher::unregisterServiceRequestListener
void unregisterServiceRequestListener(TransferListener *listener)
Definition: uc_dispatcher.cpp:349
uavcan::TransferListener
Definition: transfer_listener.hpp:99
uavcan::GenericSubscriberBase::node_
INode & node_
Definition: generic_subscriber.hpp:98
uavcan
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:204
uavcan::Dispatcher::unregisterServiceResponseListener
void unregisterServiceResponseListener(TransferListener *listener)
Definition: uc_dispatcher.cpp:354
uavcan::Dispatcher::unregisterMessageListener
void unregisterMessageListener(TransferListener *listener)
Definition: uc_dispatcher.cpp:344
UAVCAN_ASSERT
#define UAVCAN_ASSERT(x)
Definition: libuavcan/libuavcan/include/uavcan/build_config.hpp:184


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:03