libs
libuavcan
libuavcan
src
node
uc_generic_subscriber.cpp
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2014 Pavel Kirienko <pavel.kirienko@gmail.com>
3
*/
4
5
#include <
uavcan/node/generic_subscriber.hpp
>
6
7
namespace
uavcan
8
{
9
10
int
GenericSubscriberBase::genericStart
(
TransferListener
* listener,
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
27
void
GenericSubscriberBase::stop
(
TransferListener
* listener)
28
{
29
if
(listener !=
UAVCAN_NULLPTR
)
30
{
31
node_
.
getDispatcher
().
unregisterMessageListener
(listener);
32
node_
.
getDispatcher
().
unregisterServiceRequestListener
(listener);
33
node_
.
getDispatcher
().
unregisterServiceResponseListener
(listener);
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