#include <ArCentralManager.h>
Inheritance diagram for ArCentralManager:
Public Member Functions | |
void | addForwarderAddedCallback (ArFunctor1< ArCentralForwarder * > *functor, int priority=0) |
Adds a callback for when a new forwarder is added. | |
void | addForwarderRemovedCallback (ArFunctor1< ArCentralForwarder * > *functor, int priority=0) |
Adds a callback for when a new forwarder is destroyed. | |
ArCentralManager (ArServerBase *robotServer, ArServerBase *clientServer) | |
Constructor. | |
void | netClientList (ArServerClient *client, ArNetPacket *packet) |
Networking command to get the list of clients. | |
void | netServerSwitch (ArServerClient *client, ArNetPacket *packet) |
Networking command to switch the direction of a connection. | |
void | remForwarderAddedCallback (ArFunctor1< ArCentralForwarder * > *functor) |
Removes a callback for when a new forwarder is added. | |
void | remForwarderRemovedCallback (ArFunctor1< ArCentralForwarder * > *functor) |
Removes a callback for when a new forwarder is destroyed. | |
virtual void * | runThread (void *arg) |
This should be its own thread here. | |
virtual | ~ArCentralManager () |
Destructor. | |
Protected Member Functions | |
void | close (void) |
Protected Attributes | |
ArFunctorC< ArCentralManager > | myAriaExitCB |
ArMutex | myCallbackMutex |
std::list< std::string > | myClientNames |
ArServerBase * | myClientServer |
std::list< ArSocket * > | myClientSockets |
ArMutex | myDataMutex |
std::multimap< int, ArFunctor1< ArCentralForwarder * > * > | myForwarderAddedCBList |
std::multimap< int, ArFunctor1< ArCentralForwarder * > * > | myForwarderRemovedCBList |
std::list< ArCentralForwarder * > | myForwarders |
double | myHeartbeatTimeout |
ArFunctor2C< ArCentralManager, ArServerClient *, ArNetPacket * > | myNetClientListCB |
ArFunctor2C< ArCentralManager, ArServerClient *, ArNetPacket * > | myNetSwitchCB |
int | myOnSocket |
ArServerBase * | myRobotServer |
std::set< int > | myUsedPorts |
|
Constructor.
Definition at line 30 of file ArCentralManager.cpp. References ArServerBase::addData(), Aria::addExitCallback(), ArConfig::addParam(), Aria::getConfig(), myAriaExitCB, myClientServer, myHeartbeatTimeout, myNetClientListCB, myNetSwitchCB, myRobotServer, ArASyncTask::runAsync(), and ArFunctor::setName(). |
|
Destructor.
Definition at line 69 of file ArCentralManager.cpp. |
|
Adds a callback for when a new forwarder is added.
Definition at line 314 of file ArCentralManager.cpp. References ArMutex::lock(), myCallbackMutex, myForwarderAddedCBList, and ArMutex::unlock(). |
|
Adds a callback for when a new forwarder is destroyed.
Definition at line 346 of file ArCentralManager.cpp. References ArMutex::lock(), myCallbackMutex, myForwarderRemovedCBList, and ArMutex::unlock(). |
|
Definition at line 73 of file ArCentralManager.cpp. References ArLog::log(), myForwarderRemovedCBList, and myForwarders. |
|
Networking command to get the list of clients.
Definition at line 163 of file ArCentralManager.cpp. References client, ArCentralForwarder::getClient(), ArSocket::getIPString(), ArCentralForwarder::getPort(), ArCentralForwarder::getRobotName(), ArClientBase::getTcpSocket(), ArMutex::lock(), myDataMutex, myForwarders, ArClientBase::sendPacketTcp(), ArBasePacket::strToBuf(), ArBasePacket::uByte2ToBuf(), and ArMutex::unlock(). |
|
Networking command to switch the direction of a connection. acknowledge the switch Definition at line 97 of file ArCentralManager.cpp. References client, ArCentralForwarder::getRobotName(), ArClientBase::getTcpSocket(), ArMutex::lock(), ArLog::log(), myClientNames, myClientSockets, myDataMutex, myForwarders, ArClientBase::sendPacketTcp(), ArSocket::transfer(), and ArMutex::unlock(). |
|
Removes a callback for when a new forwarder is added.
Definition at line 324 of file ArCentralManager.cpp. References ArMutex::lock(), myCallbackMutex, myForwarderAddedCBList, and ArMutex::unlock(). |
|
Removes a callback for when a new forwarder is destroyed.
Definition at line 356 of file ArCentralManager.cpp. References ArMutex::lock(), myCallbackMutex, myForwarderRemovedCBList, and ArMutex::unlock(). |
|
|
Definition at line 77 of file ArCentralManager.h. Referenced by ArCentralManager(). |
|
Definition at line 66 of file ArCentralManager.h. Referenced by addForwarderAddedCallback(), addForwarderRemovedCallback(), remForwarderAddedCallback(), and remForwarderRemovedCallback(). |
|
Definition at line 63 of file ArCentralManager.h. Referenced by netServerSwitch(), and runThread(). |
|
Definition at line 60 of file ArCentralManager.h. Referenced by ArCentralManager(), and runThread(). |
|
Definition at line 62 of file ArCentralManager.h. Referenced by netServerSwitch(), and runThread(). |
|
Definition at line 71 of file ArCentralManager.h. Referenced by netClientList(), netServerSwitch(), and runThread(). |
|
Definition at line 68 of file ArCentralManager.h. Referenced by addForwarderAddedCallback(), remForwarderAddedCallback(), and runThread(). |
|
Definition at line 70 of file ArCentralManager.h. Referenced by addForwarderRemovedCallback(), close(), remForwarderRemovedCallback(), and runThread(). |
|
Definition at line 64 of file ArCentralManager.h. Referenced by close(), netClientList(), netServerSwitch(), and runThread(). |
|
Definition at line 61 of file ArCentralManager.h. Referenced by ArCentralManager(), and runThread(). |
|
Definition at line 76 of file ArCentralManager.h. Referenced by ArCentralManager(). |
|
Definition at line 74 of file ArCentralManager.h. Referenced by ArCentralManager(). |
|
Definition at line 72 of file ArCentralManager.h. |
|
Definition at line 59 of file ArCentralManager.h. Referenced by ArCentralManager(). |
|
Definition at line 65 of file ArCentralManager.h. Referenced by runThread(). |