Free Electron
Public Member Functions | Private Member Functions | Private Attributes | List of all members
fe::ext::MessageReliableUDP Class Reference

Message Sender/Receiver multi-packet reliable over UDP. More...

#include <MessageReliableUDP.h>

Inheritance diagram for fe::ext::MessageReliableUDP:
Inheritance graph
[legend]

Public Member Functions

virtual bool start (uint16_t receivePort) override
 Start receive and transmit thread and initialize the receive port (0 = open port) More...
 
virtual uint16_t getReceivePort () override
 Returns the selected receive port. More...
 
virtual void shutdown () override
 Shutdown receive and transmit thread and the message systems. More...
 
virtual bool recvReliableFrom (uint8_t **msg, uint32_t &msgSize, char *fromIPaddress) override
 Check to see if a message has been received. The receiver is responsible for deleting the message. More...
 
virtual bool sendReliableTo (const uint8_t *msg, const uint32_t msgSize, const char *ipAddress, uint16_t port) override
 Send a reliable message over UDP to the address and port given. More...
 
- Public Member Functions inherited from fe::Component
const Stringname (void) const
 Return the components chosen name. More...
 
const String verboseName (void) const
 Return the annotated chosen name. More...
 
void setName (const String &name)
 Rename the component to anything you want. More...
 
hp< Registryregistry (void) const
 Get the Registry that created this component. More...
 
void adjoin (sp< Component > spComponent)
 Tie this component's lifetime to another. More...
 
sp< Componentcreate (const String &implementation, BWORD quiet=FALSE) const
 Convienience function to registry()->create() More...
 
void disjoin (void)
 Untie component from Hub, if connected. More...
 
String factoryName (void)
 
void setLibrary (sp< Library > spLibrary)
 Store a reference to the library used to instantiate this component. More...
 
sp< Librarylibrary (void)
 Get the library that created the component. More...
 
void setFactoryIndex (I32 a_factoryIndex)
 Set the library's factory index. More...
 
I32 factoryIndex (void)
 Get the library's factory index. More...
 
void setSingleton (BWORD set)
 Specify whether component is a singleton. More...
 
BWORD isSingleton (void)
 Return whether component is a singleton. More...
 
virtual void acquire (void)
 Specialized reference increment. More...
 
virtual void release (void)
 Specialized reference decrement. More...
 
- Public Member Functions inherited from fe::Handled< Component >
const hp< Component > & getHandle (void) const
 Get a safe handle to this object. More...
 
- Public Member Functions inherited from fe::Protectable
virtual I32 protection (void) const
 
virtual void protect (void)
 
virtual void unprotect (void)
 
virtual Protectableclone (Protectable *pInstance=NULL)
 
- Public Member Functions inherited from fe::Counted
virtual void acquire (int &rCount)
 Increment the reference count (and get the count) More...
 
virtual void abandon (void)
 Decrement the reference count. More...
 
int count (void) const
 Return the count of references. More...
 
void setName (const String &)
 
void trackReference (void *pReference, String what)
 
void untrackReference (void *pReference)
 
void registerRegion (void *pT, U32 bytes)
 
- Public Member Functions inherited from fe::Initialized
void initializeAll (void)
 
void setActive (bool a_active)
 

Private Member Functions

bool sendPacket (MultiPacketMsgInProgress &msg, uint32_t offset)
 
void checkVerifications ()
 
void transmitThread ()
 
void receiveThread ()
 
int64_t now ()
 
bool sendResponseMsg (MultiPacketMsgInProgress &receivedMsg)
 
bool alreadyReceived (const MultiPacketMsg &msg, const char *msgIP)
 
bool alreadyReceived (const MultiPacketMsgInProgress &testMsg)
 

Private Attributes

bool m_initialized
 
bool m_running
 
Messagegram m_packetMsg
 
Messagegram m_verificationMsg
 
uint16_t m_msgID
 
uint16_t m_verificationPort
 
uint16_t m_receivePort
 
int m_burstPacketLimit
 
fe::sp< fe::SingleMasterm_spSingleMaster
 
bool m_transmitThreadDone
 
fe::sp< MessageIm_transmitMsgSystem
 
std::thread * m_transmitThread
 
std::mutex m_transmitListLock
 
I32 m_transmitListLockCount
 
std::list< MultiPacketMsgInProgress > m_transmitList
 
bool m_receiveThreadDone
 
fe::sp< MessageIm_receiveMsgSystem
 
std::thread * m_receiveThread
 
std::mutex m_receiveListLock
 
I32 m_receiveListLockCount
 
std::list< MultiPacketMsgInProgress > m_receiveList
 
std::list< MultiPacketMsgReceived > m_fullyreceivedMsgList
 

Additional Inherited Members

- Static Public Member Functions inherited from fe::Counted
static String reportTracker (void)
 
static U32 trackerCount (void)
 
- Protected Types inherited from fe::Initialized
typedef void(* InitializeFunction) (Initialized *)
 
- Protected Member Functions inherited from fe::Handled< Component >
void abandonHandle (void)
 
- Protected Member Functions inherited from fe::Counted
int releaseInternal (void)
 Decrement the reference count. More...
 
void suppressReport (void)
 
- Protected Member Functions inherited from fe::Initialized
void addInitializer (InitializeFunction function)
 

Detailed Description

Message Sender/Receiver multi-packet reliable over UDP.

Member Function Documentation

◆ getReceivePort()

uint16_t fe::ext::MessageReliableUDP::getReceivePort ( )
overridevirtual

Returns the selected receive port.

Implements fe::ext::MessageReliableUDPI.

◆ recvReliableFrom()

bool fe::ext::MessageReliableUDP::recvReliableFrom ( uint8_t **  msg,
uint32_t &  msgSize,
char *  fromIPaddress 
)
overridevirtual

Check to see if a message has been received. The receiver is responsible for deleting the message.

Implements fe::ext::MessageReliableUDPI.

◆ sendReliableTo()

bool fe::ext::MessageReliableUDP::sendReliableTo ( const uint8_t *  msg,
const uint32_t  msgSize,
const char *  ipAddress,
uint16_t  port 
)
overridevirtual

Send a reliable message over UDP to the address and port given.

Implements fe::ext::MessageReliableUDPI.

◆ shutdown()

void fe::ext::MessageReliableUDP::shutdown ( )
overridevirtual

Shutdown receive and transmit thread and the message systems.

Implements fe::ext::MessageReliableUDPI.

◆ start()

bool fe::ext::MessageReliableUDP::start ( uint16_t  receivePort)
overridevirtual

Start receive and transmit thread and initialize the receive port (0 = open port)

Implements fe::ext::MessageReliableUDPI.


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