Пример #1
0
bool NFCMysqlModule::Query(const std::string& strRecordName, const std::string& strKey, const std::vector<std::string>& fieldVec, std::vector<std::string>& valueVec)
{
    NFIMysqlDriver* pDriver = m_pMysqlDriverManager->GetMysqlDriver();
    if (pDriver)
    {
        return pDriver->Query(strRecordName, strKey, fieldVec, valueVec);
    }

    return false;
}
Пример #2
0
bool NFCMysqlModule::Delete(const std::string& strRecordName, const std::string& strKey)
{
    NFIMysqlDriver* pDriver = m_pMysqlDriverManager->GetMysqlDriver();
    if (pDriver)
    {
        return pDriver->Delete(strRecordName, strKey);
    }

    return false;
}
Пример #3
0
bool NFCMysqlModule::Exists(const std::string& strRecordName, const std::string& strKey, bool& bExit)
{
    NFIMysqlDriver* pDriver = m_pMysqlDriverManager->GetMysqlDriver();
    if (pDriver)
    {
        return pDriver->Exists(strRecordName, strKey, bExit);
    }

    return false;
}
Пример #4
0
bool NFCMysqlDriverManager::AddMysqlServer(const int nServerID, const std::string& strDns, const std::string& strIP, const int nPort, const std::string strDBName, const std::string strDBUser, const std::string strDBPwd, const int nRconnectTime/* = 10*/, const int nRconneCount/* = -1*/)
{
    std::string  strDnsIp;
    if (!strDns.empty())
    {
        strDnsIp = GetIPByHostName(strDns);
    }

    if (strDnsIp.empty())
    {
        strDnsIp = strIP;
    }

    if (strDnsIp.empty())
    {
        return false;
    }


    if (strDnsIp.empty())
    {
        return false;
    }

    NFIMysqlDriver* pMysqlDriver = mvMysql.GetElement(nServerID);
    if (pMysqlDriver)
    {
        return false;
    }

    NFIMysqlDriver* pInvalidRedisDriver = mvInvalidMsyql.GetElement(nServerID);
    if (pInvalidRedisDriver)
    {
        return false;
    }


    pMysqlDriver = NF_NEW NFCMysqlDriver(nRconnectTime, nRconneCount);
    if (pMysqlDriver->Connect(strDBName, strDnsIp, nPort, strDBUser, strDBPwd))
    {
        mvMysql.AddElement(nServerID, pMysqlDriver);
    }
    else
    {
        mvInvalidMsyql.AddElement(nServerID, pMysqlDriver);
    }

    return true;
}
void NFCMysqlConnectMgrModule::CheckMysql()
{

	if (mnLastCheckTime + 10 > GetPluginManager()->GetNowTime())
	{
		return;
	}

	mnLastCheckTime = GetPluginManager()->GetNowTime();

	//////////////////////////////////////////////////////////////////////////
	int nServerID = 0;
	std::vector<int> xIntVec;
	for (NFIMysqlDriver* pMysqlDriver = mvMysql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvMysql.Next(nServerID))
	{ 
		if (!pMysqlDriver->Enable())
		{
			xIntVec.push_back(nServerID);
			mvInvalidMsyql.AddElement(nServerID, pMysqlDriver);
		}
	}

	for (int i = 0; i < xIntVec.size(); ++i)
	{
		mvMysql.RemoveElement(xIntVec[i]);
	}
	//////////////////////////////////////////////////////////////////////////
	xIntVec.clear();
	nServerID = 0;

	for (NFIMysqlDriver* pMysqlDriver = mvInvalidMsyql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvInvalidMsyql.Next(nServerID))
	{
		if (!pMysqlDriver->Enable() && pMysqlDriver->CanReconnect())
		{
			pMysqlDriver->Reconnect();
			if (pMysqlDriver->Enable())
			{
				xIntVec.push_back(nServerID);
				mvMysql.AddElement(nServerID, pMysqlDriver);
			}
		}
	}

	for (int i = 0; i < xIntVec.size(); ++i)
	{
		mvInvalidMsyql.RemoveElement(xIntVec[i]);
	}

}
Пример #6
0
void NFCMysqlDriverManager::CheckMysql()
{
    //////////////////////////////////////////////////////////////////////////
    int nServerID = 0;
    std::vector<int> xIntVec;
    for (NFIMysqlDriver* pMysqlDriver = mvMysql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvMysql.Next(nServerID))
    {
        if (!pMysqlDriver->Enable())
        {
            xIntVec.push_back(nServerID);
            mvInvalidMsyql.AddElement(nServerID, pMysqlDriver);
        }
    }

    for (int i = 0; i < xIntVec.size(); ++i)
    {
        mvMysql.RemoveElement(xIntVec[i]);
    }
    //////////////////////////////////////////////////////////////////////////
    xIntVec.clear();
    nServerID = 0;

    for (NFIMysqlDriver* pMysqlDriver = mvInvalidMsyql.First(nServerID); pMysqlDriver != NULL; pMysqlDriver = mvInvalidMsyql.Next(nServerID))
    {
        if (!pMysqlDriver->Enable() && pMysqlDriver->CanReconnect())
        {
            pMysqlDriver->Reconnect();
            if (pMysqlDriver->Enable())
            {
                xIntVec.push_back(nServerID);
                mvMysql.AddElement(nServerID, pMysqlDriver);
            }
        }
    }

    for (int i = 0; i < xIntVec.size(); ++i)
    {
        mvInvalidMsyql.RemoveElement(xIntVec[i]);
    }

}
int NFCMysqlComponent::OnASyUseMysqlEvent(const NFGUID& self, const int event, std::string& arg)
{
    SMysqlParam xparam;
    if (!xparam.UnPackParam(arg))
    {
        return -1;
    }

    if (!m_pMysqlDriverManager.get())
    {
        return -2;
    }

    NFIMysqlDriver* pDriver = m_pMysqlDriverManager->GetMysqlDriver();
    if (NULL == pDriver)
    {
        return -3;
    }

    switch (xparam.eType)
    {
        case SMysqlParam::EMYSQLOPRTYPE_UPDATA:
        {
            if (pDriver->Updata(xparam.strRecordName, xparam.strKey, xparam.fieldVec, xparam.valueVec))
            {
                xparam.nRet = -1;
            }
        }
        break;
        case SMysqlParam::EMYSQLOPRTYPE_QUERY :
        {
            if (pDriver->Query(xparam.strRecordName, xparam.strKey, xparam.fieldVec, xparam.valueVec))
            {
                xparam.nRet = -1;
            }
        }
        break;
        case SMysqlParam::EMYSQLOPRTYPE_SELECT:
        {
            if (pDriver->Select(xparam.strRecordName, xparam.strKey, xparam.fieldVec, xparam.valueVec))
            {
                xparam.nRet = -1;
            }
        }
        break;
        case SMysqlParam::EMYSQLOPRTYPE_DELETE:
        {
            if (pDriver->Delete(xparam.strRecordName, xparam.strKey))
            {
                xparam.nRet = -1;
            }
        }
        break;
        case SMysqlParam::EMYSQLOPRTYPE_EXISTS:
        {
            bool bExit = false;
            if (pDriver->Exists(xparam.strRecordName, xparam.strKey, bExit))
            {
                xparam.bExit = bExit;
                xparam.nRet = -1;
            }
        }
        break;
        case SMysqlParam::EMYSQLOPRTYPE_KEYS  :
        {
            if (pDriver->Keys(xparam.strRecordName, xparam.strKey, xparam.valueVec))
            {
                xparam.nRet = -1;
            }
        }
        break;
        default:
            break;
    }


    xparam.PackParam(arg);
    return 0;
}