00001
00032 #ifndef LL_LLMESSAGEREADER_H
00033 #define LL_LLMESSAGEREADER_H
00034
00035 #include "stdtypes.h"
00036
00037 class LLHost;
00038 class LLMessageBuilder;
00039 class LLMsgData;
00040 class LLQuaternion;
00041 class LLUUID;
00042 class LLVector3;
00043 class LLVector3d;
00044 class LLVector4;
00045
00046 class LLMessageReader
00047 {
00048 public:
00049
00050 virtual ~LLMessageReader();
00051
00053 virtual void getBinaryData(const char *blockname, const char *varname, void *datap, S32 size, S32 blocknum = 0, S32 max_size = S32_MAX) = 0;
00054 virtual void getBOOL(const char *block, const char *var, BOOL &data, S32 blocknum = 0) = 0;
00055 virtual void getS8(const char *block, const char *var, S8 &data, S32 blocknum = 0) = 0;
00056 virtual void getU8(const char *block, const char *var, U8 &data, S32 blocknum = 0) = 0;
00057 virtual void getS16(const char *block, const char *var, S16 &data, S32 blocknum = 0) = 0;
00058 virtual void getU16(const char *block, const char *var, U16 &data, S32 blocknum = 0) = 0;
00059 virtual void getS32(const char *block, const char *var, S32 &data, S32 blocknum = 0) = 0;
00060 virtual void getF32(const char *block, const char *var, F32 &data, S32 blocknum = 0) = 0;
00061 virtual void getU32(const char *block, const char *var, U32 &data, S32 blocknum = 0) = 0;
00062 virtual void getU64(const char *block, const char *var, U64 &data, S32 blocknum = 0) = 0;
00063 virtual void getF64(const char *block, const char *var, F64 &data, S32 blocknum = 0) = 0;
00064 virtual void getVector3(const char *block, const char *var, LLVector3 &vec, S32 blocknum = 0) = 0;
00065 virtual void getVector4(const char *block, const char *var, LLVector4 &vec, S32 blocknum = 0) = 0;
00066 virtual void getVector3d(const char *block, const char *var, LLVector3d &vec, S32 blocknum = 0) = 0;
00067 virtual void getQuat(const char *block, const char *var, LLQuaternion &q, S32 blocknum = 0) = 0;
00068 virtual void getUUID(const char *block, const char *var, LLUUID &uuid, S32 blocknum = 0) = 0;
00069 virtual void getIPAddr(const char *block, const char *var, U32 &ip, S32 blocknum = 0) = 0;
00070 virtual void getIPPort(const char *block, const char *var, U16 &port, S32 blocknum = 0) = 0;
00071 virtual void getString(const char *block, const char *var, S32 buffer_size, char *buffer, S32 blocknum = 0) = 0;
00072
00073 virtual S32 getNumberOfBlocks(const char *blockname) = 0;
00074 virtual S32 getSize(const char *blockname, const char *varname) = 0;
00075 virtual S32 getSize(const char *blockname, S32 blocknum, const char *varname) = 0;
00076
00077 virtual void clearMessage() = 0;
00078
00080 virtual const char* getMessageName() const = 0;
00081 virtual S32 getMessageSize() const = 0;
00082
00083 virtual void copyToBuilder(LLMessageBuilder&) const = 0;
00084
00085 static void setTimeDecodes(BOOL b);
00086 static BOOL getTimeDecodes();
00087 static void setTimeDecodesSpamThreshold(F32 seconds);
00088 static F32 getTimeDecodesSpamThreshold();
00089 };
00090
00091 #endif // LL_LLMESSAGEREADER_H