// static bool LLURLDispatcherImpl::isSLURL(const std::string& url) { if (matchPrefix(url, SLURL_SL_HELP_PREFIX)) return true; if (matchPrefix(url, SLURL_SL_PREFIX)) return true; if (matchPrefix(url, SLURL_SECONDLIFE_PREFIX)) return true; if (matchPrefix(url, SLURL_SLURL_PREFIX)) return true; return false; }
// static bool LLURLDispatcherImpl::isIZURL(const std::string& url) { if (matchPrefix(url, IZURL_IZ_HELP_PREFIX)) return true; if (matchPrefix(url, IZURL_IZ_PREFIX)) return true; if (matchPrefix(url, IZURL_INWORLDZ_PREFIX)) return true; if (matchPrefix(url, IZURL_IZURL_PREFIX)) return true; return false; }
// static bool LLURLDispatcherImpl::isSLURLCommand(const std::string& url) { if (matchPrefix(url, SLURL_SL_PREFIX + SLURL_APP_TOKEN) || matchPrefix(url, SLURL_SECONDLIFE_PREFIX + "/" + SLURL_APP_TOKEN) || matchPrefix(url, SLURL_SLURL_PREFIX + SLURL_APP_TOKEN) ) { return true; } return false; }
// static bool LLURLDispatcherImpl::isIZURLCommand(const std::string& url) { if (matchPrefix(url, IZURL_IZ_PREFIX + IZURL_APP_TOKEN) || matchPrefix(url, IZURL_INWORLDZ_PREFIX + "/" + IZURL_APP_TOKEN) || matchPrefix(url, IZURL_IZURL_PREFIX + IZURL_APP_TOKEN)) { return true; } return false; }
inline bool matchPrefix(const std::string& prefix, const std::string& message, const bool ignoreWhitespace) { if (ignoreWhitespace) { const size_t posPre = prefix.find_first_not_of(' '); const size_t posMsg = message.find_first_not_of(' '); return matchPrefix(posPre == std::string::npos ? prefix : prefix.substr(posPre), posMsg == std::string::npos ? message : message.substr(posMsg)); } else { return matchPrefix(prefix, message); } }
// static std::string LLURLDispatcherImpl::stripProtocol(const std::string& url) { std::string stripped = url; if (isIZURL(url)) { if (matchPrefix(stripped, IZURL_IZ_HELP_PREFIX)) { stripped.erase(0, IZURL_IZ_HELP_PREFIX.length()); } else if (matchPrefix(stripped, IZURL_IZ_PREFIX)) { stripped.erase(0, IZURL_IZ_PREFIX.length()); } else if (matchPrefix(stripped, IZURL_INWORLDZ_PREFIX)) { stripped.erase(0, IZURL_INWORLDZ_PREFIX.length()); } else if (matchPrefix(stripped, IZURL_IZURL_PREFIX)) { stripped.erase(0, IZURL_IZURL_PREFIX.length()); } } else if (isSLURL(url)) { if (matchPrefix(stripped, SLURL_SL_HELP_PREFIX)) { stripped.erase(0, SLURL_SL_HELP_PREFIX.length()); } else if (matchPrefix(stripped, SLURL_SL_PREFIX)) { stripped.erase(0, SLURL_SL_PREFIX.length()); } else if (matchPrefix(stripped, SLURL_SECONDLIFE_PREFIX)) { stripped.erase(0, SLURL_SECONDLIFE_PREFIX.length()); } else if (matchPrefix(stripped, SLURL_SLURL_PREFIX)) { stripped.erase(0, SLURL_SLURL_PREFIX.length()); } else if (matchPrefix(stripped, SLURL_SLURL_ALT_PREFIX)) { stripped.erase(0, SLURL_SLURL_ALT_PREFIX.length()); } } return stripped; }
// static bool LLURLDispatcherImpl::dispatchHelp(const std::string& url, bool right_mouse) { #if LL_LIBXUL_ENABLED if (matchPrefix(url, SLURL_SL_HELP_PREFIX)) { gViewerHtmlHelp.show(); return true; } #endif return false; }
// static std::string LLURLDispatcherImpl::stripProtocol(const std::string& url) { std::string stripped = url; if (matchPrefix(stripped, SLURL_SL_HELP_PREFIX)) { stripped.erase(0, SLURL_SL_HELP_PREFIX.length()); } else if (matchPrefix(stripped, SLURL_SL_PREFIX)) { stripped.erase(0, SLURL_SL_PREFIX.length()); } else if (matchPrefix(stripped, SLURL_SECONDLIFE_PREFIX)) { stripped.erase(0, SLURL_SECONDLIFE_PREFIX.length()); } else if (matchPrefix(stripped, SLURL_SLURL_PREFIX)) { stripped.erase(0, SLURL_SLURL_PREFIX.length()); } return stripped; }
Status HashTable::isinBucket(Records _r, unsigned int _prefix) { string bit_rep = bitset<32>(HASH(_r.getData())).to_string(); string tmp = bitset<32>(HashMSB).to_string(); string HashMSB_bit = tmp.substr((32 - _prefix), tmp.npos); //Print for Testing purposes //cout << "Hash prefix: " << HashMSB_bit << endl; //cout << "Record Value: " << bit_rep << endl; //Match Prefixes if (PREFIXMATCH != matchPrefix(HashMSB_bit,bit_rep,_prefix)) { return NOTINBUCKET; } return INBUCKET; }