IBR-DTNSuite
0.10
|
#include <LOWPANDatagramService.h>
Public Member Functions | |
LOWPANDatagramService (const ibrcommon::vinterface &iface, uint16_t panid) | |
virtual | ~LOWPANDatagramService () |
virtual void | bind () throw (DatagramException) |
virtual void | shutdown () |
virtual void | send (const char &type, const char &flags, const unsigned int &seqno, const std::string &address, const char *buf, size_t length) throw (DatagramException) |
virtual void | send (const char &type, const char &flags, const unsigned int &seqno, const char *buf, size_t length) throw (DatagramException) |
virtual size_t | recvfrom (char *buf, size_t length, char &type, char &flags, unsigned int &seqno, std::string &address) throw (DatagramException) |
virtual const std::string | getServiceTag () const |
virtual const std::string | getServiceDescription () const |
virtual const ibrcommon::vinterface & | getInterface () const |
virtual dtn::core::Node::Protocol | getProtocol () const |
virtual const DatagramService::Parameter & | getParameter () const |
Public Member Functions inherited from dtn::net::DatagramService | |
virtual | ~DatagramService ()=0 |
Static Public Attributes | |
static const std::string | TAG = "LOWPANDatagramService" |
Additional Inherited Members | |
Public Types inherited from dtn::net::DatagramService | |
enum | FLOWCONTROL { FLOW_NONE = 0, FLOW_STOPNWAIT = 1 } |
enum | HEADER_FLAGS { SEGMENT_FIRST = 0x02, SEGMENT_LAST = 0x01, SEGMENT_MIDDLE = 0x00 } |
Definition at line 33 of file LOWPANDatagramService.h.
dtn::net::LOWPANDatagramService::LOWPANDatagramService | ( | const ibrcommon::vinterface & | iface, |
uint16_t | panid | ||
) |
Definition at line 39 of file LOWPANDatagramService.cpp.
References AF_IEEE802154, dtn::net::DatagramService::FLOW_STOPNWAIT, dtn::net::DatagramService::Parameter::flowcontrol, dtn::net::DatagramService::Parameter::initial_timeout, dtn::net::DatagramService::Parameter::max_msg_length, dtn::net::DatagramService::Parameter::max_seq_numbers, and dtn::net::DatagramService::Parameter::seq_check.
|
virtual |
Definition at line 57 of file LOWPANDatagramService.cpp.
References ibrcommon::vsocket::destroy().
|
virtual |
Bind to the local socket.
If | the bind fails, an DatagramException is thrown. |
Implements dtn::net::DatagramService.
Definition at line 67 of file LOWPANDatagramService.cpp.
References ibrcommon::vsocket::add(), ibrcommon::vsocket::destroy(), and ibrcommon::vsocket::up().
|
virtual |
The used interface as vinterface object.
Implements dtn::net::DatagramService.
Definition at line 306 of file LOWPANDatagramService.cpp.
|
virtual |
Returns the parameter for the connection.
Implements dtn::net::DatagramService.
Definition at line 320 of file LOWPANDatagramService.cpp.
|
virtual |
The protocol identifier for this type of service.
Implements dtn::net::DatagramService.
Definition at line 315 of file LOWPANDatagramService.cpp.
References dtn::core::Node::CONN_DGRAM_LOWPAN.
|
virtual |
Get the service description for this convergence layer. This data is used to contact this node.
Implements dtn::net::DatagramService.
Definition at line 291 of file LOWPANDatagramService.cpp.
References ibrcommon::lowpansocket::getAddress().
|
virtual |
Get the tag for this service used in discovery messages.
Implements dtn::net::DatagramService.
Definition at line 281 of file LOWPANDatagramService.cpp.
|
virtual |
Receive an incoming datagram.
buf | A buffer to catch the incoming data. |
length | The length of the buffer. |
address | A buffer for the address of the sender. |
If | the receive call failed for any reason, an DatagramException is thrown. |
Implements dtn::net::DatagramService.
Definition at line 214 of file LOWPANDatagramService.cpp.
References dtn::net::DatagramConvergenceLayer::HEADER_ACK, dtn::net::DatagramConvergenceLayer::HEADER_BROADCAST, dtn::net::DatagramConvergenceLayer::HEADER_NACK, dtn::net::DatagramConvergenceLayer::HEADER_SEGMENT, IBRCOMMON_LOGGER_DEBUG_TAG, IBRCOMMON_LOGGER_ENDL, ibrcommon::lowpansocket::recvfrom(), dtn::net::DatagramService::SEGMENT_FIRST, dtn::net::DatagramService::SEGMENT_LAST, and TAG.
|
virtual |
Send the payload as datagram to a defined destination
address | The destination address encoded as string. |
buf | The buffer to send. |
length | The number of available bytes in the buffer. |
Implements dtn::net::DatagramService.
Definition at line 95 of file LOWPANDatagramService.cpp.
References ibrcommon::LogLevel::error, dtn::net::DatagramConvergenceLayer::HEADER_ACK, dtn::net::DatagramConvergenceLayer::HEADER_BROADCAST, dtn::net::DatagramConvergenceLayer::HEADER_NACK, dtn::net::DatagramConvergenceLayer::HEADER_SEGMENT, IBRCOMMON_LOGGER_DEBUG_TAG, IBRCOMMON_LOGGER_ENDL, IBRCOMMON_LOGGER_TAG, dtn::net::DatagramService::SEGMENT_FIRST, dtn::net::DatagramService::SEGMENT_LAST, ibrcommon::lowpansocket::sendto(), and TAG.
|
virtual |
Send the payload as datagram to all neighbors (broadcast)
buf | The buffer to send. |
length | The number of available bytes in the buffer. |
Implements dtn::net::DatagramService.
Definition at line 152 of file LOWPANDatagramService.cpp.
References ibrcommon::LogLevel::error, dtn::net::DatagramConvergenceLayer::HEADER_ACK, dtn::net::DatagramConvergenceLayer::HEADER_BROADCAST, dtn::net::DatagramConvergenceLayer::HEADER_NACK, dtn::net::DatagramConvergenceLayer::HEADER_SEGMENT, IBRCOMMON_LOGGER_DEBUG_TAG, IBRCOMMON_LOGGER_ENDL, IBRCOMMON_LOGGER_TAG, dtn::net::DatagramService::SEGMENT_FIRST, dtn::net::DatagramService::SEGMENT_LAST, ibrcommon::lowpansocket::sendto(), ibrcommon::lowpansocket::setAutoAck(), and TAG.
|
virtual |
Shutdown the socket. Unblock all calls on the socket (recv, send, etc.)
Implements dtn::net::DatagramService.
Definition at line 83 of file LOWPANDatagramService.cpp.
References ibrcommon::vsocket::down().
|
static |
Definition at line 36 of file LOWPANDatagramService.h.
Referenced by recvfrom(), and send().