// 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;
}
Exemple #5
0
    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;
}