SatCat5
satcat5::udp::TftpServerCore Class Referenceabstract

Detailed Description

ServerCore is the base class that handles TFTP network functions.

However, it depends on children to define the I/O functions.

See also
udp_tftp.h, udp::TftpServerSimple, udp::TftpClientPosix.

Definition at line 149 of file udp_tftp.h.

#include <udp_tftp.h>

Inheritance diagram for satcat5::udp::TftpServerCore:
[legend]
Collaboration diagram for satcat5::udp::TftpServerCore:
[legend]

Public Member Functions

bool active () const
 Is there an active transfer?
 

Protected Member Functions

 TftpServerCore (satcat5::udp::Dispatch *iface)
 Users cannot instantiate this class directly. More...
 
virtual satcat5::io::Readableread (const char *filename)=0
 Child class MUST override these methods.
 
virtual satcat5::io::Writeablewrite (const char *filename)=0
 
void frame_rcvd (satcat5::io::LimitedRead &src) override
 Dispatch calls frame_rcvd(...) for each incoming frame with with a matching net::Type value. More...
 

Protected Attributes

satcat5::udp::Dispatch *const m_iface
 
satcat5::udp::TftpTransfer m_xfer
 
satcat5::net::Type m_filter
 Incoming packet filter.
 

Private Attributes

satcat5::net::Protocolm_next
 Linked list of Protocols.
 

Constructor & Destructor Documentation

◆ TftpServerCore()

TftpServerCore::TftpServerCore ( satcat5::udp::Dispatch iface)
explicitprotected

Users cannot instantiate this class directly.

See "TftpServerSimple" for an example implementation.

Definition at line 441 of file udp_tftp.cc.

Member Function Documentation

◆ frame_rcvd()

void TftpServerCore::frame_rcvd ( satcat5::io::LimitedRead src)
overrideprotectedvirtual

Dispatch calls frame_rcvd(...) for each incoming frame with with a matching net::Type value.

The child class SHOULD read the frame contents from the provided "src" object, which is only valid until the function returns.

To send a reply:

  • Call m_iface->open_reply() to obtain a Writable object. (This also writes out any applicable frame headers.)
  • Write frame contents, then call write_finalize().

The child class MUST override this method.

Implements satcat5::net::Protocol.

Definition at line 454 of file udp_tftp.cc.


The documentation for this class was generated from the following files: