From b5342e238a96ee00d7d2afa3883b1596291587cc Mon Sep 17 00:00:00 2001
From: James Cook <james@lindenlab.com>
Date: Tue, 27 Feb 2007 17:52:10 +0000
Subject: [PATCH] svn merge -r58163:58241 loadstone-sim-standby, reduces
 database load from standby sims polling the database for a region to run

---
 indra/llcommon/llerror.cpp         |  2 +-
 indra/llcommon/llliveappconfig.cpp | 46 ++++++++++++++++++++++++++++++
 indra/llcommon/llliveappconfig.h   | 33 +++++++++++++++++++++
 3 files changed, 80 insertions(+), 1 deletion(-)
 create mode 100644 indra/llcommon/llliveappconfig.cpp
 create mode 100644 indra/llcommon/llliveappconfig.h

diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp
index 52b37bb05cd..1ed25a0d176 100644
--- a/indra/llcommon/llerror.cpp
+++ b/indra/llcommon/llerror.cpp
@@ -277,7 +277,7 @@ namespace
 		}
 		
 		LLError::configure(configuration);
-		llwarns << "error logging reconfigured from " << filename() << llendl;
+		llinfos << "logging reconfigured from " << filename() << llendl;
 	}
 
 
diff --git a/indra/llcommon/llliveappconfig.cpp b/indra/llcommon/llliveappconfig.cpp
new file mode 100644
index 00000000000..8bcaeb898f1
--- /dev/null
+++ b/indra/llcommon/llliveappconfig.cpp
@@ -0,0 +1,46 @@
+/** 
+ * @file llliveappconfig.cpp
+ * @brief Configuration information for an LLApp that overrides indra.xml
+ *
+ * Copyright (c) 2003-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#include "linden_common.h"
+
+#include "llliveappconfig.h"
+
+#include "llapp.h"
+#include "llsd.h"
+#include "llsdserialize.h"
+
+LLLiveAppConfig::LLLiveAppConfig(LLApp* app, const std::string& filename, F32 refresh_period)
+:	LLLiveFile(filename, refresh_period),
+	mApp(app)
+{ }
+
+
+LLLiveAppConfig::~LLLiveAppConfig()
+{ }
+
+// virtual 
+void LLLiveAppConfig::loadFile()
+{
+	llinfos << "LLLiveAppConfig::loadFile(): reading from "
+		<< filename() << llendl;
+    llifstream file(filename().c_str());
+	LLSD config;
+    if (file.is_open())
+    {
+        LLSDSerialize::fromXML(config, file);
+		if(!config.isMap())
+		{
+			llinfos << "LLDataserverConfig::loadFile(): not an map!"
+				<< " Ignoring the data." << llendl;
+			return;
+		}
+		file.close();
+    }
+	mApp->setOptionData(
+		LLApp::PRIORITY_SPECIFIC_CONFIGURATION, config);
+}
diff --git a/indra/llcommon/llliveappconfig.h b/indra/llcommon/llliveappconfig.h
new file mode 100644
index 00000000000..ceceda5b180
--- /dev/null
+++ b/indra/llcommon/llliveappconfig.h
@@ -0,0 +1,33 @@
+/** 
+ * @file llliveappconfig.h
+ * @brief Configuration information for an LLApp that overrides indra.xml
+ *
+ * Copyright (c) 2003-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#ifndef LLLIVEAPPCONFIG_H
+#define LLLIVEAPPCONFIG_H
+
+#include "lllivefile.h"
+
+class LLApp;
+
+class LLLiveAppConfig : public LLLiveFile
+{
+public:
+	// To use this, instantiate a LLLiveAppConfig object inside your main loop.
+	// The traditional name for it is live_config.
+	// Be sure to call live_config.checkAndReload() periodically.
+
+	LLLiveAppConfig(LLApp* app, const std::string& filename, F32 refresh_period);
+	~LLLiveAppConfig();
+
+protected:
+	/*virtual*/ void loadFile();
+
+private:
+	LLApp* mApp;
+};
+
+#endif
-- 
GitLab