summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--etc/message.xml3
-rw-r--r--indra/llmessage/llmessageconfig.cpp25
-rw-r--r--indra/llmessage/llmessageconfig.h1
-rw-r--r--indra/test/llmessageconfig_tut.cpp17
4 files changed, 45 insertions, 1 deletions
diff --git a/etc/message.xml b/etc/message.xml
index e4efeed05f..38415159a1 100644
--- a/etc/message.xml
+++ b/etc/message.xml
@@ -562,5 +562,8 @@
<map>
</map>
</map>
+
+ <key>maxQueuedEvents</key>
+ <integer>100</integer>
</map>
</llsd>
diff --git a/indra/llmessage/llmessageconfig.cpp b/indra/llmessage/llmessageconfig.cpp
index 550071fade..ed51019a22 100644
--- a/indra/llmessage/llmessageconfig.cpp
+++ b/indra/llmessage/llmessageconfig.cpp
@@ -66,6 +66,7 @@ public:
/* virtual */ void loadFile();
void loadServerDefaults(const LLSD& data);
+ void loadMaxQueuedEvents(const LLSD& data);
void loadMessages(const LLSD& data);
void loadCapBans(const LLSD& blacklist);
void loadMessageBans(const LLSD& blacklist);
@@ -73,6 +74,7 @@ public:
public:
LLSD mCapBans;
+ S32 mMaxQueuedEvents;
};
std::string LLMessageConfigFile::filename()
@@ -112,6 +114,7 @@ void LLMessageConfigFile::loadFile()
}
}
loadServerDefaults(data);
+ loadMaxQueuedEvents(data);
loadMessages(data);
loadCapBans(data);
loadMessageBans(data);
@@ -122,6 +125,19 @@ void LLMessageConfigFile::loadServerDefaults(const LLSD& data)
mServerDefault = data["serverDefaults"][sServerName].asString();
}
+const S32 DEFAULT_MAX_QUEUED_EVENTS = 100;
+void LLMessageConfigFile::loadMaxQueuedEvents(const LLSD& data)
+{
+ if (data.has("maxQueuedEvents"))
+ {
+ mMaxQueuedEvents = data["maxQueuedEvents"].asInteger();
+ }
+ else
+ {
+ mMaxQueuedEvents = DEFAULT_MAX_QUEUED_EVENTS;
+ }
+}
+
void LLMessageConfigFile::loadMessages(const LLSD& data)
{
mMessages = data["messages"];
@@ -191,10 +207,10 @@ void LLMessageConfig::useConfig(const LLSD& config)
{
LLMessageConfigFile &the_file = LLMessageConfigFile::instance();
the_file.loadServerDefaults(config);
+ the_file.loadMaxQueuedEvents(config);
the_file.loadMessages(config);
the_file.loadCapBans(config);
the_file.loadMessageBans(config);
-
}
//static
@@ -213,6 +229,13 @@ LLMessageConfig::Flavor LLMessageConfig::getServerDefaultFlavor()
}
//static
+S32 LLMessageConfig::getMaxQueuedEvents()
+{
+ LLMessageConfigFile& file = LLMessageConfigFile::instance();
+ return file.mMaxQueuedEvents;
+}
+
+//static
LLMessageConfig::Flavor LLMessageConfig::getMessageFlavor(const std::string& msg_name)
{
LLMessageConfigFile& file = LLMessageConfigFile::instance();
diff --git a/indra/llmessage/llmessageconfig.h b/indra/llmessage/llmessageconfig.h
index 6814089b05..d694286569 100644
--- a/indra/llmessage/llmessageconfig.h
+++ b/indra/llmessage/llmessageconfig.h
@@ -48,6 +48,7 @@ public:
static void useConfig(const LLSD& config);
static Flavor getServerDefaultFlavor();
+ static S32 getMaxQueuedEvents();
// For individual messages
static Flavor getMessageFlavor(const std::string& msg_name);
diff --git a/indra/test/llmessageconfig_tut.cpp b/indra/test/llmessageconfig_tut.cpp
index 086dbf4ef8..c2329220e5 100644
--- a/indra/test/llmessageconfig_tut.cpp
+++ b/indra/test/llmessageconfig_tut.cpp
@@ -221,4 +221,21 @@ namespace tut
LLMessageConfig::onlySendLatest("msg2"),
false);
}
+
+ template<> template<>
+ void LLMessageConfigTestObject::test<9>()
+ // tests that event queue max is reloaded
+ {
+ LLSD config;
+ config["maxQueuedEvents"] = 200;
+ LLMessageConfig::useConfig(config);
+ ensure_equals("Ensure setting maxQueuedEvents",
+ LLMessageConfig::getMaxQueuedEvents(),
+ 200);
+
+ LLMessageConfig::useConfig(LLSD());
+ ensure_equals("Ensure default of event queue max 100",
+ LLMessageConfig::getMaxQueuedEvents(),
+ 100);
+ }
}