Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages | Examples

ArCentralForwarder Class Reference

Class. More...

#include <ArCentralForwarder.h>

List of all members.

Public Member Functions

 ArCentralForwarder (ArServerBase *mainServer, ArSocket *socket, const char *robotName, int startingPort, std::set< int > *usedPorts)
bool callOnce (double heartbeatTimeout)
ArClientBasegetClient (void)
int getPort (void)
const char * getRobotName (void)
ArServerBasegetServer (void)
bool isConnected (void)
void netCentralHeartbeat (ArNetPacket *packet)
 ~ArCentralForwarder ()

Protected Types

enum  ReturnType {
  RETURN_NONE, RETURN_SINGLE, RETURN_VIDEO, RETURN_UNTIL_EMPTY,
  RETURN_COMPLEX
}
enum  State { STATE_STARTING, STATE_CONNECTING, STATE_CONNECTED }

Protected Member Functions

bool connectedCallOnce (double heartbeatTimeout)
bool connectingCallOnce (double heartbeatTimeout)
void receiveData (ArNetPacket *packet)
void requestChanged (long interval, unsigned int command)
void requestOnce (ArServerClient *client, ArNetPacket *packet)
void serverClientRemoved (ArServerClient *client)
bool startingCallOnce (double heartbeatTimeout)

Protected Attributes

ArClientBaseclient
ArClientBasemyClient
std::map< unsigned int, ArTime * > myLastBroadcast
ArTime myLastHeartbeat
std::map< unsigned int, ArTime * > myLastRequest
ArServerBasemyMainServer
ArFunctor1C< ArCentralForwarder,
ArNetPacket * > 
myNetCentralHeartbeatCB
int myPort
ArFunctor1C< ArCentralForwarder,
ArNetPacket * > 
myReceiveDataFunctor
ArFunctor2C< ArCentralForwarder,
long, unsigned int > 
myRequestChangedFunctor
ArFunctor2C< ArCentralForwarder,
ArServerClient *, ArNetPacket * > 
myRequestOnceFunctor
std::map< unsigned int, std::list<
ArServerClient * > * > 
myRequestOnces
std::map< unsigned int, ReturnTypemyReturnTypes
std::string myRobotName
ArServerBasemyServer
ArFunctor1C< ArCentralForwarder,
ArServerClient * > 
myServerClientRemovedCB
ArSocketmySocket
int myStartingPort
State myState
std::set< int > * myUsedPorts
ArServerBaseserver


Detailed Description

Class.

Definition at line 36 of file ArCentralForwarder.h.


Member Enumeration Documentation

enum ArCentralForwarder::ReturnType [protected]
 

Enumeration values:
RETURN_NONE 
RETURN_SINGLE 
RETURN_VIDEO 
RETURN_UNTIL_EMPTY 
RETURN_COMPLEX 

Definition at line 80 of file ArCentralForwarder.h.

enum ArCentralForwarder::State [protected]
 

Enumeration values:
STATE_STARTING 
STATE_CONNECTING 
STATE_CONNECTED 

Definition at line 66 of file ArCentralForwarder.h.


Constructor & Destructor Documentation

ArCentralForwarder::ArCentralForwarder ArServerBase mainServer,
ArSocket socket,
const char *  robotName,
int  startingPort,
std::set< int > *  usedPorts
 

Definition at line 30 of file ArCentralForwarder.cpp.

References myClient, myMainServer, myPort, myRobotName, myServer, mySocket, myStartingPort, myState, myUsedPorts, and STATE_STARTING.

ArCentralForwarder::~ArCentralForwarder  ) 
 

Definition at line 53 of file ArCentralForwarder.cpp.

References ArClientBase::clear(), ArServerBase::close(), ArUtil::deleteSetPairs(), ArClientBase::disconnect(), ArClientBase::isConnected(), myClient, myLastBroadcast, myLastRequest, myRequestOnces, and myServer.


Member Function Documentation

bool ArCentralForwarder::callOnce double  heartbeatTimeout  ) 
 

Definition at line 79 of file ArCentralForwarder.cpp.

References connectedCallOnce(), connectingCallOnce(), ArLog::log(), myRobotName, myState, startingCallOnce(), STATE_CONNECTED, STATE_CONNECTING, and STATE_STARTING.

Referenced by connectingCallOnce(), ArCentralManager::runThread(), and startingCallOnce().

bool ArCentralForwarder::connectedCallOnce double  heartbeatTimeout  )  [protected]
 

Definition at line 253 of file ArCentralForwarder.cpp.

References ArClientBase::isConnected(), ArLog::log(), ArServerBase::loopOnce(), ArClientBase::loopOnce(), myClient, myLastHeartbeat, myRobotName, myServer, and ArTime::secSince().

Referenced by callOnce().

bool ArCentralForwarder::connectingCallOnce double  heartbeatTimeout  )  [protected]
 

Definition at line 119 of file ArCentralForwarder.cpp.

