ArMapChanger Class Reference

#include <ArMapChanger.h>

List of all members.


Detailed Description

ArMapChanger is a helper class that can send and receive ArMapChangeDetails over the network and apply them to an associated Aria map.

An instance of ArMapChanger must be instantiated on both the client and the server side. (Note that there are two different versions of the constructors for this.)

TODO: Possibly subclass this into ArClientMapChanger and ArServerMapChanger?

See also:
ArMapChangeDetails


Public Member Functions

virtual bool addChangeCB (ArFunctor2< ArServerClient *, std::list< ArNetPacket * > * > *functor)
 This method is primarily used on the central server.
virtual void addPostWriteFileCB (ArFunctor *functor, ArListPos::Pos position=ArListPos::LAST)
 This method is primarily used to restore the server's directory write status, if necessary.
virtual void addPreWriteFileCB (ArFunctor *functor, ArListPos::Pos position=ArListPos::LAST)
 This method is primarily used to temporarily make the server's directory writeable, if necessary.
virtual bool applyMapChanges (ArMapChangeDetails *changeDetails)
 Applies the given map changes received from the client to the associated Aria map.
 ArMapChanger (ArMapInterface *map)
 This method is primarily used for debugging.
 ArMapChanger (ArClientBase *client, const std::list< std::string > &infoNames)
 The map changer will send map change details to the server.
 ArMapChanger (ArServerBase *server, ArMapInterface *map)
 The map changer will automatically apply the received map change details to the given map.
virtual bool remChangeCB (ArFunctor2< ArServerClient *, std::list< ArNetPacket * > * > *functor)
 Removes a callback from the map change list.
virtual void remPostWriteFileCB (ArFunctor *functor)
 Removes a callback from the post-write file list.
virtual void remPreWriteFileCB (ArFunctor *functor)
 Removes a callback from the pre-write file list.
virtual bool sendMapChanges (ArMapChangeDetails *changeDetails)
 Sends the given map changes from the client to the server.
virtual bool sendPacketList (const std::list< ArNetPacket * > &packetList)
 Transmits the given map change packet list from the client to the server.
virtual ~ArMapChanger ()
 Destructor.

Static Public Attributes

static const char * CHANGES_IN_PROGRESS_PACKET_NAME
 Name of a network packet that is broadcast when the map is being changed.
static const char * PROCESS_CHANGES_PACKET_NAME
 Name of the network packet that contains the incremental map changes.

Protected Types

enum  { CHANGE_DATA_TYPE_COUNT = LAST_CHANGE_DATA_TYPE + 1, CHANGE_COMMAND_COUNT = LAST_CHANGE_COMMAND + 1, MAX_POINTS_IN_PACKET = 1000, MAX_LINES_IN_PACKET = 500 }
 Miscellaneous constants. More...
 CANCEL_CHANGES = 3
 Cancel the request to change the map.
 CHANGE_COMMAND_COUNT = LAST_CHANGE_COMMAND + 1
 CHANGE_DATA_TYPE_COUNT = LAST_CHANGE_DATA_TYPE + 1
 CHANGE_FAILED = 0
 CHANGE_SUCCESS = 10
 CONTINUE_CHANGES = 1
 Request to continue applying changes to the map.
 FINISH_CHANGES = 2
 Last packet that contains changes to be applied to the map.
 INFO_DATA = 2
 Any of the info data, e.g. MapInfo, RouteInfo.
 LAST_CHANGE_COMMAND = CANCEL_CHANGES
 Last value in the enumeration.
 LAST_CHANGE_DATA_TYPE = LINES_DATA
 Last value in the enumeration.
 LINES_DATA = 6
 Map data lines.
enum  MapChangeCommand {
  START_CHANGES = 0, CONTINUE_CHANGES = 1, FINISH_CHANGES = 2, CANCEL_CHANGES = 3,
  LAST_CHANGE_COMMAND = CANCEL_CHANGES
}
 Indicates the current stage of the map change network packets. More...
