PageRenderTime 41ms CodeModel.GetById 17ms app.highlight 21ms RepoModel.GetById 1ms app.codeStats 0ms

/indra/llmessage/llsdmessagereader.h

https://bitbucket.org/lindenlab/viewer-beta/
C++ Header | 108 lines | 67 code | 14 blank | 27 comment | 0 complexity | f192628dd7e0e871d34572b442b95f58 MD5 | raw file
  1/** 
  2 * @file llsdmessagereader.h
  3 * @brief LLSDMessageReader class Declaration
  4 *
  5 * $LicenseInfo:firstyear=2007&license=viewerlgpl$
  6 * Second Life Viewer Source Code
  7 * Copyright (C) 2010, Linden Research, Inc.
  8 * 
  9 * This library is free software; you can redistribute it and/or
 10 * modify it under the terms of the GNU Lesser General Public
 11 * License as published by the Free Software Foundation;
 12 * version 2.1 of the License only.
 13 * 
 14 * This library is distributed in the hope that it will be useful,
 15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 17 * Lesser General Public License for more details.
 18 * 
 19 * You should have received a copy of the GNU Lesser General Public
 20 * License along with this library; if not, write to the Free Software
 21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 22 * 
 23 * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
 24 * $/LicenseInfo$
 25 */
 26
 27#ifndef LL_LLSDMESSAGEREADER_H
 28#define LL_LLSDMESSAGEREADER_H
 29
 30#include "llmessagereader.h"
 31#include "llsd.h"
 32
 33#include <map>
 34
 35class LLMessageTemplate;
 36class LLMsgData;
 37
 38class LLSDMessageReader : public LLMessageReader
 39{
 40public:
 41
 42	LLSDMessageReader();
 43	virtual ~LLSDMessageReader();
 44
 45	/** All get* methods expect pointers to canonical strings. */
 46	virtual void getBinaryData(const char *block, const char *var, 
 47							   void *datap, S32 size, S32 blocknum = 0, 
 48							   S32 max_size = S32_MAX);
 49	virtual void getBOOL(const char *block, const char *var, BOOL &data, 
 50						 S32 blocknum = 0);
 51	virtual void getS8(const char *block, const char *var, S8 &data, 
 52					   S32 blocknum = 0);
 53	virtual void getU8(const char *block, const char *var, U8 &data, 
 54					   S32 blocknum = 0);
 55	virtual void getS16(const char *block, const char *var, S16 &data, 
 56						S32 blocknum = 0);
 57	virtual void getU16(const char *block, const char *var, U16 &data, 
 58						S32 blocknum = 0);
 59	virtual void getS32(const char *block, const char *var, S32 &data, 
 60						S32 blocknum = 0);
 61	virtual void getF32(const char *block, const char *var, F32 &data, 
 62						S32 blocknum = 0);
 63	virtual void getU32(const char *block, const char *var, U32 &data, 
 64						S32 blocknum = 0);
 65	virtual void getU64(const char *block, const char *var, U64 &data, 
 66						S32 blocknum = 0);
 67	virtual void getF64(const char *block, const char *var, F64 &data, 
 68						S32 blocknum = 0);
 69	virtual void getVector3(const char *block, const char *var, 
 70							LLVector3 &vec, S32 blocknum = 0);
 71	virtual void getVector4(const char *block, const char *var, 
 72							LLVector4 &vec, S32 blocknum = 0);
 73	virtual void getVector3d(const char *block, const char *var, 
 74							 LLVector3d &vec, S32 blocknum = 0);
 75	virtual void getQuat(const char *block, const char *var, LLQuaternion &q, 
 76						 S32 blocknum = 0);
 77	virtual void getUUID(const char *block, const char *var, LLUUID &uuid, 
 78						 S32 blocknum = 0);
 79	virtual void getIPAddr(const char *block, const char *var, U32 &ip, 
 80						   S32 blocknum = 0);
 81	virtual void getIPPort(const char *block, const char *var, U16 &port, 
 82						   S32 blocknum = 0);
 83	virtual void getString(const char *block, const char *var, 
 84						   S32 buffer_size, char *buffer, S32 blocknum = 0);
 85	virtual void getString(const char *block, const char *var, std::string& outstr,
 86						   S32 blocknum = 0);
 87
 88	virtual S32	getNumberOfBlocks(const char *blockname);
 89	virtual S32	getSize(const char *blockname, const char *varname);
 90	virtual S32	getSize(const char *blockname, S32 blocknum, 
 91						const char *varname);
 92
 93	virtual void clearMessage();
 94
 95	virtual const char* getMessageName() const;
 96	virtual S32 getMessageSize() const;
 97
 98	virtual void copyToBuilder(LLMessageBuilder&) const;
 99
100	/** Expects a pointer to a canonical name string */
101	void setMessage(const char* name, const LLSD& msg);
102
103private:
104	const char* mMessageName; // Canonical (prehashed) string.
105	LLSD mMessage;
106};
107
108#endif // LL_LLSDMESSAGEREADER_H