|
Open Model Railroad Network (OpenMRN)
|
StateFlow that accepts dcc::Packet structures and sends them to a local device driver for producing the track signal. More...
#include <LocalTrackIf.hxx>
Public Member Functions | |
| LocalTrackIf (Service *service, int pool_size) | |
| Constructs a TrackInterface from an fd to the mainline. | |
| FixedPool * | pool () OVERRIDE |
| void | set_fd (int fd) |
| You must call this function before sending any packets. | |
Public Member Functions inherited from StateFlow< Buffer< dcc::Packet >, QList< 1 > > | |
| StateFlow (Service *service) | |
| Constructor. | |
Public Member Functions inherited from TypedStateFlow< MessageType, Base > | |
| TypedStateFlow (Service *service) | |
| Constructor. | |
| virtual | ~TypedStateFlow () |
| Destructor. | |
| void | send (MessageType *msg, unsigned priority=UINT_MAX) OVERRIDE |
| Sends a message to the state flow for processing. | |
Public Member Functions inherited from FlowInterface< MessageType > | |
| virtual MessageType * | type_helper () |
| This function is never user in the code, but GDB can use it to infer the correct message types. | |
| MessageType * | alloc () |
| Synchronously allocates a message buffer from the pool of this flow. | |
| void | alloc_async (Executable *target) |
| Asynchronously allocates a message buffer from the pool of this flow. | |
Protected Member Functions | |
| Action | entry () OVERRIDE |
| Entry into the StateFlow activity. | |
| Action | finish () |
Protected Member Functions inherited from TypedStateFlow< MessageType, Base > | |
| void | release () OVERRIDE |
| Unrefs the current buffer. | |
| void | return_buffer () |
| For state flows that are operated using invoke_subflow_and_wait this is a way to hand back the buffer to the caller. | |
| MessageType * | message () |
| MessageType * | transfer_message () |
| Releases ownership of the current message. | |
Protected Attributes | |
| int | fd_ |
| Filedes of the device to which we are writing the generated packets. | |
| FixedPool | pool_ |
| Packet pool from which to allocate packets. | |
Additional Inherited Members | |
Public Types inherited from TypedStateFlow< MessageType, Base > | |
| typedef Base::Action | Action |
| Allows using Action without having StateFlowBase:: prefix in front of it. | |
Public Types inherited from FlowInterface< MessageType > | |
| typedef MessageType | message_type |
| Stores the message template type for external reference. | |
Static Public Member Functions inherited from FlowInterface< MessageType > | |
| static MessageType * | cast_alloc (QMember *entry) |
| Down casts and initializes an asynchronous allocation result to the appropriate flow's buffer type. | |
StateFlow that accepts dcc::Packet structures and sends them to a local device driver for producing the track signal.
The device driver must support the notifiable-based asynchronous write model.
Definition at line 51 of file LocalTrackIf.hxx.
| dcc::LocalTrackIf::LocalTrackIf | ( | Service * | service, |
| int | pool_size | ||
| ) |
Constructs a TrackInterface from an fd to the mainline.
This class currently does synchronous writes to the device. In order not to block the executor, you have to create a new threadexecutor.
| service | THE EXECUTOR OF THIS SERVICE WILL BE BLOCKED. |
| pool_size | will determine how many packets the current flow's alloc() will have. |
Definition at line 57 of file LocalTrackIf.cxx.
|
protectedvirtual |
Entry into the StateFlow activity.
Pure virtual which must be defined by derived class.
Implements TypedStateFlow< MessageType, Base >.
Reimplemented in dcc::LocalTrackIfSelect.
|
inlineprotected |
Definition at line 81 of file LocalTrackIf.hxx.
|
inlinevirtual |
Reimplemented from FlowInterface< MessageType >.
Definition at line 65 of file LocalTrackIf.hxx.
|
inline |
You must call this function before sending any packets.
| fd | is the file descriptor to /dev/mainline. |
Definition at line 72 of file LocalTrackIf.hxx.
|
protected |
Filedes of the device to which we are writing the generated packets.
Definition at line 87 of file LocalTrackIf.hxx.
|
protected |
Packet pool from which to allocate packets.
Definition at line 89 of file LocalTrackIf.hxx.