enum  MapChangeDataType {
  NO_CHANGE = 0, SUMMARY_DATA = 1, INFO_DATA = 2, SUPPLEMENT_DATA = 3,
  OBJECTS_DATA = 4, POINTS_DATA = 5, LINES_DATA = 6, LAST_CHANGE_DATA_TYPE = LINES_DATA
}
 Type of data contained in the map change network packet. More...
enum  MapChangeReplyType { CHANGE_FAILED = 0, CHANGE_SUCCESS = 10 }
 Reply status for a map change request. More...
 MAX_LINES_IN_PACKET = 500
 MAX_POINTS_IN_PACKET = 1000
 NO_CHANGE = 0
 No change data.
 OBJECTS_DATA = 4
 Map objects, i.e. Cairn lines.
 POINTS_DATA = 5
 Map data points.
 START_CHANGES = 0
 First packet that contains changes to be applied to the map.
 SUMMARY_DATA = 1
 Summary data, e.g. min/max pos, number of points.
 SUPPLEMENT_DATA = 3
 Miscellaneous supplemental data such as origin lat/long/alt.

Protected Member Functions

bool addFileLineSetPackets (MapChangeDataType dataType, ArMapChangeDetails::MapLineChangeType changeType, const char *scanType, const char *extra, ArMapFileLineSet *fileLineSet, std::list< ArNetPacket * > *packetListOut)
bool addFileLineToPacketList (MapChangeDataType dataType, ArMapChangeDetails::MapLineChangeType changeType, const char *scanType, const ArMapFileLine &fileLine, std::list< ArNetPacket * > *packetListOut)
 Creates network packets for the specified file line and adds them to the given list.
bool addGroupToPacketList (MapChangeDataType dataType, ArMapChangeDetails::MapLineChangeType changeType, const char *scanType, ArMapFileLineGroup &group, std::list< ArNetPacket * > *packetListOut)
 Creates network packets for the specified file line group and adds them to the given list.
void addHeaderToPacket (MapChangeCommand command, MapChangeDataType dataType, ArMapChangeDetails::MapLineChangeType changeType, const char *scanType, ArNetPacket *packet)
bool addLinesPackets (ArMapChangeDetails::MapLineChangeType changeType, const char *scanType, std::vector< ArLineSegment > *lineSegmentList, std::list< ArNetPacket * > *packetListOut)
 Creates network packets for the given map data lines and adds them to the given list.
bool addPointsPackets (ArMapChangeDetails::MapLineChangeType changeType, const char *scanType, std::vector< ArPose > *pointList, std::list< ArNetPacket * > *packetListOut)
 Creates network packets for the given map data points and adds them to the given list.
void addToCallbackList (ArFunctor *functor, ArListPos::Pos position, std::list< ArFunctor * > *cbList)
 Adds the given functor to the given callback list.
bool applyInfoChanges (ArMapChangeDetails *changeDetails)
bool applyObjectChanges (ArMapChangeDetails *changeDetails)
bool applyScanChanges (ArMapChangeDetails *changeDetails, const char *scanType, ArFileParser &parser)
bool applyScanChanges (ArMapChangeDetails *changeDetails)
 Scan data include summary data, map data points, and map data lines.
bool applySupplementChanges (ArMapChangeDetails *changeDetails)
bool convertChangeDetailsToPacketList (ArMapChangeDetails *changeDetails, std::list< ArNetPacket * > *packetListOut, bool isRelay=false)
 Creates a list of network packets for the given map change details.
bool convertPacketListToChangeDetails (std::list< ArNetPacket * > &packetList, ArMapChangeDetails *changeDetailsOut)
 Unpacks the given network packet list and populates the given map change details.
virtual void handleChangePacket (ArServerClient *client, ArNetPacket *packet)
 Server handler for packets that contain map change details.
virtual void handleChangeReplyPacket (ArNetPacket *packet)
 Client handler for the results of applying the map changes on the server.
virtual void handleChangesInProgressPacket (ArNetPacket *packet)
 Client handler for the map-changes-in-progress broadcast packet.
