47 GET_CAN_FRAME_ID_EFF(message->
data()->frame()));
63 const struct can_frame &frame = message->
data()->frame();
64 if (IS_CAN_FRAME_ERR(frame) || IS_CAN_FRAME_RTR(frame))
76 HASSERT(
sizeof(*incoming_buffer) <=
sizeof(*message));
82 message->
data()->mutable_frame());
91 , frameWriteFlow_(this)
92 , frameReadFlow_(this)
93 , frameDispatcher_(service) {
Abstract base class for all Buffers.
Base class for all QMember types that hold data in an expandable format.
void unref()
Decrement count.
T * data()
get a pointer to the start of the data.
void send(Buffer< CanHubData > *message, unsigned priority=UINT_MAX) OVERRIDE
Entry point to the flow.
CanIf * ifCan_
Interface that owns this flow.
void send(Buffer< CanHubData > *message, unsigned priority=UINT_MAX) OVERRIDE
Entry point to this flow.
CanIf * ifCan_
Parent that owns this flow.
CanIf(Service *service, CanHubFlow *device)
Constructor.
FrameDispatchFlow * frame_dispatcher()
CanHubPortInterface * hub_port()
void register_port(port_type *port)
Adds a new port.
void unregister_port(port_type *port)
Removes a previously added port.
Pool of previously allocated, but currently unused, items.
Collection of related state machines that pend on incoming messages.
void send(MessageType *msg, unsigned priority=UINT_MAX) OVERRIDE
Sends a message to the state flow for processing.
#define LOG(level, message...)
Conditionally write a message to the logging output.
static const int VERBOSE
Loglevel that is usually not printed, reporting debugging information.
#define HASSERT(x)
Checks that the value of expression x is true, else terminates the current process.