ArNetworking: ArClientArg Class Reference

- Main Page
- Classes
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# 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:

- ArClientArgUtils.h