virtual void handleClientShutdown ()
 Client handler for when the robot disconnects or is shutdown.
virtual void handleIdleProcessingPacket (ArNetPacket *packet)
 Client handler for the server's idle-processing-pending broadcast packet.
bool isIdleProcessingPending ()
 Determines whether idle processing is pending on the server.
bool isMatchingObjects (ArMapObject *obj1, ArMapObject *obj2)
 If the objects have a name, then the name must be identical.
void remFromCallbackList (ArFunctor *functor, std::list< ArFunctor * > *cbList)
 Removes the given functor from the given callback list.
void resetPacketList (std::list< ArNetPacket * > *packetList)
 Resets all of the network packets in the given list so that they can be read again.
bool unpackFileLineSet (ArNetPacket *packet, MapChangeDataType dataType, ArMapChangeDetails::MapLineChangeType changeType, const char *scanType, int *numGroups, int *numChildren, ArMapChangeDetails *changeDetails)
 The file line set is added to the given change details.
bool unpackHeader (ArNetPacket *packet, MapChangeCommand *commandOut, ArMapId *origMapIdOut, ArMapId *newMapIdOut=NULL, MapChangeDataType *dataTypeOut=NULL, ArMapChangeDetails::MapLineChangeType *changeTypeOut=NULL, std::string *scanTypeOut=NULL)
bool unpackLines (ArNetPacket *packet, ArMapChangeDetails::MapLineChangeType changeType, const char *scanType, int *numLines, ArMapChangeDetails *changeDetails)
 The data lines are added to the given change details.
bool unpackPoints (ArNetPacket *packet, ArMapChangeDetails::MapLineChangeType changeType, const char *scanType, int *numPoints, ArMapChangeDetails *changeDetails)
 The data points are added to the given change details.
bool waitForReply (ArTime &started)
 If a reply is not received within 30 seconds, this method will timeout and return false.

Protected Attributes

std::list< ArFunctor2< ArServerClient *,
std::list< ArNetPacket * > * > * > 
myChangeCBList
 List of server client callbacks to be invoked after the map has been changed.
ArMapChangeDetailsmyChangeDetails
 Change details to apply to the Aria map.
ArClientBasemyClient
 Associated client base; non-NULL only when changer instantiated on the client.
ClientChangeInfomyClientInfo
 Information regarding the server client that is currently sending map changes.
ArMutex myClientInfoMutex
 Mutex that protects access to the myClientInfo member.
ArMutex myClientMutex
 Mutex that protects access to the myClient member.
ArFunctorC< ArMapChangermyClientShutdownCB
 Handler invoked when the client shuts down.
ArFunctor2C< ArMapChanger,
ArServerClient *, ArNetPacket * > 
myHandleChangePacketCB
 Server handler for the network packets that describe map chagnes.
ArFunctor1C< ArMapChanger,
ArNetPacket * > 
myHandleChangesInProgressPacketCB
 Client handler for the map-changes-in-progress packet.
ArFunctor1C< ArMapChanger,
ArNetPacket * > 
myHandleIdleProcessingPacketCB
 Client handler for the idle-processing-in-progress packet.
ArFunctor1C< ArMapChanger,
ArNetPacket * > 
myHandleReplyPacketCB
 Client handler for the reply packet.
ArMutex myIdleProcessingMutex
 Mutex that protects access to the myIsIdleProcessingPending member.
std::list< std::string > myInfoNames
 List of info types in the associated info map.
ArMutex myInterleaveMutex
 Mutex that protects access to the interleave data.
bool myIsIdleProcessingPending
 Whether the server has data to process once it becomes idle.
bool myIsWaitingForReturn
 Whether the client is waiting for a reply from the server.
ArMapInterfacemyMap
 Aria map currently in use.
std::list< ArFunctor * > myPostWriteCBList
 List of callbacks to be invoked after the changed map file is written.
std::list< ArFunctor * > myPreWriteCBList
 List of callbacks to be invoked before the changed map file is written.