References ArServerBase::addClientRemovedCallback(), ArServerBase::addDataAdvanced(), ArClientBase::addHandler(), callOnce(), ArServerBase::dataHasFlag(), ArClientData::getArgumentDescription(), ArClientData::getCommand(), ArClientData::getCommandGroup(), ArClientData::getDataFlagsString(), ArClientBase::getDataMap(), ArClientData::getDescription(), ArSocket::getIPString(), ArClientData::getName(), ArClientBase::getReceivedArgRetList(), ArClientBase::getReceivedDataList(), ArClientBase::getReceivedGroupAndFlagsList(), ArClientData::getReturnDescription(), ArServerBase::getUserInfo(), ArClientData::hasDataFlag(), ArLog::log(), ArClientBase::loopOnce(), myClient, myLastBroadcast, myLastHeartbeat, myLastRequest, myMainServer, myNetCentralHeartbeatCB, myPort, myReceiveDataFunctor, myRequestChangedFunctor, myRequestOnceFunctor, myRequestOnces, myReturnTypes, myRobotName, myServer, myServerClientRemovedCB, mySocket, myStartingPort, myState, myUsedPorts, ArServerBase::open(), ArClientBase::request(), RETURN_NONE, RETURN_SINGLE, RETURN_UNTIL_EMPTY, RETURN_VIDEO, ArTime::secSince(), ArTime::setToNow(), ArServerBase::setUserInfo(), and STATE_CONNECTED.

Referenced by callOnce().

ArClientBase* ArCentralForwarder::getClient void   )  [inline]
 

Definition at line 44 of file ArCentralForwarder.h.

References myClient.

Referenced by ArCentralManager::netClientList(), and ArCentralManager::runThread().

int ArCentralForwarder::getPort void   )  [inline]
 

Definition at line 45 of file ArCentralForwarder.h.

References myPort.

Referenced by ArCentralManager::netClientList(), and ArCentralManager::runThread().

const char* ArCentralForwarder::getRobotName void   )  [inline]
 

Definition at line 46 of file ArCentralForwarder.h.

References myRobotName.

Referenced by ArCentralManager::netClientList(), ArCentralManager::netServerSwitch(), and ArCentralManager::runThread().

ArServerBase* ArCentralForwarder::getServer void   )  [inline]
 

Definition at line 43 of file ArCentralForwarder.h.

References myServer.

bool ArCentralForwarder::isConnected void   )  [inline]
 

Definition at line 49 of file ArCentralForwarder.h.

References myState, and STATE_CONNECTED.

Referenced by ArCentralManager::runThread().

void ArCentralForwarder::netCentralHeartbeat ArNetPacket packet  ) 
 

Definition at line 521 of file ArCentralForwarder.cpp.

References myLastHeartbeat, and ArTime::setToNow().

void ArCentralForwarder::receiveData ArNetPacket packet  )  [protected]
 

Definition at line 320 of file ArCentralForwarder.cpp.

References ArServerBase::broadcastPacketTcpByCommand(), ArServerBase::broadcastPacketUdpByCommand(), client, client, ArClientBase::getName(), ArLog::log(), myClient, myLastBroadcast, myRequestOnces, myReturnTypes, myServer, RETURN_SINGLE, RETURN_UNTIL_EMPTY, RETURN_VIDEO, ArClientBase::sendPacketTcp(), and ArClientBase::sendPacketUdp().

void ArCentralForwarder::requestChanged long  interval,
unsigned int  command
[protected]
 

Definition at line 445 of file ArCentralForwarder.cpp.

References ArClientBase::getName(), ArLog::log(), myClient, myLastRequest, myReturnTypes, ArClientBase::requestByCommand(), ArClientBase::requestOnceByCommand(), ArClientBase::requestStopByCommand(), and RETURN_VIDEO.

void ArCentralForwarder::requestOnce ArServerClient client,
ArNetPacket packet
[protected]
 

Definition at line 482 of file ArCentralForwarder.cpp.

References client, ArClientBase::getName(), ArLog::log(), myClient, myLastBroadcast, myLastRequest, myRequestOnces, myReturnTypes, ArClientBase::requestOnceByCommand(), RETURN_SINGLE, RETURN_UNTIL_EMPTY, and RETURN_VIDEO.

void ArCentralForwarder::serverClientRemoved ArServerClient client  )  [protected]
 

Definition at line 276 of file ArCentralForwarder.cpp.

References client, and myRequestOnces.

bool ArCentralForwarder::startingCallOnce double  heartbeatTimeout  )  [protected]
 

Definition at line 102 of file ArCentralForwarder.cpp.

References callOnce(), ArSocket::getIPString(), ArClientBase::internalBlockingConnect(), ArLog::log(), myClient, myLastHeartbeat, myRobotName, mySocket, myState, ArTime::setToNow(), and STATE_CONNECTING.

Referenced by callOnce().


Member Data Documentation

ArClientBase* ArCentralForwarder::client [protected]
 

Definition at line 78 of file ArCentralForwarder.h.

