summaryrefslogtreecommitdiff
path: root/indra/newview/llsyntaxid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llsyntaxid.cpp')
-rw-r--r--indra/newview/llsyntaxid.cpp294
1 files changed, 147 insertions, 147 deletions
diff --git a/indra/newview/llsyntaxid.cpp b/indra/newview/llsyntaxid.cpp
index 10a9dee415..5114ee3672 100644
--- a/indra/newview/llsyntaxid.cpp
+++ b/indra/newview/llsyntaxid.cpp
@@ -1,7 +1,7 @@
/**
* @file LLSyntaxId
* @brief Handles downloading, saving, and checking of LSL keyword/syntax files
- * for each region.
+ * for each region.
* @author Ima Mechanique, Cinder Roxley
*
* $LicenseInfo:firstyear=2013&license=viewerlgpl$
@@ -46,22 +46,22 @@ const std::string FILENAME_DEFAULT = "keywords_lsl_default.xml";
* @brief LLSyntaxIdLSL constructor
*/
LLSyntaxIdLSL::LLSyntaxIdLSL()
-: mKeywordsXml(LLSD())
-, mCapabilityURL(std::string())
-, mFilePath(LL_PATH_APP_SETTINGS)
-, mSyntaxId(LLUUID())
-, mInitialized(false)
+: mKeywordsXml(LLSD())
+, mCapabilityURL(std::string())
+, mFilePath(LL_PATH_APP_SETTINGS)
+, mSyntaxId(LLUUID())
+, mInitialized(false)
{
- loadDefaultKeywordsIntoLLSD();
- mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLSyntaxIdLSL::handleRegionChanged, this));
- handleRegionChanged(); // Kick off an initial caps query and fetch
+ loadDefaultKeywordsIntoLLSD();
+ mRegionChangedCallback = gAgent.addRegionChangedCallback(boost::bind(&LLSyntaxIdLSL::handleRegionChanged, this));
+ handleRegionChanged(); // Kick off an initial caps query and fetch
}
void LLSyntaxIdLSL::buildFullFileSpec()
{
- ELLPath path = mSyntaxId.isNull() ? LL_PATH_APP_SETTINGS : LL_PATH_CACHE;
- const std::string filename = mSyntaxId.isNull() ? FILENAME_DEFAULT : "keywords_lsl_" + mSyntaxId.asString() + ".llsd.xml";
- mFullFileSpec = gDirUtilp->getExpandedFilename(path, filename);
+ ELLPath path = mSyntaxId.isNull() ? LL_PATH_APP_SETTINGS : LL_PATH_CACHE;
+ const std::string filename = mSyntaxId.isNull() ? FILENAME_DEFAULT : "keywords_lsl_" + mSyntaxId.asString() + ".llsd.xml";
+ mFullFileSpec = gDirUtilp->getExpandedFilename(path, filename);
}
//-----------------------------------------------------------------------------
@@ -69,38 +69,38 @@ void LLSyntaxIdLSL::buildFullFileSpec()
//-----------------------------------------------------------------------------
bool LLSyntaxIdLSL::syntaxIdChanged()
{
- LLViewerRegion* region = gAgent.getRegion();
-
- if (region)
- {
- if (region->capabilitiesReceived())
- {
- LLSD sim_features;
- region->getSimulatorFeatures(sim_features);
-
- if (sim_features.has(SYNTAX_ID_SIMULATOR_FEATURE))
- {
- // get and check the hash
- LLUUID new_syntax_id = sim_features[SYNTAX_ID_SIMULATOR_FEATURE].asUUID();
- mCapabilityURL = region->getCapability(SYNTAX_ID_CAPABILITY_NAME);
- LL_DEBUGS("SyntaxLSL") << SYNTAX_ID_SIMULATOR_FEATURE << " capability URL: " << mCapabilityURL << LL_ENDL;
- if (new_syntax_id != mSyntaxId)
- {
- LL_DEBUGS("SyntaxLSL") << "New SyntaxID '" << new_syntax_id << "' found." << LL_ENDL;
- mSyntaxId = new_syntax_id;
- return true;
- }
- else
- LL_DEBUGS("SyntaxLSL") << "SyntaxID matches what we have." << LL_ENDL;
- }
- }
- else
- {
- region->setCapabilitiesReceivedCallback(boost::bind(&LLSyntaxIdLSL::handleCapsReceived, this, _1));
- LL_DEBUGS("SyntaxLSL") << "Region has not received capabilities. Waiting for caps..." << LL_ENDL;
- }
- }
- return false;
+ LLViewerRegion* region = gAgent.getRegion();
+
+ if (region)
+ {
+ if (region->capabilitiesReceived())
+ {
+ LLSD sim_features;
+ region->getSimulatorFeatures(sim_features);
+
+ if (sim_features.has(SYNTAX_ID_SIMULATOR_FEATURE))
+ {
+ // get and check the hash
+ LLUUID new_syntax_id = sim_features[SYNTAX_ID_SIMULATOR_FEATURE].asUUID();
+ mCapabilityURL = region->getCapability(SYNTAX_ID_CAPABILITY_NAME);
+ LL_DEBUGS("SyntaxLSL") << SYNTAX_ID_SIMULATOR_FEATURE << " capability URL: " << mCapabilityURL << LL_ENDL;
+ if (new_syntax_id != mSyntaxId)
+ {
+ LL_DEBUGS("SyntaxLSL") << "New SyntaxID '" << new_syntax_id << "' found." << LL_ENDL;
+ mSyntaxId = new_syntax_id;
+ return true;
+ }
+ else
+ LL_DEBUGS("SyntaxLSL") << "SyntaxID matches what we have." << LL_ENDL;
+ }
+ }
+ else
+ {
+ region->setCapabilitiesReceivedCallback(boost::bind(&LLSyntaxIdLSL::handleCapsReceived, this, _1));
+ LL_DEBUGS("SyntaxLSL") << "Region has not received capabilities. Waiting for caps..." << LL_ENDL;
+ }
+ }
+ return false;
}
//-----------------------------------------------------------------------------
@@ -110,7 +110,7 @@ void LLSyntaxIdLSL::fetchKeywordsFile(const std::string& filespec)
{
LLCoros::instance().launch("LLSyntaxIdLSL::fetchKeywordsFileCoro",
boost::bind(&LLSyntaxIdLSL::fetchKeywordsFileCoro, this, mCapabilityURL, filespec));
- LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId capability URL is: " << mCapabilityURL << ". Filename to use is: '" << filespec << "'." << LL_ENDL;
+ LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId capability URL is: " << mCapabilityURL << ". Filename to use is: '" << filespec << "'." << LL_ENDL;
}
//-----------------------------------------------------------------------------
@@ -180,42 +180,42 @@ void LLSyntaxIdLSL::cacheFile(const std::string &fileSpec, const LLSD& content_r
//-----------------------------------------------------------------------------
void LLSyntaxIdLSL::initialize()
{
- if(mInitialized) return;
- if (mSyntaxId.isNull())
- {
- loadDefaultKeywordsIntoLLSD();
- }
- else if (!mCapabilityURL.empty())
- {
- LL_DEBUGS("SyntaxLSL") << "LSL version has changed, getting appropriate file." << LL_ENDL;
-
- // Need a full spec regardless of file source, so build it now.
- buildFullFileSpec();
- if (mSyntaxId.notNull())
- {
- if (!gDirUtilp->fileExists(mFullFileSpec))
- { // Does not exist, so fetch it from the capability
- LL_DEBUGS("SyntaxLSL") << "LSL syntax not cached, attempting download." << LL_ENDL;
- fetchKeywordsFile(mFullFileSpec);
- }
- else
- {
- LL_DEBUGS("SyntaxLSL") << "Found cached Syntax file: " << mFullFileSpec << " Loading keywords." << LL_ENDL;
- loadKeywordsIntoLLSD();
- }
- }
- else
- {
- LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId is null. Loading default values" << LL_ENDL;
- loadDefaultKeywordsIntoLLSD();
- }
- }
- else
- {
- LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId capability URL is empty." << LL_ENDL;
- loadDefaultKeywordsIntoLLSD();
- }
- mInitialized = true;
+ if(mInitialized) return;
+ if (mSyntaxId.isNull())
+ {
+ loadDefaultKeywordsIntoLLSD();
+ }
+ else if (!mCapabilityURL.empty())
+ {
+ LL_DEBUGS("SyntaxLSL") << "LSL version has changed, getting appropriate file." << LL_ENDL;
+
+ // Need a full spec regardless of file source, so build it now.
+ buildFullFileSpec();
+ if (mSyntaxId.notNull())
+ {
+ if (!gDirUtilp->fileExists(mFullFileSpec))
+ { // Does not exist, so fetch it from the capability
+ LL_DEBUGS("SyntaxLSL") << "LSL syntax not cached, attempting download." << LL_ENDL;
+ fetchKeywordsFile(mFullFileSpec);
+ }
+ else
+ {
+ LL_DEBUGS("SyntaxLSL") << "Found cached Syntax file: " << mFullFileSpec << " Loading keywords." << LL_ENDL;
+ loadKeywordsIntoLLSD();
+ }
+ }
+ else
+ {
+ LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId is null. Loading default values" << LL_ENDL;
+ loadDefaultKeywordsIntoLLSD();
+ }
+ }
+ else
+ {
+ LL_DEBUGS("SyntaxLSL") << "LSLSyntaxId capability URL is empty." << LL_ENDL;
+ loadDefaultKeywordsIntoLLSD();
+ }
+ mInitialized = true;
}
//-----------------------------------------------------------------------------
@@ -226,27 +226,27 @@ const std::string LLSD_SYNTAX_LSL_VERSION_KEY("llsd-lsl-syntax-version");
bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
{
- bool is_valid = false;
- /*
- * If the schema used to store LSL keywords and hints changes, this value is incremented
- * Note that it should _not_ be changed if the keywords and hints _content_ changes.
- */
-
- if (content.has(LLSD_SYNTAX_LSL_VERSION_KEY))
- {
- LL_DEBUGS("SyntaxLSL") << "LSL syntax version: " << content[LLSD_SYNTAX_LSL_VERSION_KEY].asString() << LL_ENDL;
-
- if (content[LLSD_SYNTAX_LSL_VERSION_KEY].asInteger() == LLSD_SYNTAX_LSL_VERSION_EXPECTED)
- {
- is_valid = true;
- }
- }
- else
- {
- LL_DEBUGS("SyntaxLSL") << "Missing LSL syntax version key." << LL_ENDL;
- }
-
- return is_valid;
+ bool is_valid = false;
+ /*
+ * If the schema used to store LSL keywords and hints changes, this value is incremented
+ * Note that it should _not_ be changed if the keywords and hints _content_ changes.
+ */
+
+ if (content.has(LLSD_SYNTAX_LSL_VERSION_KEY))
+ {
+ LL_DEBUGS("SyntaxLSL") << "LSL syntax version: " << content[LLSD_SYNTAX_LSL_VERSION_KEY].asString() << LL_ENDL;
+
+ if (content[LLSD_SYNTAX_LSL_VERSION_KEY].asInteger() == LLSD_SYNTAX_LSL_VERSION_EXPECTED)
+ {
+ is_valid = true;
+ }
+ }
+ else
+ {
+ LL_DEBUGS("SyntaxLSL") << "Missing LSL syntax version key." << LL_ENDL;
+ }
+
+ return is_valid;
}
//-----------------------------------------------------------------------------
@@ -254,74 +254,74 @@ bool LLSyntaxIdLSL::isSupportedVersion(const LLSD& content)
//-----------------------------------------------------------------------------
void LLSyntaxIdLSL::loadDefaultKeywordsIntoLLSD()
{
- mSyntaxId.setNull();
- buildFullFileSpec();
- loadKeywordsIntoLLSD();
+ mSyntaxId.setNull();
+ buildFullFileSpec();
+ loadKeywordsIntoLLSD();
}
//-----------------------------------------------------------------------------
// loadKeywordsFileIntoLLSD
//-----------------------------------------------------------------------------
/**
- * @brief Load xml serialized LLSD
- * @desc Opens the specified filespec and attempts to deserializes the
- * contained data to the specified LLSD object. indicate success/failure with
- * sLoaded/sLoadFailed members.
+ * @brief Load xml serialized LLSD
+ * @desc Opens the specified filespec and attempts to deserializes the
+ * contained data to the specified LLSD object. indicate success/failure with
+ * sLoaded/sLoadFailed members.
*/
void LLSyntaxIdLSL::loadKeywordsIntoLLSD()
{
- LLSD content;
- llifstream file;
- file.open(mFullFileSpec.c_str());
- if (file.is_open())
- {
- if (LLSDSerialize::fromXML(content, file) != LLSDParser::PARSE_FAILURE)
- {
- if (isSupportedVersion(content))
- {
- LL_DEBUGS("SyntaxLSL") << "Deserialized: " << mFullFileSpec << LL_ENDL;
- }
- else
- {
- LL_WARNS("SyntaxLSL") << "Unknown or unsupported version of syntax file." << LL_ENDL;
- }
- }
- }
- else
- {
- LL_WARNS("SyntaxLSL") << "Failed to open: " << mFullFileSpec << LL_ENDL;
- }
- mKeywordsXml = content;
- mSyntaxIDChangedSignal();
+ LLSD content;
+ llifstream file;
+ file.open(mFullFileSpec.c_str());
+ if (file.is_open())
+ {
+ if (LLSDSerialize::fromXML(content, file) != LLSDParser::PARSE_FAILURE)
+ {
+ if (isSupportedVersion(content))
+ {
+ LL_DEBUGS("SyntaxLSL") << "Deserialized: " << mFullFileSpec << LL_ENDL;
+ }
+ else
+ {
+ LL_WARNS("SyntaxLSL") << "Unknown or unsupported version of syntax file." << LL_ENDL;
+ }
+ }
+ }
+ else
+ {
+ LL_WARNS("SyntaxLSL") << "Failed to open: " << mFullFileSpec << LL_ENDL;
+ }
+ mKeywordsXml = content;
+ mSyntaxIDChangedSignal();
}
bool LLSyntaxIdLSL::keywordFetchInProgress()
{
- return !mInflightFetches.empty();
+ return !mInflightFetches.empty();
}
void LLSyntaxIdLSL::handleRegionChanged()
{
- if (syntaxIdChanged())
- {
- buildFullFileSpec();
- fetchKeywordsFile(mFullFileSpec);
- mInitialized = false;
- }
+ if (syntaxIdChanged())
+ {
+ buildFullFileSpec();
+ fetchKeywordsFile(mFullFileSpec);
+ mInitialized = false;
+ }
}
void LLSyntaxIdLSL::handleCapsReceived(const LLUUID& region_uuid)
{
- LLViewerRegion* current_region = gAgent.getRegion();
-
- if (region_uuid.notNull()
- && current_region->getRegionID() == region_uuid)
- {
- syntaxIdChanged();
- }
+ LLViewerRegion* current_region = gAgent.getRegion();
+
+ if (region_uuid.notNull()
+ && current_region->getRegionID() == region_uuid)
+ {
+ syntaxIdChanged();
+ }
}
boost::signals2::connection LLSyntaxIdLSL::addSyntaxIDCallback(const syntax_id_changed_signal_t::slot_type& cb)
{
- return mSyntaxIDChangedSignal.connect(cb);
+ return mSyntaxIDChangedSignal.connect(cb);
}