bool myReadyForNextPacket
 Whether the client is ready to send another packet.
ArServerBasemyServer
 Associated server base; non-NULL only when changer instantiated on the server.
ArMapInterfacemyWorkingMap
 Copy of the current Aria map, used to make sure the changes can be successfully made.

Classes

struct  ClientChangeInfo
 Accumulates the packet list that describes map changes received from a specified client. More...


Member Enumeration Documentation

anonymous enum [protected]

Miscellaneous constants.

Enumerator:
CHANGE_DATA_TYPE_COUNT 
CHANGE_COMMAND_COUNT 
MAX_POINTS_IN_PACKET 
MAX_LINES_IN_PACKET 

enum ArMapChanger::MapChangeCommand [protected]

Indicates the current stage of the map change network packets.

Enumerator:
START_CHANGES  First packet that contains changes to be applied to the map.
CONTINUE_CHANGES  Request to continue applying changes to the map.
FINISH_CHANGES  Last packet that contains changes to be applied to the map.
CANCEL_CHANGES  Cancel the request to change the map.
LAST_CHANGE_COMMAND  Last value in the enumeration.

enum ArMapChanger::MapChangeDataType [protected]

Type of data contained in the map change network packet.

Enumerator:
NO_CHANGE  No change data.
SUMMARY_DATA  Summary data, e.g. min/max pos, number of points.
INFO_DATA  Any of the info data, e.g. MapInfo, RouteInfo.
SUPPLEMENT_DATA  Miscellaneous supplemental data such as origin lat/long/alt.
OBJECTS_DATA  Map objects, i.e. Cairn lines.
POINTS_DATA  Map data points.
LINES_DATA  Map data lines.
LAST_CHANGE_DATA_TYPE  Last value in the enumeration.

enum ArMapChanger::MapChangeReplyType [protected]

Reply status for a map change request.

Enumerator:
CHANGE_FAILED 
CHANGE_SUCCESS 


Constructor & Destructor Documentation

ArMapChanger::ArMapChanger ( ArServerBase server,
ArMapInterface map 
)

The map changer will automatically apply the received map change details to the given map.

Parameters:
server the ArServerBase * that receives the network packets
map the ArMapInterface * to which to apply the map changes

ArMapChanger::ArMapChanger ( ArClientBase client,
const std::list< std::string > &  infoNames 
)

The map changer will send map change details to the server.

The application must request this by calling sendMapChanges.

Parameters:
client the ArClientBase * which is used to send the map change details
infoNames the list of info names included in the map

ArMapChanger::ArMapChanger ( ArMapInterface map  ) 

This method is primarily used for debugging.

Parameters:
map the ArMapInterface * to which to apply the map changes

ArMapChanger::~ArMapChanger (  )  [virtual]

Destructor.


Member Function Documentation

bool ArMapChanger::addChangeCB ( ArFunctor2< ArServerClient *, std::list< ArNetPacket * > * > *  functor  )  [virtual]

This method is primarily used on the central server.

After the map changes are successfully applied to its map, they are propagated to all of the connected robots.

bool ArMapChanger::addFileLineSetPackets ( MapChangeDataType  dataType,
ArMapChangeDetails::MapLineChangeType  changeType,
const char *  scanType,
const char *  extra,
ArMapFileLineSet fileLineSet,
std::list< ArNetPacket * > *  packetListOut 
) [protected]

Parameters:
dataType the MapChangeDataType that specifies which map data is to be added
changeType the MapLineChangeType that specifies the type of map change (lines added or deleted)
scanType the char * identifier of the scan source to add; valid only when dataType is SUMMARY_DATA
extra an optional const char * identifier that clarifies which data to add; when dataType is INFO_DATA, this is the info name; otherwise, ignored
fileLineSet the ArMapFileLineSet * component of the map change details that is to be converted to network packets
packetListOut the list of ArNetPackets to which new packets are added

bool ArMapChanger::addFileLineToPacketList ( MapChangeDataType  dataType,
ArMapChangeDetails::MapLineChangeType  changeType,
const char *  scanType,
const ArMapFileLine fileLine,
std::list< ArNetPacket * > *  packetListOut 
) [protected]

