From 38d6d37f2d982fa959e9e8a4a3f7e1ccfad7b5d4 Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Fri, 15 Aug 2008 23:44:46 -0500 Subject: Second Life viewer sources 1.13.2.12 --- linden/indra/llmessage/lllogtextmessage.h | 95 +++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 linden/indra/llmessage/lllogtextmessage.h (limited to 'linden/indra/llmessage/lllogtextmessage.h') diff --git a/linden/indra/llmessage/lllogtextmessage.h b/linden/indra/llmessage/lllogtextmessage.h new file mode 100644 index 0000000..2413376 --- /dev/null +++ b/linden/indra/llmessage/lllogtextmessage.h @@ -0,0 +1,95 @@ +/** + * @file lllogtextmessage.h + * @author Phoenix + * @date 2005-01-11 + * @brief Declaration of class for coalescing text logs generated + * from chat and IM + * + * Copyright (c) 2005-2007, Linden Research, Inc. + * + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlife.com/developers/opensource/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlife.com/developers/opensource/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + */ + +#ifndef LL_LLLOGTEXTMESSAGE_H +#define LL_LLLOGTEXTMESSAGE_H + +#include +#include + +#include "lluuid.h" +#include "llhost.h" + +/** + * @class LLLogTextMessage + * @brief This class represents a coalesced collection of text messages + * generated by agents and their objects. + * + * This class is intended to be used as a singleton. Since use on the + * simulator and userserver is somewhat different the class does not + * enforce a singleton or provide an extern. + */ +class LLLogTextMessage +{ +public: + LLLogTextMessage(const LLHost& dataserver) : + mDataserver(dataserver), + mPendingSize(0) {} + ~LLLogTextMessage(); + + void log(const LLUUID& from, const LLUUID& to, const char* mesg); + void log(const LLUUID& from, F64 global_x, F64 global_y, const char* mesg); + void log( + const LLUUID& from, + const LLUUID& to, + F64 global_x, + F64 global_y, + const char* mesg); + void flush(); + +protected: + struct LLLogTextMessageData + { + LLLogTextMessageData( + const LLUUID& from, + const LLUUID& to, + const F64& global_x, + const F64& gloabl_y, + const char* message); + LLUUID mFromID; + LLUUID mToID; + F64 mGlobalX; + F64 mGlobalY; + std::string mMessage; + S32 mTime; + }; + + // The destination of the messages + LLHost mDataserver; + + // Keep the messages queued in order of arrival. + std::deque mQueue; + + // Tracks the outgoing message size in bytes of the pending queued + // text logs. + S32 mPendingSize; +}; + +#endif // LL_LLLOGTEXTMESSAGE_H -- cgit v1.1