ArClientArg Class Reference

#include <ArClientArgUtils.h>

List of all members.


Detailed Description

Small helper class for sending/receiving an ArConfigArg in an ArNetPacket.

ArClientArg defines methods for packing/unpacking an ArConfigArg into/from an ArNetPacket. (The name of the class is a slight misnomer since it may be used both on the server and client sides.)

The structure of the network packet information is as follows:

    string: arg.getName()
    string: arg.getDescription()
    byte: arg.getConfigPriority()
    byte: arg type ('B' == BOOL | 'I' == INT | 'D' == DOUBLE | 'S' == STRING)
    <arg values>
    string: arg.getDisplayHint() -- only if isDisplayHintParsed is set to true

    <arg values> varies by arg type:
    if BOOL, then:
        byte: arg.getBool()
    if INT, then:
	      byte4: arg.getInt()
		    byte4: arg.getMinInt()
		    byte4: arg.getMaxInt()
    if DOUBLE, then:
	      byte4: arg.getDouble()
		    byte4: arg.getMinDouble()
		    byte4: arg.getMaxDouble()
    if STRING, then:
        string: arg.getString()
 

ArClientArg also defines methods to send an "abbreviated" ArConfigArg (i.e. just value). The short packet structure is as follows:

    <arg value> varies by arg type:
    if BOOL, then:
        byte: arg.getBool()
    if INT, then:
	      byte4: arg.getInt()
    if DOUBLE, then:
	      byte4: arg.getDouble()
    if STRING, then:
        string: arg.getString()
 
Lastly, it defines a method to send an "abbreviated" ArConfigArg in a text format.


Public Member Functions

 ArClientArg (bool isDisplayHintParsed=false, ArPriority::Priority lastPriority=ArPriority::LAST_PRIORITY)
 Constructor.
virtual bool argTextToBuf (const ArConfigArg &arg, ArNetPacket *packet)
 Stores the arg value into the network packet as a text string.
virtual bool argValueToBuf (const ArConfigArg &arg, ArNetPacket *packet)
 Stores the abbreviated arg value into the network packet.
virtual bool bufToArgValue (ArNetPacket *packet, ArConfigArg &arg)
 Unpacks the abbreviated arg value and stores the data in the config arg.
virtual bool createArg (ArNetPacket *packet, ArConfigArg &argOut)
 Unpacks the given network packet and stores the data in the config arg.
virtual bool createPacket (const ArConfigArg &arg, ArNetPacket *packet)
 Stores the given config arg into the network packet.
virtual bool isSendableParamType (const ArConfigArg &arg)
 Returns whether the given parameter can be sent in a network packet.
virtual ~ArClientArg ()
 Destructor.

Protected Types

enum  { BUFFER_LENGTH = 1024 }

Protected Attributes

char myBuffer [BUFFER_LENGTH]
char myDisplayBuffer [BUFFER_LENGTH]
bool myIsDisplayHintParsed
ArPriority::Priority myLastPriority


Member Function Documentation

virtual bool ArClientArg::argTextToBuf ( const ArConfigArg arg,
ArNetPacket packet 
) [virtual]

Stores the arg value into the network packet as a text string.

The stored text string is suitable for parsing by an ArArgumentBuilder.

Parameters:
arg the ArConfigArg from which to retrieve the data
packet the ArNetPacket * to which data is added
Returns:
bool set to true if the data was successfully stored in the packet; false if an error occurred and the packet is invalid

virtual bool ArClientArg::argValueToBuf ( const ArConfigArg arg,
ArNetPacket packet 
) [virtual]

Stores the abbreviated arg value into the network packet.

Parameters:
arg the ArConfigArg from which to retrieve the data
packet the ArNetPacket * to which data is added
Returns:
bool set to true if the data was successfully stored in the packet; false if an error occurred and the packet is invalid

virtual bool ArClientArg::bufToArgValue ( ArNetPacket packet,
ArConfigArg arg 
) [virtual]

Unpacks the abbreviated arg value and stores the data in the config arg.

Parameters:
packet the ArNetPacket * from which data is extracted
arg the ArConfigArg in which to set the value
Returns:
bool set to true if the data was successfully extracted from the packet; false if an error occurred and arg is invalid

virtual bool ArClientArg::createArg ( ArNetPacket packet,
ArConfigArg argOut 
) [virtual]

Unpacks the given network packet and stores the data in the config arg.

Parameters:
packet the ArNetPacket * from which data is extracted
argOut the ArConfigArg in which to set the data
Returns:
bool set to true if the data was successfully extracted from the packet; false if an error occurred and argOut is invalid

virtual bool ArClientArg::createPacket ( const ArConfigArg arg,
ArNetPacket packet 
) [virtual]

Stores the given config arg into the network packet.

Parameters:
arg the ArConfigArg from which to retrieve the data
packet the ArNetPacket * to which data is added
Returns:
bool set to true if the data was successfully stored in the packet; false if an error occurred and the packet is invalid

virtual bool ArClientArg::isSendableParamType ( const ArConfigArg arg  )  [virtual]

Returns whether the given parameter can be sent in a network packet.

Currently, a parameter can only be sent if it is of type INT, DOUBLE, STRING, BOOL, or a SEPARATOR.


The documentation for this class was generated from the following file:
Generated on Thu Aug 6 09:40:12 2009 for ArNetworking by  doxygen 1.5.1