Creates network packets for the specified file line and adds them to the given list.

bool ArMapChanger::addGroupToPacketList ( MapChangeDataType  dataType,
ArMapChangeDetails::MapLineChangeType  changeType,
const char *  scanType,
ArMapFileLineGroup group,
std::list< ArNetPacket * > *  packetListOut 
) [protected]

Creates network packets for the specified file line group and adds them to the given list.

void ArMapChanger::addHeaderToPacket ( MapChangeCommand  command,
MapChangeDataType  dataType,
ArMapChangeDetails::MapLineChangeType  changeType,
const char *  scanType,
ArNetPacket packet 
) [protected]

Parameters:
command the MapChangeCommand that specifies which command identifier to add to this packet
dataType the MapChangeDataType that specifies which map data is to be added
changeType the MapLineChangeType that specifies the type of map change (lines added or deleted)
scanType the char * identifier of the scan source to add; valid only when dataType is SUMMARY_DATA
packet the ArNetPacket * to be modified; must be non-NULL

bool ArMapChanger::addLinesPackets ( ArMapChangeDetails::MapLineChangeType  changeType,
const char *  scanType,
std::vector< ArLineSegment > *  lineSegmentList,
std::list< ArNetPacket * > *  packetListOut 
) [protected]

Creates network packets for the given map data lines and adds them to the given list.

bool ArMapChanger::addPointsPackets ( ArMapChangeDetails::MapLineChangeType  changeType,
const char *  scanType,
std::vector< ArPose > *  pointList,
std::list< ArNetPacket * > *  packetListOut 
) [protected]

Creates network packets for the given map data points and adds them to the given list.

void ArMapChanger::addPostWriteFileCB ( ArFunctor functor,
ArListPos::Pos  position = ArListPos::LAST 
) [virtual]

This method is primarily used to restore the server's directory write status, if necessary.

void ArMapChanger::addPreWriteFileCB ( ArFunctor functor,
ArListPos::Pos  position = ArListPos::LAST 
) [virtual]

This method is primarily used to temporarily make the server's directory writeable, if necessary.

void ArMapChanger::addToCallbackList ( ArFunctor functor,
ArListPos::Pos  position,
std::list< ArFunctor * > *  cbList 
) [protected]

Adds the given functor to the given callback list.

bool ArMapChanger::applyInfoChanges ( ArMapChangeDetails changeDetails  )  [protected]

Parameters:
changeDetails the ArMapChangeDetails * that describes how the map should be modified; must be non-NULL

bool ArMapChanger::applyMapChanges ( ArMapChangeDetails changeDetails  )  [virtual]

Applies the given map changes received from the client to the associated Aria map.

bool ArMapChanger::applyObjectChanges ( ArMapChangeDetails changeDetails  )  [protected]

Parameters:
changeDetails the ArMapChangeDetails * that describes how the map should be modified; must be non-NULL

bool ArMapChanger::applyScanChanges ( ArMapChangeDetails changeDetails,
const char *  scanType,
ArFileParser parser 
) [protected]

Parameters:
changeDetails the ArMapChangeDetails * that describes how the map should be modified; must be non-NULL
scanType the char * identifier of the scan type to be updated
parser the ArFileParser used to parse the changeDetails

bool ArMapChanger::applyScanChanges ( ArMapChangeDetails changeDetails  )  [protected]

Scan data include summary data, map data points, and map data lines.

If the map contains scan data for multiple sources, then this method applies all of the applicable changes.

An Aria map must have been previously associated with the map changer.

bool ArMapChanger::applySupplementChanges ( ArMapChangeDetails changeDetails  )  [protected]

Parameters:
changeDetails the ArMapChangeDetails * that describes how the map should be modified; must be non-NULL

bool ArMapChanger::convertChangeDetailsToPacketList ( ArMapChangeDetails changeDetails,
std::list< ArNetPacket * > *  packetListOut,
bool  isRelay = false 
) [protected]

