35#ifndef _OPENLCB_PROTOCOLIDENTIFICATION_HXX_
36#define _OPENLCB_PROTOCOLIDENTIFICATION_HXX_
87 return release_and_exit();
91 return allocate_and_call(
102 auto *b = get_allocation_result(
110 return release_and_exit();
#define STATE(_fn)
Turns a function name into an argument to be supplied to functions expecting a state.
void register_handler(HandlerType *handler, ID id, ID mask)
Adds a new handler to this dispatcher.
void unregister_handler(HandlerType *handler, ID id, ID mask)
Removes a specific instance of a handler from this dispatcher.
virtual void send(MessageType *message, unsigned priority=UINT_MAX)=0
Entry point to the flow.
Base::Action Action
Allows using Action without having StateFlowBase:: prefix in front of it.
MessageDispatchFlow * dispatcher()
MessageHandler * addressed_message_write_flow()
Base class for incoming message handler flows.
GenMessage * nmsg()
Returns the NMRAnet message we received.
Base class for NMRAnet nodes conforming to the asynchronous interface.
An instance of this class will add Protocol Identification Protocol to an NMRAnet Node.
Action entry() OVERRIDE
Entry point to state flow.
ProtocolIdentificationHandler(Node *node, uint64_t supported)
Constructor.
Action fill_response_buffer()
Respond to incoming request with an outgoing message.
Payload payload_
response payload
~ProtocolIdentificationHandler()
Destructor.
Node * node_
local copy of the node we are binding to
#define OVERRIDE
Function attribute for virtual functions declaring that this funciton is overriding a funciton that s...
#define DISALLOW_COPY_AND_ASSIGN(TypeName)
Removes default copy-constructor and assignment added by C++.
string node_id_to_buffer(NodeID id)
Convenience function to render a 48-bit NMRAnet node ID into a new buffer.
string Payload
Container that carries the data bytes in an NMRAnet message.
@ MTI_EXACT
match mask for a single MTI
@ MTI_PROTOCOL_SUPPORT_INQUIRY
inquire on supported protocols
@ MTI_PROTOCOL_SUPPORT_REPLY
reply with supported protocols