示例#1
0
bool CRedisClient::command_map(ATF_MAP& map,const char *cmd, ...)
{
	bool bRet = false;
	va_list args;
	va_start(args, cmd);
	redisReply *reply = static_cast<redisReply*>(redisvCommand(m_Ctx, cmd, args));
	va_end(args);
	if (CheckReply(reply))
	{
		bRet = getscanmap(reply,map);
		if(!bRet)
		{
			m_ErrorMessage.Format("返回类型或返回数据异常!");
		}
	}
	else
	{
		if (reply != NULL)
		{
			m_ErrorMessage = reply->str;
		}
		bRet = false;
	}
	if (reply != NULL)
	{
		freeReplyObject(reply);
	}
	return bRet;
}
示例#2
0
bool CRedisClient::command_list(CStringArray &listval, const char *cmd, ...)
{
	bool bRet = false;
	va_list args;
	va_start(args, cmd);
	redisReply *reply = static_cast<redisReply*>(redisvCommand(m_Ctx, cmd, args));
	va_end(args);
	if (CheckReply(reply))
	{
		for (unsigned int i=0; i<reply->elements; i++)
		{
			CString data = reply->element[i]->str;
			listval.Add(data);
			//listval.push_back(data);
		}
		bRet = true;
	}
	else
	{
		if (reply != NULL)
		{
			m_ErrorMessage = reply->str;
		}
		bRet = false;
	}
	if (reply != NULL)
	{
		freeReplyObject(reply);
	}
	return bRet;
}
示例#3
0
bool CRedisClient::command_string(CString &sRetData, const char *cmd, ...)
{
	bool bRet = false;
	va_list args;
	va_start(args, cmd);
	redisReply *reply = static_cast<redisReply*>(redisvCommand(m_Ctx, cmd, args));
	va_end(args);
	if (CheckReply(reply))
	{
		sRetData = reply->str;
		bRet = true;
	}
	else
	{
		if (reply != NULL)
		{
			m_ErrorMessage = reply->str;
		}
		bRet = false;
	}
	if (reply != NULL)
	{
		freeReplyObject(reply);
	}
	return bRet;
}
示例#4
0
bool CRedisClient::command_bool(bool &bRetVal, const char *cmd, ...)
{
	bool bRet = false;
	va_list args;
	va_start(args, cmd);
	redisReply *reply = static_cast<redisReply*>(redisvCommand(m_Ctx, cmd, args));
	va_end(args);
	if (CheckReply(reply))
	{
		bRetVal = (reply->integer==1)?true:false;
		bRet = true;
	}
	else
	{
		if (reply != NULL)
		{
			m_ErrorMessage = reply->str;
		}	
		bRet = false;
	}
	if (reply != NULL)
	{
		freeReplyObject(reply);
	}	
	return bRet;
}
示例#5
0
	void VkAuthManager::handleGotForm ()
	{
		auto reply = qobject_cast<QNetworkReply*> (sender ());
		reply->deleteLater ();

		if (reply->error () != QNetworkReply::NoError)
		{
			qWarning () << Q_FUNC_INFO
					<< reply->error ()
					<< reply->errorString ();

			IsRequesting_ = false;

			if (!IsRequestScheduled_)
			{
				IsRequestScheduled_ = true;
				ScheduleTimer_->start (30000);
			}

			return;
		}

		const auto& location = reply->header (QNetworkRequest::LocationHeader).toUrl ();
		if (location.isEmpty ())
		{
			reauth ();
			return;
		}

		if (CheckReply (location))
			return;

		RequestURL (location);
	}
示例#6
0
	void VkAuthManager::handleViewUrlChanged (const QUrl& url)
	{
		if (!CheckReply (url))
			return;

		emit cookiesChanged (Cookies_->Save ());
		sender ()->deleteLater ();
	}
示例#7
0
bool CRedisClient::command(INT64 &iRetType,INT64 &iRetVal,CString &sRetData,CStringArray &listval,const char *cmd, ...)
{
	bool bRet = false;
	va_list args;
	va_start(args, cmd);
	redisReply *reply = static_cast<redisReply*>(redisvCommand(m_Ctx, cmd, args));
	va_end(args);
	if (CheckReply(reply))
	{
		iRetType = reply->type;
		bRet = true;
		switch(reply->type)
		{
		case REDIS_REPLY_STRING:
			{
				sRetData = reply->str;
			}
			break;
		case REDIS_REPLY_ARRAY:
			{
				getscanlist(reply,listval);
				return true;
			}
			break;
		case REDIS_REPLY_INTEGER:
			{
				iRetVal = reply->integer;
			}
			break;
		case REDIS_REPLY_NIL:
			{
				bRet = false;
			}
			break;
		case REDIS_REPLY_STATUS:
			{
				bRet = (_stricmp(reply->str,"OK") == 0)?true:false;
			}
			break;
		case REDIS_REPLY_ERROR:
			{
				bRet = false;
			}
			break;
		default:
			{
				bRet = false;
			}
		}
	}

	if(!bRet)
	{
		if (reply != NULL)
		{
			m_ErrorMessage = reply->str;
		}
		bRet = false;
	}
	if (reply != NULL)
	{
		freeReplyObject(reply);
	}
	return bRet;
}