Creates a list of network packets for the given map change details.

bool ArMapChanger::convertPacketListToChangeDetails ( std::list< ArNetPacket * > &  packetList,
ArMapChangeDetails changeDetailsOut 
) [protected]

Unpacks the given network packet list and populates the given map change details.

void ArMapChanger::handleChangePacket ( ArServerClient client,
ArNetPacket packet 
) [protected, virtual]

Server handler for packets that contain map change details.

void ArMapChanger::handleChangeReplyPacket ( ArNetPacket packet  )  [protected, virtual]

Client handler for the results of applying the map changes on the server.

void ArMapChanger::handleChangesInProgressPacket ( ArNetPacket packet  )  [protected, virtual]

Client handler for the map-changes-in-progress broadcast packet.

void ArMapChanger::handleClientShutdown (  )  [protected, virtual]

Client handler for when the robot disconnects or is shutdown.

void ArMapChanger::handleIdleProcessingPacket ( ArNetPacket packet  )  [protected, virtual]

Client handler for the server's idle-processing-pending broadcast packet.

bool ArMapChanger::isIdleProcessingPending (  )  [protected]

Determines whether idle processing is pending on the server.

bool ArMapChanger::isMatchingObjects ( ArMapObject obj1,
ArMapObject obj2 
) [protected]

If the objects have a name, then the name must be identical.

Otherwise, the type and position must be the same.

bool ArMapChanger::remChangeCB ( ArFunctor2< ArServerClient *, std::list< ArNetPacket * > * > *  functor  )  [virtual]

Removes a callback from the map change list.

void ArMapChanger::remFromCallbackList ( ArFunctor functor,
std::list< ArFunctor * > *  cbList 
) [protected]

Removes the given functor from the given callback list.

void ArMapChanger::remPostWriteFileCB ( ArFunctor functor  )  [virtual]

Removes a callback from the post-write file list.

void ArMapChanger::remPreWriteFileCB ( ArFunctor functor  )  [virtual]

Removes a callback from the pre-write file list.

void ArMapChanger::resetPacketList ( std::list< ArNetPacket * > *  packetList  )  [protected]

Resets all of the network packets in the given list so that they can be read again.

bool ArMapChanger::sendMapChanges ( ArMapChangeDetails changeDetails  )  [virtual]

Sends the given map changes from the client to the server.

bool ArMapChanger::sendPacketList ( const std::list< ArNetPacket * > &  packetList  )  [virtual]

Transmits the given map change packet list from the client to the server.

bool ArMapChanger::unpackFileLineSet ( ArNetPacket packet,
MapChangeDataType  dataType,
ArMapChangeDetails::MapLineChangeType  changeType,
const char *  scanType,
int *  numGroups,
int *  numChildren,
ArMapChangeDetails changeDetails 
) [protected]

The file line set is added to the given change details.

bool ArMapChanger::unpackHeader ( ArNetPacket packet,
MapChangeCommand commandOut,
ArMapId origMapIdOut,
ArMapId newMapIdOut = NULL,
MapChangeDataType dataTypeOut = NULL,
ArMapChangeDetails::MapLineChangeType changeTypeOut = NULL,
std::string *  scanTypeOut = NULL 
) [protected]

Parameters:
packet the ArNetPacket * from which to extract the header information; must be non-NULL
commandOut the MapChangeCommand * extracted from the packet
origMapIdOut the original ArMapId * extracted from the packet
newMapIdOut the optional new ArMapId * extracted from the packet
dataTypeOut the optional MapChangeDataType * extracted from the packet
changeTypeOut the optional MapLineChangeType * extracted from the packet
scanTypeOut the optional std::string * extracted from the packet
Returns:
bool true if all of the header information was succesfully extracted; false, otherwise

bool ArMapChanger::unpackLines ( ArNetPacket packet,
ArMapChangeDetails::MapLineChangeType  changeType,
const char *  scanType,
int *  numLines,
ArMapChangeDetails changeDetails 
) [protected]

