#ifndef AggreGateCommandUtilsH
#define AggreGateCommandUtilsH

#include "protocol/AggreGateCommand.h"
#include "protocol/OutgoingAggreGateCommand.h"

class AggreGateCommandUtils
{
 public:
    static const AgChar CLIENT_COMMAND_SEPARATOR = 0x0017;
	static const int CLIENT_PROTOCOL_VERSION = 2;
	static OutgoingAggreGateCommandPtr startMessage();
	static OutgoingAggreGateCommandPtr operationMessage();
	static OutgoingAggreGateCommandPtr getVariableOperation(const AgString & context, const AgString & name);
	static OutgoingAggreGateCommandPtr setVariableOperation(const AgString & context, const AgString & name, const AgString & encodedValue);
	static OutgoingAggreGateCommandPtr callFunctionOperation(const AgString & context, const AgString & name, const AgString & encodedParameters);
	static OutgoingAggreGateCommandPtr addEventListenerOperation(const AgString & context, const AgString & name, int  listenerHashCode, const AgString & filter);
	static OutgoingAggreGateCommandPtr removeEventListenerOperation(const AgString & context, const AgString & name, int  listenerHashCode, const AgString & filter);

	AggreGateCommandUtils();

};
#endif
