#include <ArClientArgUtils.h>
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 |
|
Stores the arg value into the network packet as a text string. The stored text string is suitable for parsing by an ArArgumentBuilder.
|
|
Stores the abbreviated arg value into the network packet.
|
|
Unpacks the abbreviated arg value and stores the data in the config arg.
|
|
Unpacks the given network packet and stores the data in the config arg.
|
|
Stores the given config arg into the network packet.
|
|
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. |