Referenced by receiveData(), requestOnce(), and serverClientRemoved().

ArClientBase* ArCentralForwarder::myClient [protected]
 

Definition at line 74 of file ArCentralForwarder.h.

Referenced by ArCentralForwarder(), connectedCallOnce(), connectingCallOnce(), getClient(), receiveData(), requestChanged(), requestOnce(), startingCallOnce(), and ~ArCentralForwarder().

std::map<unsigned int, ArTime *> ArCentralForwarder::myLastBroadcast [protected]
 

Definition at line 92 of file ArCentralForwarder.h.

Referenced by connectingCallOnce(), receiveData(), requestOnce(), and ~ArCentralForwarder().

ArTime ArCentralForwarder::myLastHeartbeat [protected]
 

Definition at line 94 of file ArCentralForwarder.h.

Referenced by connectedCallOnce(), connectingCallOnce(), netCentralHeartbeat(), and startingCallOnce().

std::map<unsigned int, ArTime *> ArCentralForwarder::myLastRequest [protected]
 

Definition at line 91 of file ArCentralForwarder.h.

Referenced by connectingCallOnce(), requestChanged(), requestOnce(), and ~ArCentralForwarder().

ArServerBase* ArCentralForwarder::myMainServer [protected]
 

Definition at line 60 of file ArCentralForwarder.h.

Referenced by ArCentralForwarder(), and connectingCallOnce().

ArFunctor1C<ArCentralForwarder, ArNetPacket *> ArCentralForwarder::myNetCentralHeartbeatCB [protected]
 

Definition at line 104 of file ArCentralForwarder.h.

Referenced by connectingCallOnce().

int ArCentralForwarder::myPort [protected]
 

Definition at line 76 of file ArCentralForwarder.h.

Referenced by ArCentralForwarder(), connectingCallOnce(), and getPort().

ArFunctor1C<ArCentralForwarder, ArNetPacket *> ArCentralForwarder::myReceiveDataFunctor [protected]
 

Definition at line 96 of file ArCentralForwarder.h.

Referenced by connectingCallOnce().

ArFunctor2C<ArCentralForwarder, long, unsigned int> ArCentralForwarder::myRequestChangedFunctor [protected]
 

Definition at line 98 of file ArCentralForwarder.h.

Referenced by connectingCallOnce().

ArFunctor2C<ArCentralForwarder, ArServerClient *, ArNetPacket *> ArCentralForwarder::myRequestOnceFunctor [protected]
 

Definition at line 100 of file ArCentralForwarder.h.

Referenced by connectingCallOnce().

std::map<unsigned int, std::list<ArServerClient *> *> ArCentralForwarder::myRequestOnces [protected]
 

Definition at line 90 of file ArCentralForwarder.h.

Referenced by connectingCallOnce(), receiveData(), requestOnce(), serverClientRemoved(), and ~ArCentralForwarder().

std::map<unsigned int, ReturnType> ArCentralForwarder::myReturnTypes [protected]
 

Definition at line 89 of file ArCentralForwarder.h.

Referenced by connectingCallOnce(), receiveData(), requestChanged(), and requestOnce().

std::string ArCentralForwarder::myRobotName [protected]
 

Definition at line 62 of file ArCentralForwarder.h.

Referenced by ArCentralForwarder(), callOnce(), connectedCallOnce(), connectingCallOnce(), getRobotName(), and startingCallOnce().

ArServerBase* ArCentralForwarder::myServer [protected]
 

Definition at line 73 of file ArCentralForwarder.h.

Referenced by ArCentralForwarder(), connectedCallOnce(), connectingCallOnce(), getServer(), receiveData(), and ~ArCentralForwarder().

ArFunctor1C<ArCentralForwarder, ArServerClient *> ArCentralForwarder::myServerClientRemovedCB [protected]
 

Definition at line 102 of file ArCentralForwarder.h.

Referenced by connectingCallOnce().

ArSocket* ArCentralForwarder::mySocket [protected]
 

Definition at line 61 of file ArCentralForwarder.h.

Referenced by ArCentralForwarder(), connectingCallOnce(), and startingCallOnce().

int ArCentralForwarder::myStartingPort [protected]
 

Definition at line 63 of file ArCentralForwarder.h.

Referenced by ArCentralForwarder(), and connectingCallOnce().

State ArCentralForwarder::myState [protected]
 

Definition at line 75 of file ArCentralForwarder.h.

Referenced by ArCentralForwarder(), callOnce(), connectingCallOnce(), isConnected(), and startingCallOnce().

std::set<int>* ArCentralForwarder::myUsedPorts [protected]
 

Definition at line 64 of file ArCentralForwarder.h.

Referenced by ArCentralForwarder(), and connectingCallOnce().

ArServerBase* ArCentralForwarder::server [protected]
 

Definition at line 77 of file ArCentralForwarder.h.


The documentation for this class was generated from the following files:
Generated on Tue Feb 20 10:51:51 2007 for ArNetworking by  doxygen 1.4.0