The data lines are added to the given change details.

bool ArMapChanger::unpackPoints ( ArNetPacket packet,
ArMapChangeDetails::MapLineChangeType  changeType,
const char *  scanType,
int *  numPoints,
ArMapChangeDetails changeDetails 
) [protected]

The data points are added to the given change details.

bool ArMapChanger::waitForReply ( ArTime started  )  [protected]

If a reply is not received within 30 seconds, this method will timeout and return false.

Returns:
bool true if the reply was received; false otherwise


Member Data Documentation

const char * ArMapChanger::CHANGES_IN_PROGRESS_PACKET_NAME [static]

Initial value:

 
                              "mapChangesInProgress"
Name of a network packet that is broadcast when the map is being changed.

std::list< ArFunctor2<ArServerClient *, std::list<ArNetPacket *> *> *> ArMapChanger::myChangeCBList [protected]

List of server client callbacks to be invoked after the map has been changed.

ArMapChangeDetails* ArMapChanger::myChangeDetails [protected]

Change details to apply to the Aria map.

ArClientBase* ArMapChanger::myClient [protected]

Associated client base; non-NULL only when changer instantiated on the client.

ClientChangeInfo* ArMapChanger::myClientInfo [protected]

Information regarding the server client that is currently sending map changes.

ArMutex ArMapChanger::myClientInfoMutex [protected]

Mutex that protects access to the myClientInfo member.

ArMutex ArMapChanger::myClientMutex [protected]

Mutex that protects access to the myClient member.

ArFunctorC<ArMapChanger> ArMapChanger::myClientShutdownCB [protected]

Handler invoked when the client shuts down.

ArFunctor2C<ArMapChanger, ArServerClient *, ArNetPacket *> ArMapChanger::myHandleChangePacketCB [protected]

Server handler for the network packets that describe map chagnes.

ArFunctor1C<ArMapChanger, ArNetPacket *> ArMapChanger::myHandleChangesInProgressPacketCB [protected]

Client handler for the map-changes-in-progress packet.

ArFunctor1C<ArMapChanger, ArNetPacket *> ArMapChanger::myHandleIdleProcessingPacketCB [protected]

Client handler for the idle-processing-in-progress packet.

ArFunctor1C<ArMapChanger, ArNetPacket *> ArMapChanger::myHandleReplyPacketCB [protected]

Client handler for the reply packet.

ArMutex ArMapChanger::myIdleProcessingMutex [protected]

Mutex that protects access to the myIsIdleProcessingPending member.

std::list<std::string> ArMapChanger::myInfoNames [protected]

List of info types in the associated info map.

ArMutex ArMapChanger::myInterleaveMutex [protected]

Mutex that protects access to the interleave data.

bool ArMapChanger::myIsIdleProcessingPending [protected]

Whether the server has data to process once it becomes idle.

bool ArMapChanger::myIsWaitingForReturn [protected]

Whether the client is waiting for a reply from the server.

ArMapInterface* ArMapChanger::myMap [protected]

Aria map currently in use.

std::list<ArFunctor*> ArMapChanger::myPostWriteCBList [protected]

List of callbacks to be invoked after the changed map file is written.

std::list<ArFunctor*> ArMapChanger::myPreWriteCBList [protected]

List of callbacks to be invoked before the changed map file is written.

bool ArMapChanger::myReadyForNextPacket [protected]

Whether the client is ready to send another packet.

ArServerBase* ArMapChanger::myServer [protected]

Associated server base; non-NULL only when changer instantiated on the server.

ArMapInterface* ArMapChanger::myWorkingMap [protected]

Copy of the current Aria map, used to make sure the changes can be successfully made.

const char * ArMapChanger::PROCESS_CHANGES_PACKET_NAME [static]

Initial value:

 
                              "processMapChanges"
Name of the network packet that contains the incremental map changes.


The documentation for this class was generated from the following files:
Generated on Fri Jul 31 12:37:29 2009 for ArNetworking by  doxygen 1.4.7